1 | .. _contribute_release: |
---|
2 | |
---|
3 | Release Procedure |
---|
4 | ================= |
---|
5 | |
---|
6 | The ZOO-Project release procedure is commonly defined by the following |
---|
7 | rules: |
---|
8 | |
---|
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 |
---|
11 | vote for accepting both the manager and the release procedure to |
---|
12 | happen. |
---|
13 | * If not already created, create a wiki page (like this `one |
---|
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 | |
---|
41 | Creating an Official Release |
---|
42 | ---------------------------- |
---|
43 | |
---|
44 | Release versions lead to an update in documentation and standard tarballs. This is to help future administrators repeatably create releases. |
---|
45 | |
---|
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. |
---|
49 | |
---|
50 | .. code:: |
---|
51 | |
---|
52 | cd zoo-project-svn/ |
---|
53 | svn cp trunk branches/branch-1.6 |
---|
54 | svn cp trunk tags/rel-1.6.0 |
---|
55 | |
---|
56 | * If this is a major or minor relase, create a tag. |
---|
57 | |
---|
58 | .. code:: |
---|
59 | |
---|
60 | svn cp branches/branch-1.6 tags/rel-1.6.1 |
---|
61 | |
---|
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 |
---|
79 | # In case you did not build ZOO-Kernel |
---|
80 | cd ../../.. |
---|
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") |
---|
87 | # Remove documentation from the archive |
---|
88 | rm -rf ./zoo-project-$VERSION/{docs,workshop} |
---|
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/new/Code/Download>`_ to add the latest release (by editing `this wiki page <http://zoo-project.org/trac/wiki/ZooWebSite/2015/Code/Download>`_). |
---|