Both sides previous revisionPrevious revisionNext revision | Previous revision |
difx:release [2014/11/05 02:38] – walterbrisken | difx:release [2023/02/22 20:53] (current) – helgerottmann |
---|
=== The DiFX Release Process === | ==== The DiFX Release Process ==== |
| |
The guidelines here are not strict and may change version to version, but document the typical process used in releasing a new DiFX version. | The guidelines here are not strict and may change version to version, but document the typical process used in releasing a new DiFX version. |
| |
| === General principles === |
| |
| * We aim for a major release every ~12 months |
| * In between major releases, minor releases are made on an as-needed basis. Minor releases should really only be for bugfixes or very minor feature additions. |
| |
| === How to do a minor release === |
| |
| * Test your change in trunk |
| * Test your change in master_tags/DiFX-2.X/ |
| * Update the ChangeLog(s) and update package version requirements if needed |
| * Update the wiki [[changelog]] |
| * Email difx-developers and announce the intention to make a new minor release: |
| * Request testing of the updated DiFX-2.X |
| * Indicate timeline and community requirements (with respect to schedule) |
| * After testing is complete: |
| * svn copy master_tags/DiFX-2.X/ master_tags/DiFX-2.X.Y/ |
| * update the setup.bash and setup.csh with the new DIFX_VERSION identifier |
| * Compile test the new tag |
| * Update [[news]] and [[installation]] with the new version number |
| * Update [[difx2.0tonow]] with major changes |
| * email difx-users and announce the new release |
| * update the versions section of the userguide (//doc/userguide/trunk/difx_versions.tex//) |
| |
| === How to do a major release === |
| |
- Upon nearing feature completeness or some other indicator that a release is due, somebody should email the DiFX Developers email list, encouraging a quick wrap-up of current developments for the upcoming release. | - Upon nearing feature completeness or some other indicator that a release is due, somebody should email the DiFX Developers email list, encouraging a quick wrap-up of current developments for the upcoming release. |
- A countdown page [[d201countdown|like this]] is usually created at this time to track remaining work to be done and start building release notes. | - A countdown page [[d201countdown|like this]] may be created at this time to track remaining work to be done and start building release notes. |
- A second email indicating feature completeness and transition to bug fix only state is sent out when the countdown list contains only testing and documentation items. | - A second email indicating feature completeness and transition to bug fix only state is sent out when the countdown list contains only testing and documentation items. |
- Upon general agreement that the tree is ready for tagging a final email is sent suggesting that. | - Upon general agreement that the tree is ready for tagging a final email is sent suggesting that. |
- The release tagging operation involves the following steps | - The release tagging operation involves the following steps |
- Make the subversion tree for the release, including the version directory (e.g., DiFX-2.0.1) and its subdirectories (libraries, applications, ...) | - Make the subversion tree for the release, including the version directory (e.g., DiFX-2.6) and its subdirectories (libraries, applications, ...) |
- Update ChangeLog entries to include the new DiFX version and possibly a date. | - Update ChangeLog entries to include the new DiFX version and possibly a date. |
- Commit the ChangeLog | - Commit the ChangeLog |
- Make sure the configure.ac for each package requires proper versions of libraries (usually statements starting with PKG_CHECK_MODULES) | - Make sure the configure.ac for each package requires proper versions of libraries (usually statements starting with PKG_CHECK_MODULES) |
- Do a subversion copy, e.g., svn cp https://svn.atnf.csiro.au/difx/libraries/difxio/trunk https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.0.1/libraries/difxio -m "Tag for version 2.0.1" | - Do a subversion copy, e.g., svn cp https://svn.atnf.csiro.au/difx/libraries/difxio/trunk https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.6/libraries/difxio -m "Tag for version 2.6" |
- If you copy the above line, **be sure to change the quotes to normal quotes** or else the svn cp command will fail with a misleading error message! | - If you copy the above line, **be sure to change the quotes to normal quotes** or else the svn cp command will fail with a misleading error message! |
- Go back to the trunk version of each package and bump the version (usually in configure.ac) and note this in the ChangeLog. | - Go back to the trunk version of each package and bump the version (usually in configure.ac) and note this in the ChangeLog. |
- Recommit the trunk version. | - Recommit the trunk version. |
- Announce to the DiFX Users mailing list that the new version is ready, including a copy of release notes. | - Run through the minor release procedure to create DiFX-2.X.1/ from your new DiFX-2.X/ tag. |
- Edit the [[news]] page of the wiki with the release date | |
| |
A script, current for DiFX-2.4, is below. For future versions change ''NEW_VERSION'' and check for package completeness. | A script, current for DiFX-2.8, is below. For future versions change ''NEW_VERSION'' and check for package completeness. |
| |
<code> | <code> |
export NEW_VERSION=DiFX-2.4 | export NEW_VERSION=DiFX-2.8 |
| |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "top directory for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "top directory for ${NEW_VERSION} release" |
| |
#mpifxcorr | #mpifxcorr |
svn cp https://svn.atnf.csiro.au/difx/mpifxcorr/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/mpifxcorr -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/mpifxcorr/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/mpifxcorr -m "Branching ${NEW_VERSION}" |
| |
#libraries | #libraries |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries -m "for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries -m "for ${NEW_VERSION} release" |
svn cp https://svn.atnf.csiro.au/difx/libraries/difxio/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/difxio -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/difxio/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/difxio -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/difxmessage/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/difxmessage -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/dirlist/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/dirlist -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/mark5access/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/mark5access -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/difxmessage/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/difxmessage -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/perl/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/perl -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/mark5access/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/mark5access -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/python/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/python -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/perl/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/perl -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/vdifio/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/vdifio -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/python/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/python -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/libraries/vex/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/vex -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/libraries/mark6sg/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/mark6sg -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/libraries/mark6meta/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/mark6meta -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/libraries/vdifio/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/vdifio -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/libraries/codifio/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/codifio -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/libraries/vex/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/libraries/vex -m "Branching ${NEW_VERSION}" |
| |
#applications | #applications |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications -m "for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications -m "for ${NEW_VERSION} release" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/calcif2 https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/calcif2 -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/calcif2 https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/calcif2 -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/calcserver/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/calcserver -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/calcserver/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/calcserver -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/difx2fits/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx2fits -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/difxcalc11/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difxcalc11 -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/difx2mark4/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx2mark4 -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/difx2fits/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx2fits -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/difxfilterbank/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difxfilterbank -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/difx2mark4/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx2mark4 -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/difx_monitor/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx_monitor -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/difxfilterbank/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difxfilterbank -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/espresso/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/espresso -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/difx_monitor/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/difx_monitor -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/guiServer/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/guiServer -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/espresso/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/espresso -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/hops/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/hops -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/guiServer/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/guiServer -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/mk5daemon/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/mk5daemon -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/hops/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/hops -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/applications/vex2difx/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/vex2difx -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/applications/mk5daemon/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/mk5daemon -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/applications/vex2difx/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/vex2difx -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/applications/datasim/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/datasim -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/applications/polconvert/trunk https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/applications/polconvert -m "Branching ${NEW_VERSION}" |
| |
#utilities | #utilities |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities -m "for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities -m "for ${NEW_VERSION} release" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/bench https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/bench -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/autozoom https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/autozoom -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/difxdb https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/difxdb -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/bench https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/bench -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/misc https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/misc -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/difxdb https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/difxdb -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/pulsar https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/pulsar -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/misc https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/misc -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/vis2screen https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/vis2screen -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/pulsar https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/pulsar -m "Branching ${NEW_VERSION}" |
| svn cp https://svn.atnf.csiro.au/difx/utilities/trunk/vis2screen https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/utilities/vis2screen -m "Branching ${NEW_VERSION}" |
| |
#sites | #sites |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/MPIfR -m "for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/MPIfR -m "for ${NEW_VERSION} release" |
svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO -m "for ${NEW_VERSION} release" | svn mkdir https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO -m "for ${NEW_VERSION} release" |
svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/difxdb https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/difxdb -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/difxdb https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/difxdb -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/SniffPlots https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/SniffPlots -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/SniffPlots https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/SniffPlots -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/rcwlib https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/rcwlib -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/sites/NRAO/trunk/rcwlib https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/NRAO/rcwlib -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/sites/MPIfR/README https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/MPIfR/README -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/sites/MPIfR https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/sites/MPIfR/difxdb https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/MPIfR/difxdb -m "Tagging ${NEW_VERSION}" | |
svn cp https://svn.atnf.csiro.au/difx/sites/MPIfR/mark5 https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/sites/MPIfR/mark5 -m "Tagging ${NEW_VERSION}" | |
| |
#other setup things | #other setup things |
svn cp https://svn.atnf.csiro.au/difx/setup/genipppc https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/setup/genipppc https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/setup/install-difx https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/setup/install-difx https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/setup/setup.bash https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/setup/setup.bash https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Branching ${NEW_VERSION}" |
svn cp https://svn.atnf.csiro.au/difx/setup/setup.csh https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" | svn cp https://svn.atnf.csiro.au/difx/setup/setup.csh https://svn.atnf.csiro.au/difx/master_tags/${NEW_VERSION}/ -m "Branching ${NEW_VERSION}" |
| |
</code> | </code> |