[700] | 1 | .. _contribute_release: |
---|
[699] | 2 | |
---|
[700] | 3 | Release Procedure |
---|
| 4 | ================= |
---|
[699] | 5 | |
---|
[701] | 6 | The ZOO-Project release procedure is commonly defined by the following |
---|
| 7 | rules: |
---|
[699] | 8 | |
---|
[702] | 9 | * Any of the :ref:`zoo_developers` can ask for a release by asking the |
---|
| 10 | :ref:`zoo_psc` and pointing a release manager. This last will then |
---|
[701] | 11 | vote for accepting both the manager and the release procedure to |
---|
| 12 | happen. |
---|
[725] | 13 | * If not already created, create a wiki page (like this `one |
---|
[701] | 14 | <http://zoo-project.org/trac/wiki/Release/1.3.0/Notes>`_ using this |
---|
| 15 | scheme: Release/M.m.r/Notes), summarizing changes from the previous |
---|
| 16 | release (extracted from the `revision log |
---|
| 17 | <http://zoo-project.org/trac/browser/trunk/zoo-project/HISTORY.txt>`_). |
---|
| 18 | * That file should include new features, changed features, and |
---|
| 19 | deprecated features if any. Changes to the official documentation |
---|
| 20 | should be specifically noted along with other items that will cause |
---|
| 21 | breaking changes during upgrades. |
---|
| 22 | * Read the documentation and remove outdated parts. |
---|
| 23 | * Create release candidate as .zip and .tar.bz2 then add them on this |
---|
| 24 | `page <http://zoo-project.org/site/Downloads>`_ (by editing this |
---|
| 25 | `wiki page <http://zoo-project.org/trac/wiki/Download>`_) |
---|
| 26 | * Cut a release candidate once you think that everything is in |
---|
| 27 | order. Announce the release candidate for review for at least 1 |
---|
| 28 | week. In this period of time, it is also appropriate for you to |
---|
| 29 | deploy in production since you are asserting that it is stable and |
---|
| 30 | (significant) bug free. Publish a specific revision with this. |
---|
| 31 | * If significant bugs are reported, fix and cut a new release |
---|
| 32 | candidate. If no major bugs, then announce that the release |
---|
| 33 | candidate has officially been promoted to the official release (if |
---|
| 34 | you want, you can do this with a motion and support of the PSC). |
---|
| 35 | * Ensure that release exactly matches something in SVN. Tag and branch |
---|
| 36 | appropriately. |
---|
| 37 | * Update documentation as needed. |
---|
| 38 | * Announce on various email list and other locations |
---|
| 39 | (news_item@osgeo.org, SlashGeo, etc) |
---|
| 40 | |
---|
[700] | 41 | Creating an Official Release |
---|
| 42 | ---------------------------- |
---|
[699] | 43 | |
---|
[700] | 44 | Release versions lead to an update in documentation and standard tarballs. This is to help future administrators repeatably create releases. |
---|
[699] | 45 | |
---|
[700] | 46 | * Double check that the pages from `the ZOO-Project.org web site <http://zoo-project.org/>`_ match the current version. |
---|
| 47 | * Double check that the latest build file matches the current revisions number. |
---|
| 48 | * If this is a new major release create a branch and a tag. |
---|
[699] | 49 | |
---|
[700] | 50 | .. code:: |
---|
[699] | 51 | |
---|
[700] | 52 | cd zoo-project-svn/ |
---|
| 53 | svn cp trunk branches/branch-1.6 |
---|
| 54 | svn cp trunk tags/rel-1.6.0 |
---|
[699] | 55 | |
---|
[700] | 56 | * If this is a major or minor relase, create a tag. |
---|
[699] | 57 | |
---|
[700] | 58 | .. code:: |
---|
[699] | 59 | |
---|
[700] | 60 | svn cp branches/branch-1.6 tags/rel-1.6.1 |
---|
[699] | 61 | |
---|
[700] | 62 | * Commit the tags or branches with the version numbers. |
---|
| 63 | |
---|
| 64 | .. code:: |
---|
| 65 | |
---|
| 66 | svn commit -m 'Created branch/tags for the X.Y.Z release' |
---|
| 67 | |
---|
| 68 | * Create version archives |
---|
| 69 | |
---|
| 70 | .. code:: |
---|
| 71 | |
---|
| 72 | export VERSION=2.6.0 |
---|
| 73 | cd zoo-propject-svn |
---|
| 74 | cp -r trunk zoo-project-$VERSION |
---|
| 75 | cd zoo-project-$VERSION |
---|
| 76 | rm -rf $(find ./ -name ".svn") |
---|
| 77 | cd zoo-project/zoo-kernel |
---|
| 78 | autoconf |
---|
[735] | 79 | # In case you did not build ZOO-Kernel |
---|
[700] | 80 | cd ../../.. |
---|
[735] | 81 | # In case you built ZOO-Kernel, then remove the generated file from the archive |
---|
| 82 | make clean |
---|
| 83 | rm -f {Makefile,ZOOMakefile.opts} |
---|
| 84 | cd ../../.. |
---|
| 85 | # In case you built one or more ZOO-Services, then remove the generated file from the archive |
---|
| 86 | rm $(find ./zoo-project-$VERSION/zoo-project/zoo-services -name "*zo") |
---|
[700] | 87 | # Remove documentation from the archive |
---|
[735] | 88 | rm -rf ./zoo-project-$VERSION/{docs,workshop} |
---|
[700] | 89 | tar -cvjf ./zoo-project-$VERSION.tar.bz2 ./zoo-project-$VERSION |
---|
| 90 | zip -r ./zoo-project-$VERSION.zip ./zoo-project-$VERSION |
---|
| 91 | scp -P 1046 ./zoo-project-$VERSION.{zip,tar.bz2} zoo-project.org:/var/www/localhost/htdocs/dl/ |
---|
| 92 | |
---|
| 93 | * Update the `Downloads page <http://zoo-project.org/site/Downloads>`_ to add the latest release (by editing `this wiki page <http://zoo-project.org/trac/wiki/Downloads>`_). |
---|