[Beaker-devel] GitHub releases for peripheral/related projects

Amit Saha asaha at redhat.com
Tue Nov 19 02:23:56 UTC 2013



----- Original Message -----
> From: "Dan Callaghan" <dcallagh at redhat.com>
> To: "Amit Saha" <asaha at redhat.com>
> Cc: "Beaker development" <beaker-devel at lists.fedorahosted.org>
> Sent: Monday, November 18, 2013 11:22:47 AM
> Subject: Re: [Beaker-devel] GitHub releases for peripheral/related projects
> 
> Excerpts from Amit Saha's message of 2013-11-15 16:19:37 +1000:
> > Okay, so how does this sound:
> > 
> > 1. Tag a new release
> > 2. "Announce" a release using the Web UI
> > 3. Get the tarballs from the GitHub repo and simply scp them to the above
> > URL
> > 4. Link the GitHub release announcement from the Beah docs and link to the
> > tarballs
> >    above.
> > 
> > Perhaps the whole thing can be automated with the help of [1].
> > 
> > [1] http://developer.github.com/v3/repos/releases/
> > 
> > Thoughts?
> 
> I think we need release notes ("announcements") in the beah docs, not
> just on GitHub, otherwise we are locked in to GitHub's proprietary
> release process.
> 
> All it needs is a new page "Changes" or "Release Notes" in the beah
> sphinx book, with a new entry added each time a new version is tagged.
> The process should just look like:
> 
>     vim documentation/release-notes.rst
>     git add documentation/release-notes.rst
>     tito tag
>     git push origin master beah-123
>     # some magic here to get the tarball published under
>     # http://beaker-project.org/releases/

Do we want to link to the tarball from the releases page? I believe so.
The problem here is (AFAICT) that we don't get the tarball filename until
we tag it. Hence, I can't see how it can be done at the time of tagging. 
If tito had a --dry-run option for tagging that would be easy. I opened
an issue with the project and have a patched version which works [1].

Here is what I have without involving GitHub in any way:

# tito tag --dry-run

# add changelog and archive download link
git add documentation/release-notes.rst

# tito tag
# git push tag

# create the .tar.gz
release_tag=`git tag --points-at HEAD`
git archive --format=tar.gz --prefix=$release_tag/ $release_tag >$release_tag.tar.gz

# upload it to beaker-project.org/releases
scp $release_tag.tar.gz beaker-project.org:/path-to-releases/
(I see that releases is  in .gitignore, so I believe  it should be fine?)

Leaving aside the tarball filename, I think it's fairly straightforward now.


[1] https://github.com/dgoodwin/tito/issues/99

To summarize, here are the two options:

- Use the patched tito as per the above workflow
- Use a separate commit after the tagging to add the download link

Any suggestions regarding the "problem" above welcome. 

Best,
Amit.

-- 
Amit Saha <http://echorand.me>
Infrastructure Engineering and Development
Red Hat, Inc.


More information about the Beaker-devel mailing list