[Stk] proposal for stk git repository layout

Ariel Elkin arielelkin at gmail.com
Mon Sep 30 15:08:05 PDT 2013


Nice work Steve!

I've been looking at the network view that GitHub provides and I find things pretty clear. 

It's a bit overkill to maintain a whole git branch ("releases") just for the purpose of providing STK users an easy way to download release tarballs. 

I think one single "master" branch suffices: carry out all the development work on it, create git tags on it to mark releases, and then direct end-users to the repository's Releases page that GitHub generates:
https://github.com/radarsat1/stk/releases

Thus, end-users will only download the stable releases and not the latest upstream commits. 

If you take a closer look at the Releases workflow that's provided by GitHub, you might find how it can easily supersede the "releases" branch:
https://github.com/blog/1547-release-your-software

Crucially for us, this Releases workflow enables us to attach assets to the source code release: these could be RtAudio and RtMidi, the empty Debug and Releases folders, and the makefiles? 

Ariel

On 30 Sep 2013, at 12:28am, Stephen Sinclair wrote:

> Hello all,
> 
> I have been working on my STK git repo, and I hope it is closer to
> what might satisfy everyone.
> 
> The "master" branch is the main development branch.  It includes
> purely source files such as "configure.ac", ".cpp" and ".h" files,
> etc.  It does not contain the output of autoconf or doxygen, since
> these are generated files.
> 
> The "releases" branch contains branches off of "master" for each
> release.  In this branch, the generated "configure" and html
> documentation are included.  For each "tarball" commit under
> "releases", there is a tag associated.
> 
> This is illustrated in github's network view:
> https://github.com/radarsat1/stk/network
> 
> The upshot is that there is a clear link to the development branch for
> each release, and meanwhile if one browses to the github "releases"
> page, which presents a download link for each tag in the repository,
> one sees each release listed there:
> 
> https://github.com/radarsat1/stk/releases
> 
> If someone downloads 4.4.4, for example, they will get a file called
> "stk-4.4.4.tar.gz", and he/she only needs to type "./configure &&
> make" to build STK.
> 
> Meanwhile we can continue development in the "master" branch without
> interference and history-confusing changes due to autoconf and
> doxygen, etc.
> 
> A few decisions had to be made:
> 1. what to do with the disappearing "Debug" and "Release" folders
> 2. should "config.sub", "config.guess", and "install.sh" be included?
> 3. remove any files that shouldn't have been in the release tarballs?
> 
> 1: I decided to add .placeholder files so that the Debug and Release
> folders are there just as in the tarball releases.  As of commit
> 8d2e9d9cf, which patches Makefile.in to create these directories if
> they don't exist, the .placeholder files are removed.
> 
> 2. I wanted to remove these as they are part of autoconf/automake and
> should be available on the developer's system, but in the end I found
> that even after running "autoconf", the configure script would not run
> correctly without these files present.  I left them in the repository,
> but perhaps if we move to automake/libtool in the future it won't be
> necessary to keep them.
> 
> 3. Any .o, *~, ._*, .DS_Store, etc.. files were removed before any
> commit to the repository.  Same for a few Mach-O and ELF executables
> that were in some release tarballs. (Mainly the projects/* folders)
> 
> So, still to deal with is how RtAudio and RtMidi should be handled.
> i.e. as separate projects or what.. I'll leave that for a little
> later, as it is after midnight now ;)
> 
> My inclination is to keep them in the same repository as STK but
> generate different "tags" containing different subsets of the files
> depending on which software is being released -- this could work
> great, but has to potential to get a bit confusing -- though nothing
> that we couldn't make easy with some simple scripting.  The
> alternative is to have 3 separate repositories.  Then there's the
> question of using git submodules or not.
> 
> Steve
> 
> _______________________________________________
> Stk mailing list
> Stk at ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/stk




More information about the Stk mailing list