Hadi Hariri

Sponsors

The Lounge

Wicked Cool Jobs

Syndication

Getting your OSS binaries with Horn

Recently Billy McCafferty wrote a post on Horn, a package manager that Paul Cowan and Dave the Ninja have developed, similar to the idea of Ruby’s Gem. Although it’s a step in the right direction, it does have issues. To be able to use it, you need to download Horn and build it. But not only that, you also need to install Subversion, Git, Powershell, Rake, PSake, Cake, Fake…and a whole slew of SCM’s and build tools. Why? Because Horn builds from source. As such, it needs to access the SCM a specific project uses, download the files locally and run the build script. Since OSS projects are free to choose what build script they use, that also adds to the complexity. Some are happy with MSBuild, which isn’t normally an issue since it’s part of every .NET install. However, others use Rake, which in turn requires Ruby. You get the picture…

Although this isn’t necessarily an issue for some people, for others, it is. Forgetting for a moment scenarios such as those imposed by IT departments on corporate networks (permissions to install software, firewall, etc..), there are many that are not too comfortable with building from source, something beyond running an MSBuild file or compiling a VS solution inside the IDE.

 

Welcome to Horn Server-Side

In order to ease some of these concerns, the Horn team developed a server-side solution. A service now takes care of figuring out all dependencies and building packages and since it does this on a scheduled basis, it saves you the time of having to wait for a project to be built. This also saves you from having to install anything on your machine, including SCM’s and build tools. In fact, you don’t need to install anything if you don’t want to. For you to interact with this server, Dave built an ASP.NET MVC application that shows all the OSS packages in their respective categories. For each package there is normally the official released version and the trunk. iMeta has gracefully offered to host the server up in clouds. Go see for yourself.

If you prefer a command line version, I hacked one together in a morning and it’s available from the Horn repository. This allows you to issue commands like:

horn-get –u http://hornget.net –c orm –d nhibernate-2.1

which will download NHibernate 2.1 zip for you with the necessary binaries.

 

Take a look, experiment and provide feedback to the Horn team. There is still room for improvement, but no doubt, Horn is helping remove some of the barriers in the adoption of Open Source.


Posted 11-23-2009 9:54 AM by Hadi Hariri
Filed under:

[Advertisement]

Comments

Derik Whittaker wrote re: Getting your OSS binaries with Horn
on 11-23-2009 6:14 AM

This is great.  I was wondering when someone would speak out that having to get all the various scm tools would be a pretty high barrier to entry for most developers.

Nice solution

Hadi Hariri wrote re: Getting your OSS binaries with Horn
on 11-23-2009 7:14 AM

@Derik,

This is precisely the conversation I was having on Twitter, about removing barriers. Having to install Ruby to run Rake isn't something your average developer wants or can do. Making things like this a requirement to adopt open source is not beneficial for anyone.

Paul Cowan wrote re: Getting your OSS binaries with Horn
on 11-23-2009 8:02 AM

Developing horn has given me a very cynical opinion of .NET OSS's lack of cohesion together.  One only has to look at the various boo library versions doing the rounds and that certain OSS projects have to realise the mess we are in.

Maybe if shared libraries could be pulled from a central location then that might ease the pain.

Having to install PSake, powershell, rake, git and svn just to upgrade your stack and get it all to play together is no joke which is of course is why horn was born.

I wonder if other platforms have this problem?  Probably not.

Alec Whittington wrote HornGet - Moving along
on 11-23-2009 8:36 AM

This morning, I read a blog post from Hadi Hariri about HornGet going server side. I am very glad to

Derik Whittaker wrote re: Getting your OSS binaries with Horn
on 11-23-2009 1:23 PM

@Hadi,

I wanted to move our builds over to Rake, but did not want to mandate that 40+ developers install and work with Ruby just to use it.  

Nant is the best, but is less friction (for us) than other options at this point.

Jbland wrote re: Getting your OSS binaries with Horn
on 11-23-2009 2:59 PM

Great work. It took me about  2 days of headache to put all the pieces together on my machine.

But it was worth the pain to be able to kill a very annoying  NHibernate bug which was fixed in svn, and have my other dependencies rebuilt automatically.

Keep it up. Im sold...

Michael D. Hall wrote re: Getting your OSS binaries with Horn
on 11-30-2009 4:01 PM

@Derik

You can BIN deploy Ruby+Rake. Check out how the MSpec project implements their Rake build. You don't have to have Ruby installed on the build server. Although it does make the repo a little bigger.

jonn3 wrote re: Getting your OSS binaries with Horn
on 12-25-2010 6:30 AM

comment6,

seubnubed wrote re: Getting your OSS binaries with Horn
on 12-27-2010 5:57 AM

base1.txt;42;42

jonn1 wrote re: Getting your OSS binaries with Horn
on 01-03-2011 2:22 AM

comment3,

jonn3 wrote re: Getting your OSS binaries with Horn
on 01-03-2011 3:23 AM

comment3,

jonn1 wrote re: Getting your OSS binaries with Horn
on 01-03-2011 4:22 AM

comment1,

jonn2 wrote re: Getting your OSS binaries with Horn
on 01-03-2011 5:21 AM

comment4,

jonn3 wrote re: Getting your OSS binaries with Horn
on 01-03-2011 6:21 AM

comment6,

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco <-- NEW Friend!
NServiceBus <-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)