Line 1: |
Line 1: |
| Back to parent: [[GotCloud]] | | Back to parent: [[GotCloud]] |
| | | |
− | Software for GotCloud is kept in a '''git''' repository '''on github''' (eventually). | + | Software for GotCloud is kept in a '''git''' repository on '''github'''. |
− | This document describes how we create the Debian and Redhat packages used with 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/gotcloud gotcloud'''
| |
− | Cloning into 'gotcloud'...
| |
− | done.
| |
− | '''ls gotcloud'''
| |
− | bin/ debian/ INSTALL.txt README scripts/ test/
| |
− | </code>
| |
| | | |
− | '''Build the Packages'''
| + | To release a new version of GotCloud: |
− | | + | # I recommend creating a new directory: |
− | Debian binaries
| + | #: <code> cd ~/dev</code> |
− | <code> | + | #: <code> git clone git@github.com:statgen/gotcloud.git</code> |
− | '''cd ~/dev/gotcloud'''
| + | #: <code> cd gotcloud</code> |
− | '''debian/makedeb.sh bin'''
| + | # Build the source |
− | dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
| + | #: <code> cd src && make && cd ..</code> |
− | dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
| + | # Run the tests, ensure they all succeed |
− | dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
| + | #: <code> cd src && make test && cd ..</code> |
− | dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
| + | #: <code>./gotcloud test</code> |
− | dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
| + | # Update the version number (if you have not already). |
− | dpkg-buildpackage: source package gotcloud-bin
| + | #* Edit release_version.txt |
− | dpkg-buildpackage: source version 1.0
| + | #* Commit the new release number |
− | dpkg-buildpackage: source changed by Mary Kate Trost <mktrost@umich.edu>
| + | #*: <code>git add release_version.txt</code> |
− | dpkg-buildpackage: host architecture amd64
| + | #*: <code>git commit -m "Release 1.XX"</code> |
− | [lines deleted]
| + | #* Push to github |
− | dpkg-gencontrol -isp
| + | #*: <code>git push</code> |
− | chown -R root.root debian/tmp
| + | # Checkout latest branch and merge master & push |
− | chmod -R o-s,go=u,go-ws debian/tmp
| + | #: <code>git checkout latest</code> |
− | dpkg --build debian/tmp .
| + | #: <code>git merge master</code> |
− | dpkg-deb: building package `gotcloud-bin' in `./gotcloud-bin_1.0_amd64.deb'.
| + | #: <code>git push</code> |
− | rm -rf tmp
| + | #: <code>git checkout master</code> |
− | ''Package file now in /home/tpg/dev/gotcloud''
| + | # Create and push a release tag |
− | ''-rw-r--r-- 1 tpg tpg 3366722 Dec 4 13:55 gotcloud-bin_1.0_amd64.deb''
| + | #: <code>git tag -a gotcloud.1.XX -m 'version 1.XX'</code> |
− | </code> | + | #: <code> git push origin gotcloud.1.XX</code> |
− | | + | # Create the debian packages |
− | Debian test
| + | #* Generate the packages |
− | <code> | + | #*: <code> ./debian/makedeb.sh bin =</code> |
− | '''cd ~/dev/gotcloud'''
| + | #*: <code> ./debian/makedeb.sh test =</code> |
− | '''debian/makedeb.sh test'''
| + | # Generate the release notes on github |
− | dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
| + | #: On github, login |
− | [lines deleted]
| + | #::Goto Tags, Select "Draft New Release" |
− | dpkg-gencontrol -isp
| + | #::* Select the "Tag version" you created |
− | chown -R root.root debian/tmp
| + | #::* Fill in the release notes |
− | chmod -R o-s,go=u,go-ws debian/tmp
| + | # Update wiki release documentation (for full release) |
− | dpkg --build debian/tmp .
| + | #* http://genome.sph.umich.edu/wiki/GotCloud:_Versions |
− | dpkg-deb: building package `gotcloud-test' in `./gotcloud-test_1.0_amd64.deb'.
| + | # Send Email to google group (for full release) |
− | rm -rf tmp
| + | #* gotcloud@googlegroups.com |
− | ''Package file now in /home/tpg/dev/gotcloud''
| + | #* 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 433342982 Dec 4 14:04 gotcloud-test_1.0_amd64.deb''
| + | #** https://groups.google.com/forum/?hl=en#!forum/gotcloud |
− | </code> | + | # Install on mario |
− | | + | #* In the gotcloud directory where you generated the deb files, run: |
− | Redhat binary RPM
| + | #*: <code>./debian/install_gotcloud_without_root.sh 1.16 /net/mario</code> |
− | <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> |
− | | + | #* Rename to the version name: |
− | Redhat test RPM
| + | #*: <code>mv /net/mario/gotcloud.old/gotcloud /net/mario/gotcloud.old/gotcloud.1.XX</code> |
− | <code> | + | # Send email to csg group to inform them of the newly installed version on the cluster and of any relevant changes |
− | </code> | + | #* gotcloudUsers@umich.edu |