How we deploy gitorious.org

We’ve just written an article on our documentation site describing the configuration of our new servers.  You will find details about how we do deployment, our web server setup and how we manage processes.

Have a look if you’re into that kind of thing, and post a comment here if there are other things you’d like the article to cover.

Gitorious 2.4.1 was just released

Thanks to Steffen Forkmann the first patch release after 2.4.0 came really quickly this time. There was a bug in the 2.4.0 code preventing push from functioning properly.

We just pushed 2.4.1 and updated the master and next branches with this fix. You should upgrade your server as soon as possible.

Gitorious 2.4.0 was just released

Update: Version 2.4.1 was just released; the upgrade instructions have been updated to use this version instead.

We just pushed version 2.4.0 of Gitorious. This will be the last minor release of Gitorious before version 3, which brings Rails 3 to Gitorious.

The highlights of this release are:

  • Rails has been unvendored from Gitorious, and updated to the lastest release in the 2. x series of Rails
  • The Ultrasphinx plugin has been replaced by ThinkingSphinx

Since Ultrasphinx is no longer used by Gitorious, you will have to change any references to Ultrasphinx in init scripts or crontabs. ThinkingSphinx ships with a couple of rake tasks, one of which will shut down your search engine, rebuild the indexes and start the search engine afterwards. Gitorious ships with a wrapper binary for rake, which means you can execute rake tasks without chaning directories/user etc:

/path/to/gitorious/bin/rake ts:rebuild

This command will execute the `ts:rebuild` rake task with the `production` RAILS_ENV, from the correct directory and changing to the Gitorious user (unless already done). The same goes for any other scripts in the bin directory, including `bundle` and `console` (load a Gitorious console).

As previously announced on the mailing list, the Gitorious project now uses the git-flow branching model, which means that the master branch should be considered stable, and that daily development happens on the next branch. This means that today’s new release caused the following:

  • A branch was started off the next branch and the 2.4.0 tag was created
  • This branch was merged into the next branch
  • This branch was merged into the master branch

To upgrade your Gitorious server to 2.4.0, follow the instructions on the wiki.

The 2.4.0 release also contains the following minor changes and bug fixes (from the release tag):

  • Allow configuring Memcache
  • Extract logic for custom initializer/yaml file pair
  • Allow configuring Resque with a remote Redis host/port
  • Change Gravatar URL generation, as reported in #137
  • Fix failing and irrelevant tests

Gitorious on Rails 3 – Take it for a spin

The Rails 3 upgrade is for the most part done, and we have “all systems go”. I’m back to working on Dolt (the upcoming repository browser for Gitorious) and the general UI upgrades. In the meantime, we need help testing the upgraded Gitorious and make sure everything really works.

If you’re interested in helping out, here’s how:

If you have set up Gitorious using the official installer, an upgrade script will be made available at a later point. If you have a commercial license from us, we will upgrade your install once the new version is stable.

If you contribute to Gitorious, or are interested in doing so, you’ll be happy to learn about the two new script/instruction sets for setting up Gitorious. Installation has traditionally been somewhat painful for Gitorious, due to the many moving parts. I’m happy to announce that installation is simpler with Gitorious 3, and we now provide official scripts to do so. Check out doc/setup-dev-env-ubuntu.sh and doc/setup-dev-env-centos.sh. I’ll get back to more on this in an upcoming post on the blog.

Server migration the coming Tuesday

The servers powering gitorious.org have been running for more than 3 years, and it’s time to move to new servers. The migration will start Tuesday November 27th at 10.00CET, and we expect to be done before noon. All gitorious.org services will be unavailable while we’re doing the migration.

We’re making some changes in how Gitorious runs on the new servers, most notably:

Apart from the potential speed improvements and stability provided by these changes in our underlying infrastructure gitorious.org will continue working like it does today after the upgrade. We will post reminders about the migration on our status site before we start, and post updates as the migration proceeds.

Updates:

  • 10:40 CET: We have exported the database from the old database server, which has been shut down. We’re currently importing the database to the new database server.
  • 10:50 CET: The take has come to say goodbye to the old gitorious.org frontend server
  • 11:14 CET: We’ve imported the database and are currently running health checks on the new servers
  • 12:35 CET: A little behind our schedule, we’re just about ready to open up
  • 12:39 CET: And we’re back up

Rails 3 progress

Quick update: Gitorious is now running Rails 3.2.8 and all tests are passing. There are still a few minor “TODO”‘s left to tackle, but we’ll be upgrading our internal dogfooding server on Monday. When it’s running smoothly, we’ll get back to the UI upgrade.

We’re a bit behind schedule as I forgot to account for being away at Øredev for two days (the results of which can be seen on vimeo.com).

Have a nice weekend!

Rails 3 upgrade

After a week of working on the Rails 3 upgrade, this is the current status: 3358 tests, 4712 assertions, 5 failures, 0 errors. That’s pretty close, and may I say, pretty exciting to us. Once the last 5 test failures have been fixed, there are still some aspects of the application that needs to be either verified manually, or added automatic tests for, but for now, things are looking good.

The upgrade has taken a little longer than initially expected, but good things are coming out of it, and the end is in sight. I’ll post a new update next week, at which point we should be back to working on the UI upgrades and the new repo browser.

Have a nice weekend!

Gitorious 2.3.2 released (small hotfix for installation/db setup issue)

We just tagged version 2.3.2 of Gitorious.

This is only a minor hotfix. The update resolves an intermittent issue in some Gitorious environments/database setups due to a database migration script from earlier this year. There is some discussion of the issue at the Gitorious Google Group.

From the version tag description:

Resolve issue with an older database migration.

An old migration (committed february 2012) caused intermittent issues
in some Gitorious installations depending on how the
environment/database is set up. This fix makes the db migration in
question play nice.

We’ve added a description of how to upgrade to this minor version in getgitorious.com/documentation (see Upgrades -> “Upgrading from 2.3.1 to 2.3.2″).

Short story: this is only an important change for you if you’re seeing the below message during setup or upgrade of your Gitorious rig:

==  MakeProjectMembershipPolymorphicOnSubject: migrating ======================

– add_column(:project_memberships, :content_type, :string)

   -> 0.0062s

rake aborted!

An error has occurred, all later migrations canceled

Mysql::Error: Table ‘gitorious_production.content_memberships’ doesn’t exist: SELECT * FROM `content_memberships`

Quick reboot of the servers Tuesday at 11AM CET [completed]

We’ll need to do a quick reboot of our servers to update their kernels tomorrow at 11AM CET. We expect it to take no more than 5 minutes, and will keep this post updated as we proceed.

Updates:

  • 11:05: We’re taking down the first server
  • 11:06: The servers are down
  • 11:12: The servers are back up again

UI upgrade and Rails 3

A while ago we announced some UI upgrades we are working on, and people have been asking when these changes will land in master. The short answer is that it will be a little while still. Read on for the longer answer.

If you’ve been following along, I’m sure you have seen our new repository browser. Dolt (a stand-alone tool to browse source code, view Readme files and more) is more or less done.

During the past couple of weeks I have made a couple of attempts at integrating Dolt back into Gitorious. Unfortunately these attempts have not yet been as successful as I’d hoped: there have been yaks to shave along the way.

Gitorious is currently based on a fairly old version of Rails. Working with old software imposes some constraints on what version of various third-party libraries can be used, which again causes trouble when trying to also use newer software (Dolt uses EventMachine and related libraries). In an attempt to resolve some issues related to this, I finally got my hands dirty and upgraded our Rails version from 2.3.5 to 2.3.14 last week.

This week, we decided to go one further and complete the long pending upgrade to Rails 3. I’m happy to report that this process is coming along nicely enough that we’re confident we’ll complete the upgrade next week. In doing this, we gain access to newer features in Rails that will help us in several ways. Most importantly, we will be able to integrate the source code browser properly.

We know that many of you are waiting for the new UI, and apologize for the delay. I wanted to post this update to let you know that we’re working on it, even if we have taken a detour to get there. When it all lands, we can all look forward to a more usable, prettier, safer and faster Gitorious.

Have a nice weekend!

Follow

Get every new post delivered to your Inbox.

Join 717 other followers