Search
Tweets
Recent Changes
Friday
Nov092012

Deploying Play Applications with Capistrano

I'm building an open-source issue tracking and project management application called Emperor in Scala using the Play Framework. Recently there was discussion on the Play mailing list about deploying Play applications so I thought it might be useful to demonstrate how I deploy Emperor using Capistrano.

Isn't Capistrano For Rails?

Capistrano — or just cap as it is often called — is widely used for deploying Ruby on Rails applications. But it's possible to use cap for deploying any type of app you like. At Twitter it's used to deploy pretty much anything you can imagine.

So I set out to use it for Emperor because it's deploy and rollback process is quite nice. Here's how you do it.

Going Off The Rails

I'm assuming you've already got cap installed. If not then do read the docs.

The first step is to install the railsless-deploy gem. You can find instructions for installation and use in the linked documentation. If you check the docs it will advise you toward a simple Capfile.

Actual Deployment

Here's a complete Capfile with comments explaining the bits.

Conclusion

Capistrano is a great tool but I've find it to be poorly documented. The above Capfile took me a few hours to piece together. That being said I'm very happy with how it works! Hopefully this helps other Capistrano users that are deploying non-Rails systems.

Sunday
Oct282012

Getting Started With Emperor Development

My OSS, Scala-based issue tracking and project management application, Emperor is progressing nicely. That it’s written in Scala may be a burden for some people, as Scala has yet to become as widely adopted as I would like. As such I’ve put together the first post in a series on getting started with Emperor development. This will serve as a starter for some Scala newbies as well as those interested in Emperor or the Play framework.

Sunday
Aug192012

Mid August Emperor Updates

Working on pacific time means that I have a lot more hacking time on weekday evenings, as I stay up much later. Emperor has directly benefited from this, with a big sprint being completed on Friday. Version 0.0.6 has been tagged and the following features are there:

  • There is now an edit button on the ticket view page. (EMP-2)
  • A ticket’s resolution status is now clearly shown on the ticket view page (EMP-3)
  • Reporter now defaults to the logged in user when creating a ticket (EMP-4)
  • Resolution status (via strikethrough) and summary are now shown in links (EMP-6)
  • Ticket creation now shows up in the timeline without a reindex (EMP-7)
  • Project is now listed as the first item in ticket creation and editing (EMP-8)
  • Revamp search results page to show more information (EMP-9)
  • Ticket links are now styled
  • Ticket links can now be removed (and have an API call)
  • Add more API docs (but they are still bad)
  • Change color of search filter buttons

I’m planning my next sprint now and it is likely to involve further link improvements and project-level settings for ticket attributes.

Thursday
Aug092012

Emperor Updates for July

A month ago I announced Emperor. I’ve been quiet about it since the announcement because I started a new job at Twitter. I traveled to lovely San Francisco for about a month to learn the ropes and had limited time for extra-curricular work.

But that didn’t stop progress!

Today I tagged version 0.0.4 which includes the following features:

  • Events and Timelines
  • Ticketing linking (blocks, relates to, etc)
  • Lots of unit tests
  • Ticket advance & revert UI
  • Lots of UI polish

Some highlights of features I’m working on now:

  • General features
  • UI improvements
  • REST API

There are screenshots on the GitHub page. A lot of the core functionality is complete for version 1.0, but there is a lot of fit and finish work to come on the UI. Stay tuned for more!

Friday
Jul062012

Announcing Emperor

I’ve spent a lot of night and weekend time working on a bug tracker / project management application and I’ve decided to release it as Open Source.

Meet Emperor!

What

Emperor is a project management system for software development. You can also call it a bug tracker. I don’t mind.

Why

I’ve spent the last 5 years acting — in one capacity or another — as a manager of developers and of development process. I feel that I’ve learned a lot about these sorts of things. I’ve worked with both engineers and non-engineers and I feel that there can be a lot of improvements in these systems.

Also, I think the world could just use more of me.

How

Emperor is available on GitHub. It has instructions for anyone brave enough to use it at this point.

Current Status

Emperor is minimally functional at present. You can create, progress and manipulate tickets and perform many administrative functions. Unfortunately there are bugs lurking all over the place and plenty of half-completed features. For personal reasons it was convenient to release it to the world today.

Other Details

Emperor leverages my recent infatuation with Scala. It has been a learning experience and will likely undergo significant changes as I become a better Scala programmer and learn to better leverage the Play framework.

The Future

It is my intent to finish an installer over the coming weeks and to release a 1.0 version with a small but convenient number of basic features. Afterward I will begin refining and adding new features. Remember that your assistance is welcome!.