Monday, April 13, 2009

JRuby Moves to Git

We have successfully migrated JRuby development to Git!

The main repository is on the JRuby kenai.com project, but most folks will just want to clone the official mirror on Github. The mirror lags by no more than five minutes, and we'll eliminate that lag soon.

Kenai: git://kenai.com/jruby~main
Github: git://github.com/jruby/jruby.git

The Github repository is also attached to the official Github "jruby" user.

The CI server has already been updated to point at the new repository on kenai, and nightly builds have been running for several days. If you just want to grab a current nightly snapshot, you can do that from github's capabilities or by visiting the nightly build page:

http://jruby.headius.com:8080/hudson/job/jruby-dist/

The old SVN repository on Codehaus is now defunct for JRuby development and will not be updated any more. We will likely remove the JRuby branches and trunk soon and replace them with a README pointing to the new repository locations.

Why Git?

We've known for a long time that we wanted to move to a distributed SCM, and had narrowed it down to Mercurial and Git.

For a long time Mercurial was the front-runner, partly because we were more familiar with it and partly because kenai.com, the site where we're moving JRuby's project hosting (and a JRuby on Rails-based site, btw), only supported Subversion and Mercurial.

But a few things changed our minds over the past couple months:
  • Kenai added git support
  • We realized that we'd get more Rubyists contributing if we had a mirror on Github
  • We became more comfortable with Git
Ultimately, the move to Git mostly came down to politics: Rubyists like Git better, and we're a Ruby-related project. Had we been Jython, we'd probably have chosen Mercurial.

Enjoy!

8 comments:

  1. Out of curiosity, how are syncing the mirror?

    ReplyDelete
  2. Right now the syncing is via a third server that pings Kenai every five minutes and pushes updates to Github. Kenai folks are planning to add SCM hooks soon, however, which will make updating Github automatic.

    ReplyDelete
  3. Why move the project to gitHub as Kenai started to support git recently?

    ReplyDelete
  4. Yes, great news. :) I applaud you for your decision to use git instead of Mercurial.

    ReplyDelete
  5. "Why move the project to gitHub as Kenai started to support git recently?"

    Because they can still push to a repo on Kenai. It's about the communities, not just a place to publish.

    ReplyDelete
  6. Jon: Thanks for the catch, I've corrected it!

    ReplyDelete
  7. out of curiosity, would it just be easier to use github as the main central repo so that you could just accept pull requests via github?

    What is your work flow for accepting pull requests submitted via github?

    ReplyDelete
  8. Python recently moved to mercurial but in the mailing list they explicitly reinforced that language would not interfer in any way in the choice.

    "Rubyists like Git better" This reason you're giving is a disgrace.

    Rubyst attachment to Git is illogical. In my understanding policies have some logic behind them. This is more like religious belief.

    ReplyDelete