Adhearsion Blog by Jay Phillips

Adhearsion, Ruby, VoIP, Entrepreneurship

Adhearsion is now on Github!

without comments

I’ve migrated the hosting of the Adhearsion code base to Github.com, a site I’ve been super excited about and one which will immensely benefit the Adhearsion community. Github is the first site to get Web 2.0 right in the context of software development. If you haven’t heard of it before, you’re lucky you’re reading this post.  :)

You can click here to go view the Github Adhearsion project.

If I had to boil down the benefits of Github into one quick point, it’s basically this: hosting with Github increases the frequency with which others contribute code to you. It does this by making it dead simple. I explain the development workflow later in this post to give you a better idea of what I mean.

Github is founded around the Git SCM tool originally developed by Linus Torvalds to handle the Linux kernel’s massive quantity of code and contributors. Unlike Subversion or CVS, Git is a distributed version control system, thereby empowering users to work independently from a centralized system and merge their own version of the repository with peers as appropriate. The fantastic features that Github offers would not be possible if it it weren’t for this distributed, non-linear SCM paradigm.

Getting Adhearsion from Github

There are now three ways to get Adhearsion:

  1. Install via RubyGems: gem install jicksta-adhearsion --source http://gems.github.com
  2. Clone a local Git copy: git clone git://github.com/jicksta/adhearsion.git
  3. Download a tarball of the latest code: http://github.com/jicksta/adhearsion/tarball/master

The Github development workflow

The development workflow of a Github project goes something like this:

Everything revolves around you, the user. Other users “fork” your project, make changes, commit to their own repository forked from yours, then send you a pull request when their contribution is implemented and tested. If you have doubts about their code you can view their commits’ colorized changelogs by simply clicking a link within their account’s modified clone of your repository. If you wish to try their code out yourself, you simply clone their repository to your hard disk. If everything checks out with you, you issue a Git command to merge their histories into your repository’s own. If you find an issue with their code pre-merge, you can make comments on a particular changelog or a particular line of code in a changelog.

There’s a subtle bit of clever Web 2.0 trickery going on with this forking action. When a user forks a repository, let’s say Adhearsion, her account page displays “adhearsion” among her projects. Users who watch her receive a notification that she forked it. Users who watch her see each of her commits to the forked repository. Her changes accepted upstream fully reflect her commits with her full name, username, email, and even her account avatar. See how the social graph comes together with reputation incentives? It’s totally brilliant.

Other perks include:

  • Interactive visualizations of forking activity, as seen above
  • For Ruby projects with a .gemspec in their repository, Github can automatically generate a RubyGem and store it on the Github gem server, accessible to anyone with the gem command.
  • Open-source projects are free to host with Github
  • Github projects can use “web hooks” which will notify other services of commits. For example, any commit to Adhearsion is logged in the Adhearsion IRC channel. Github also supports Basecamp, email notifications, Twitter, Lighthouse, a raw JSON HTTP POST, and more.
  • Giving commit rights is dead simple
  • Don’t have Git? Github lets you download a tarball of the code.
  • RSS feeds are generated for just about anything
  • Github will auto-detect README files and display them.
  • You can “watch” other repositories which interest you and others can “watch” you.
  • Syntax highlighting in the code browser

Fork Me!

If you ever considered contributing to Adhearsion, it’s never been easier. Here are a few good Git resources:

Go register a Github account, fork the Adhearsion repo, and give it a shot!

Written by Jay Phillips

August 11th, 2008 at 2:48 am

Leave a Reply