After a few months of hard work, we just merged the Rails 3 feature branch into the next branch in the Gitorious mainline repository.
The major new feature in this branch is that Gitorious now uses Rails 3. This required quite a few changes to Gitorious, which was bound to introduce some non-backwards-compatible changes. We took the opportunity to deal with a few other long pending issues, and we’re really happy with the way this turned out.
The major changes you will have to deal with while upgrading are as follows:
- Upgrade your gitorious.yml. Quite a few of the settings in this file have been renamed for consistency, and gitorious.yml now also supports “global” settings shared between the various Rails environments.
- Stomp is no longer supported for messaging. A lot of users have been having trouble getting a Stomp server running reliably, and the scripts we used for consuming messages off the message queue would leak memory, causing all kinds of problems. gitorious.org has been running with the new setup (Resque/Redis) without any issues for a month now, and this is the only supported asynchronous message queue in Gitorious 3.0. To start using Resque simply install Redis, which is available in the repositories for all major distributions.
- Replace the database driver defined in config/database.yml on your server with “mysql2”.
- You should consider upgrading your Ruby version to 1.9.3, although Gitorious 3 will still work with Ruby 1.8.7. Upgrading to 1.9.3 will give significant speed improvements, and 1.8.7 will only be supported for a limited period of time. If your distributions has 1.9.3 in the repositories you should be able to install it from there.
What happens next?
We just completed the first step in the migration, which is merging it into the next branch in the mainline repository. New features will be created on this branch, and only critical patches will be backported to the 2.x-stable branch.
We plan to start migrating gitorious.org to 3.0 next week and will release 3.0.0 within a week or two. Although we’re not aware of any open issues in the current next branch, we will respond quickly to any issues reported from users running this branch on their servers. We have been running this branch on our internal (aka. dogfood) server for a long time without any major issues.
By running from the next branch of Gitorious, upgrading to the final version will be a matter of pulling and merging the 3.0.0. tag once that’s released. You’ll be reaping the benefits of a faster, simpler Gitorious installation and quick response to any issues you’re having from the Gitorious team.
While helping us finalize Gitorious 3.0, you will probably find a place or two where the UI contains escaped HTML code; this is due to Rails 3 by default escaping HTML to prevent XSS situations. These issues are easy to fix, but can be hard to find without extensive use of the UI.