Releasing GotCloud: Difference between revisions

From Genome Analysis Wiki
Jump to navigationJump to search
No edit summary
Pjvh (talk | contribs)
No edit summary
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Back to parent: [[GotCloud]]
Back to parent: [[GotCloud]]


Software for GotCloud is kept in the '''git''' repository '''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 our local repository):
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).

Latest revision as of 22:17, 6 November 2015

Back to parent: GotCloud

Software for GotCloud is kept in a git repository on github.

We also create a Debian package and tar file for GotCloud.

To release a new version of GotCloud:

  1. I recommend creating a new directory:
    cd ~/dev
    git clone git@github.com:statgen/gotcloud.git
    cd gotcloud
  2. Build the source
    cd src && make && cd ..
  3. Run the tests, ensure they all succeed
    cd src && make test && cd ..
    ./gotcloud test
  4. Update the version number (if you have not already).
    • Edit release_version.txt
    • Commit the new release number
      git add release_version.txt
      git commit -m "Release 1.XX"
    • Push to github
      git push
  5. Checkout latest branch and merge master & push
    git checkout latest
    git merge master
    git push
    git checkout master
  6. Create and push a release tag
    git tag -a gotcloud.1.XX -m 'version 1.XX'
    git push origin gotcloud.1.XX
  7. Create the debian packages
    • Generate the packages
      ./debian/makedeb.sh bin =
      ./debian/makedeb.sh test =
  8. Generate the release notes on github
    On github, login
    Goto Tags, Select "Draft New Release"
    • Select the "Tag version" you created
    • Fill in the release notes
  9. Update wiki release documentation (for full release)
  10. Send Email to google group (for full release)
  11. Install on mario
    • In the gotcloud directory where you generated the deb files, run:
      ./debian/install_gotcloud_without_root.sh 1.16 /net/mario
    • Install the latest gotcloud in the gotcloud.old directory (named by version) so someone can run a specific version
      ./debian/install_gotcloud_without_root.sh 1.16 /net/mario/gotcloud.old
    • Rename to the version name:
      mv /net/mario/gotcloud.old/gotcloud /net/mario/gotcloud.old/gotcloud.1.XX
  12. Send email to csg group to inform them of the newly installed version on the cluster and of any relevant changes
    • gotcloudUsers@umich.edu