Line 2: |
Line 2: |
| | | |
| Software for GotCloud is kept in a '''git''' repository on '''github'''. | | Software for GotCloud is kept in a '''git''' repository on '''github'''. |
− | This document describes how we create the Debian package and tar file for GotCloud.
| |
| | | |
− | '''Get the software''' (in this case from github):
| + | We also create a Debian package and tar file for GotCloud. |
− | <code>
| |
− | cd ~/dev
| |
− | '''git clone git://github.com/statgen/gotcloud.git'''
| |
− | Cloning into 'gotcloud'...
| |
− | done.
| |
− | '''ls gotcloud'''
| |
− | bin/ Copyrights/ debian/ gotcloud INSTALL.txt README release_version.txt scripts src test
| |
− | </code>
| |
| | | |
− | '''Build the Source'''
| + | To release a new version of GotCloud: |
− | <code> | + | # I recommend creating a new directory: |
− | | + | #: <code> cd ~/dev</code> |
− | '''cd ~/dev/gotcloud/src'''
| + | #: <code> git clone git@github.com:statgen/gotcloud.git</code> |
− | '''make'''
| + | #: <code> cd gotcloud</code> |
− | </code> | + | # Build the source |
− | | + | #: <code> cd src && make && cd ..</code> |
− | '''Build the Packages'''
| + | # Run the tests, ensure they all succeed |
− | | + | #: <code> cd src && make test && cd ..</code> |
− | Debian binaries DEB, TAR file
| + | #: <code>./gotcloud test</code> |
− | <code> | + | # Update the version number (if you have not already). |
− | '''cd ~/dev/gotcloud'''
| + | #* Edit release_version.txt |
− | '''debian/makedeb.sh bin =''' (or in place of '=' use a version number)
| + | #* Commit the new release number |
− | Making binaries in src. First time this will take a couple of minutes
| + | #*: <code>git add release_version.txt</code> |
− | Binaries created as necessary
| + | #*: <code>git commit -m "Release 1.XX"</code> |
− | dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor):
| + | #* Push to github |
− | [lines deleted]
| + | #*: <code>git push</code> |
− | dpkg-deb: building package `gotcloud-bin' in `./gotcloud-bin_1.06_amd64.deb'.
| + | # Checkout latest branch and merge master & push |
− | Debian package file created
| + | #: <code>git checkout latest</code> |
− | -rw-r--r-- 1 tpg tpg 7933560 May 20 08:28 /home/tpg/dev/gotcloud/gotcloud-bin_1.06_amd64.deb
| + | #: <code>git merge master</code> |
− | Creating tar file for 'bin'
| + | #: <code>git push</code> |
− | Tar file created
| + | #: <code>git checkout master</code> |
− | -rw-r--r-- 1 tpg tpg 7983521 May 20 08:28 /home/tpg/dev/gotcloud/gotcloud-bin_1.06.tar.gz
| + | # Create and push a release tag |
− | </code> | + | #: <code>git tag -a gotcloud.1.XX -m 'version 1.XX'</code> |
− | | + | #: <code> git push origin gotcloud.1.XX</code> |
− | Debian test DEB, TAR file
| + | # Create the debian packages |
− | <code> | + | #* Generate the packages |
− | '''cd ~/dev/gotcloud'''
| + | #*: <code> ./debian/makedeb.sh bin =</code> |
− | '''debian/makedeb.sh test =''' (or in place of '=' use a version number)
| + | #*: <code> ./debian/makedeb.sh test =</code> |
− | #############################################################
| + | # Generate the release notes on github |
− | # Creating the 'test' package takes a pretty long time. Patience grasshopper...
| + | #: On github, login |
− | #############################################################
| + | #::Goto Tags, Select "Draft New Release" |
− | dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): ...
| + | #::* Select the "Tag version" you created |
− | [lines deleted]
| + | #::* Fill in the release notes |
− | dpkg-deb: building package `gotcloud-test' in `./gotcloud-test_1.06_amd64.deb'.
| + | # Update wiki release documentation (for full release) |
− | Debian package file created
| + | #* http://genome.sph.umich.edu/wiki/GotCloud:_Versions |
− | -rw-r--r-- 1 tpg tpg 382184656 May 20 08:41 /home/tpg/dev/gotcloud/gotcloud-test_1.06_amd64.deb
| + | # Send Email to google group (for full release) |
− | Creating tar file for 'test'
| + | #* gotcloud@googlegroups.com |
− | Tar file created
| + | #* I usually do it from the groups site as an announcement & post on behalf of GotCloud (I may need to modify your permissions to do this) |
− | -rw-r--r-- 1 tpg tpg 383138926 May 20 08:42 /home/tpg/dev/gotcloud/gotcloud-test
| + | #** https://groups.google.com/forum/?hl=en#!forum/gotcloud |
− | </code> | + | # Install on mario |
− | | + | #* In the gotcloud directory where you generated the deb files, run: |
− | Make these available via FTP:
| + | #*: <code>./debian/install_gotcloud_without_root.sh 1.16 /net/mario</code> |
− | | + | #* Install the latest gotcloud in the gotcloud.old directory (named by version) so someone can run a specific version |
− | <code> | + | #*: <code>./debian/install_gotcloud_without_root.sh 1.16 /net/mario/gotcloud.old</code> |
− | '''cd ~/dev/gotcloud'''
| + | #* Rename to the version name: |
− | '''ls -la *.deb *.tar.gz'''
| + | #*: <code>mv /net/mario/gotcloud.old/gotcloud /net/mario/gotcloud.old/gotcloud.1.XX</code> |
− | -rw-r--r-- 1 tpg tpg 7933560 May 20 08:28 gotcloud-bin_1.06_amd64.deb
| + | # Send email to csg group to inform them of the newly installed version on the cluster and of any relevant changes |
− | -rw-r--r-- 1 tpg tpg 7983521 May 20 08:28 gotcloud-bin_1.06.tar.gz
| + | #* gotcloudUsers@umich.edu |
− | -rw-r--r-- 1 tpg tpg 382184656 May 20 08:41 gotcloud-test_1.06_amd64.deb
| |
− | -rw-r--r-- 1 tpg tpg 383138926 May 20 08:42 gotcloud-test_1.06.tar.gz
| |
− |
| |
− | '''scp *.deb *.tar.gz gotcloud@share.sph.umich.edu'''
| |
− | </code> | |
− | | |
− | This makes the Debian packages and tar files available to outsiders using anonymous FTP (or wget).
| |