Releases – a workflow for shipping software to end users

by remion 7/2/2013, 7:10 PMwith 78 comments

by conroyon 7/2/2013, 7:26 PM

I was a vocal critic when GitHub discontinued their downloads product earlier this year. I work on open source projects with compiled binaries. GitHub's answer to distribution had been "Use S3" which I never found satisfactory.

As soon as they release an API, I'll be migrating all my projects over.

EDIT: Just added my first release. Super easy. https://github.com/hawkthorne/tmx2lua/releases

by jmdukeon 7/2/2013, 8:15 PM

I just had a glimpse of a wonderful future where GitHub releases a payments system, packaging options, and suddenly becomes an ideal app store ecosystem.

by amerineon 7/2/2013, 7:49 PM

It would be amazing to have public Releases from a private repo.

by xpaulbettsxon 7/2/2013, 7:41 PM

Here's a few examples of Releases:

    https://github.com/reactiveui/reactiveui/releases
    https://github.com/github/akavache/releases
    https://github.com/xpaulbettsx/splat/releases

by secureon 7/2/2013, 7:31 PM

While on the subject: does anyone know a software/service for automating software releases?

I usually perform these steps manually:

create a new tag, merge the “next” branch into the “master” branch, run “make dist” from a clean checkout, do a handful of sanity checks on the result, gpg-sign it, push it into a separate git repository for the website, archive the current docs in the website, update the website’s docs with the new docs, send posts to a mailing list, twitter, google+, update the changelog with a placeholder for the new version.

I realize not 100% of that is reasonably automatable, but is there anything which tries to tackle this problem?

by ejdyksenon 7/2/2013, 7:19 PM

Cool! We finally have downloads back!

It looks like this fails on tag names that have a slash in them.

by philipnon 7/2/2013, 7:54 PM

Is there any way to add the release notes via a git commit? This is very nice, but it introduces further dependence on GitHub if something like that isn't possible. I suppose as long as there's API access someone could / will write an exporter, though. Anyway, great stuff either way!

by cocoflunchyon 7/2/2013, 7:57 PM

This sounds like the death of SourceForge. (I know, you could argue that it's already dead, and also argue that it's very much alive)

by reidracon 7/3/2013, 7:40 AM

Something like this was missing since they removed the uploads [1].

Basically a release bundle may not be exactly the same stuff you have in your source code repository. You may need to generate documentation, configure files, run setup.py sdist or whatever, so a release may not be exactly a snapshot of your git repo.

So this is perfect. Great feature GitHub, thanks!

It would be nice that tags != releases though, because I can think of scenarios where you may add a tag that is not meant to be a release (ie. security update, you may want to tag the commit with a CVE).

Also it would be great if you could just link or display the changelog, CHANGES or NEWS instead of writing a text describing the release. That's for projects that already have a release procedure, but for the rest this is HUGE change because GitHub just improved their project management! I love it!

[1]: https://github.com/blog/1302-goodbye-uploads

by frewsxcvon 7/2/2013, 7:32 PM

Here's an example in action:

https://github.com/git-tfs/git-tfs/releases

by mweibelon 7/3/2013, 9:22 AM

I like it a lot :) One question though: Will there be graphs about the number of downloads of those release files?

by togasystemson 7/2/2013, 7:15 PM

Excited for this! No more view raw and save.

by sandyarmstrongon 7/2/2013, 7:46 PM

Any news on if/when an API for this is coming? Could be super useful.

by leafoon 7/2/2013, 8:24 PM

Excellent timing, just released a new version of MoonScript today, here it is in release form: https://github.com/leafo/moonscript/releases/v0.2.4

by adamljon 7/2/2013, 7:24 PM

Goodbye SourceForge!

by thomas_hon 7/5/2013, 1:29 PM

I see a problem with the current implementation: Releases are auto-generated from git tags. That means all tags you'll ever use on your repo will be auto-exposed as "release", even if the tag reads "dead_end_implementing_foo" or "before_major_rewrite". Tags are an implementors' tool, releases belong to product management. I want to be able to control my releases, so at least be able to delete auto-generated ones (without losing the git tag).

by hrjeton 7/3/2013, 1:16 PM

Wonderful, however the UI for upload sucks.

It requires Adobe Flash to upload and since I have blocked plugins by default, even if I enable the plugin after loading the page (through Firefox's click to play), it doesn't work.

GitHub, please: 1. don't make Adobe Flash necessary. 2. allow me to select a file through browser's File dialog. I don't like drag and drop.

by polymathiston 7/3/2013, 5:17 AM

Well done. This will work quite well with Vincent Driessen's "A Successful Git Branching Model." http://nvie.com/posts/a-successful-git-branching-model/ And with nearly all sensible git branching models for that matter.

by zachgershon 7/2/2013, 11:14 PM

Interesting that they launch this without API access and without adding it to the right hand nav. Sure, it's above your repo but I don't think that catches the eye enough and this is definitely meant to be a primary item users will be searching for.

by harrisonpowerson 7/3/2013, 11:53 AM

What a great step for Github. I was impressed with Pages, and now they're providing what SourceForge granted the public with for so many years. Options for everyone. All without the sponsored hosting!

by pkambon 7/3/2013, 4:01 AM

If you offer paid downloads from a private repository, preferably with an integrated licensing system, I'll be your first customer.

by conductoron 7/2/2013, 10:42 PM

GitHub, thank you for this.

Also, you used to have ZIP and Tarball downloads in the past, can you please bring back the Tarball downloads?

by Spirituson 7/2/2013, 9:21 PM

Hmm, tried to draft a release. But after saving I'm only getting http 500 errors on the release page.

by brendanobrienon 7/2/2013, 7:22 PM

wahoo!