User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
difx:release [2011/06/08 21:58]
walterbrisken created
difx:release [2020/09/14 23:36] (current)
Line 1: Line 1:
-== 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.
-=== Warning emails ===+=== 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. 
 +  - 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. 
 +  - 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 
 +    - 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. 
 +    - Commit the ChangeLog 
 +    - Make sure the for each package requires proper versions of libraries (usually statements starting with PKG_CHECK_MODULES) 
 +    - Do a subversion copy, e.g.,  svn cp -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! 
 +    - Go back to the trunk version of each package and bump the version (usually in and note this in the ChangeLog. 
 +    - Recommit the trunk version. 
 +  - Run through the minor release procedure to create DiFX-2.X.1/ from your new DiFX-2.X/ tag. 
 +A script, current for DiFX-2.4, is below.  For future versions change ''NEW_VERSION'' and check for package completeness. 
 +export NEW_VERSION=DiFX-2.4 
 +svn mkdir${NEW_VERSION}/ -m "top directory for ${NEW_VERSION} release" 
 +svn cp${NEW_VERSION}/mpifxcorr -m "Tagging ${NEW_VERSION}" 
 +svn mkdir${NEW_VERSION}/libraries -m "for ${NEW_VERSION} release" 
 +svn cp${NEW_VERSION}/libraries/difxio -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/difxmessage -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/mark5access -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/perl -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/python -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/vdifio -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/libraries/vex -m "Tagging ${NEW_VERSION}" 
 +svn mkdir${NEW_VERSION}/applications -m "for ${NEW_VERSION} release" 
 +svn cp${NEW_VERSION}/applications/calcif2  -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/calcserver -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/difx2fits -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/difx2mark4 -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/difxfilterbank -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/difx_monitor -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/espresso -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/guiServer -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/hops -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/mk5daemon -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/applications/vex2difx -m "Tagging ${NEW_VERSION}" 
 +svn mkdir${NEW_VERSION}/utilities -m "for ${NEW_VERSION} release" 
 +svn cp${NEW_VERSION}/utilities/bench -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/utilities/difxdb -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/utilities/misc -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/utilities/pulsar -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/utilities/vis2screen -m "Tagging ${NEW_VERSION}"
-Upon 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.+#sites 
 +svn mkdir${NEW_VERSION}/sites -m "for ${NEW_VERSION} release
 +svn mkdir${NEW_VERSION}/sites/MPIfR -m "for ${NEW_VERSION} release
 +svn mkdir${NEW_VERSION}/sites/NRAO -m "for ${NEW_VERSION} release" 
 +svn cp${NEW_VERSION}/sites/NRAO/difxdb -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/sites/NRAO/SniffPlots -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/sites/NRAO/rcwlib -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/sites/MPIfR/README -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/sites/MPIfR/difxdb -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/sites/MPIfR/mark5 -m "Tagging ${NEW_VERSION}"
-A countdown page+#other setup things 
 +svn cp${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}" 
 +svn cp${NEW_VERSION}/ -m "Tagging ${NEW_VERSION}"
-A second email indicating feature completeness+</code>
difx/release.1307534339.txt.gz · Last modified: 2011/06/08 21:58 by walterbrisken