version 1.6, 2008/05/29 14:52:24
|
version 1.13, 2011/06/02 23:30:38
|
|
|
Art's suggested release recipe: | Art's suggested release recipe: |
| |
1. Notify users (jsoc_dev@sun.stanford.edu) that a new release will be built. Allow users time to submit changes they want in the new release. This includes changes made by the CM that have not been committed. |
1. Notify users (jsoc_dev@sun.stanford.edu) that a new release will be |
2. From a cluster-node (eg., n00), perform a clean sync to head as a non-Production user (cvs checkout -r HEAD JSOC). The -r rev option is sticky, which means that if you used -r Ver_3-2 on a previous checkout, that "cvs checkout JSOC" will check out Ver_3-2. Use "-r HEAD" to force the use of the head revision. Update $JSOCROOT/base/jsoc_version.h to the latest release version and build again (make clean, make universe). The version macros should be of the form: |
built. Allow users time to submit changes they want in the new |
|
release. This includes changes made by the CM that have not been |
|
committed. |
|
|
|
2. Update $JSOCROOT/base/jsoc_version.h to the latest release version |
|
and build again (make clean, make universe). The version macros |
|
should be of the form: |
| |
#define jsoc_version "V3R5" | #define jsoc_version "V3R5" |
#define jsoc_vers_num (305) | #define jsoc_vers_num (305) |
| |
3. Repeat step 2 for all machine types supported. |
cvs commit $JSOCROOT/base/jsoc_version.h. |
4. From the machine used in step 2, commit $JSOCROOT/base/libdrms/jsoc_version.h. |
|
4a. Add a new file, JSOC/CM/V<MAJ>.<MIN>/release.notes. This has the release notes (see below). Commit. |
3. Add a new file, JSOC/CM/V<MAJ>.<MIN>/release.notes. This has the |
5. From the machine used in step 2, create a tag for the new release. cd to $JSOCROOT. Run "cvs tag -c Ver_<MAJ>-<MIN> ." Replace <MAJ> with the major version number and <MIN> with the minor version number. |
release notes (see below). Commit. |
5a. The NetDRMS release version number should also be incremented and tagged. From another machine, do "cvs checkout -AP DRMS". Then cd to the root (JSOC). Then "find . -path '*CVS' -prune -o \( -type f -exec cvs tag -c NetDRMS_Ver_<MAJ>-<MIN> {} \; \)". Actually, the commands "cvs checkout -r Ver_<MAJ>-<MIN> DRMS" followed by "cd $JSOCROOT; cvs tag -c NetDRMS_Ver_<MAJ>-<MIN> will work". |
|
6. Update the "Ver_LATEST" tag. This tag always points to the latest release. "cd $JSOCROOT; cvs rtag -r Ver_<MAJ>-<MIN> Ver_LATEST JSOC", where <MAJ> and <MIN> are the current release. If that doesn't work try "cvs tag -d Ver_LATEST .; cvs checkout -r Ver_<MAJ>-<MIN> JSOC" followed by "cvs tag -c Ver_LATEST". |
4. Create a tag for the new release. |
7. Once again, edit $JSOCROOT/base/libdrms/jsoc_version.h. The version macros should be of the form: |
a. Create the full-JSOC-release tags |
|
i. /home/jsoc/dlsource.pl -o tag -f sdp -t Ver_<MAJ>-<MIN> |
|
ii. /home/jsoc/dlsource.pl -o untag -f sdp -t Ver_LATEST |
|
iii. /home/jsoc/dlsource.pl -o tag -f sdp -t Ver_LATEST |
|
b. Create the NetDRMS-release tags |
|
i. /home/jsoc/dlsource.pl -o tag -f net -t NetDRMS_Ver_<MAJ>-<MIN> |
|
ii. /home/jsoc/dlsource.pl -o untag -f net -t Ver_DRMSLATEST |
|
iii. /home/jsoc/dlsource.pl -o tag -f net -t Ver_DRMSLATEST |
|
|
|
5. Now you must build all production release executables with the release jsoc |
|
version numbers in place ("V3R5" and "305" in this example). Ensure |
|
that the tag was successfully created and create actual release |
|
binaries (not just the binaries in your sandbox). Login as the 'jsoc' |
|
user, cd to /home/jsoc/cvs, and run "/home/jsoc/dlsource.pl -o checkout |
|
-f sdp -r Ver_<MAJ>-<MIN>" and build on all machines supported. Do the same in |
|
/home/jsoc/cvs/Development/. |
|
|
|
6. Edit $JSOCROOT/base/jsoc_version.h, but not the version of this file |
|
in a production directory.The version macros should be of the form: |
| |
#define jsoc_version "V3R5X" | #define jsoc_version "V3R5X" |
#define jsoc_vers_num (-305) | #define jsoc_vers_num (-305) |
| |
The "X" and "-" denote that binaries were created from non-release code. | The "X" and "-" denote that binaries were created from non-release code. |
8. From the machine used in step 7, commit $JSOCROOT/base/libdrms/jsoc_version.h. You might have to run "cvs update -A base/libdrms/jsoc_version.h" to clear the stick flag created when you first sync'd in step 2 (if you used the "-r" flag). |
|
9. Ensure that the tag was successfully created and create actual release binaries (not just the binaries in your sandbox). Login as the production user, checkout the tagged files (cvs checkout -r Ver_<MAJ>-<MIN> JSOC) and build on all machines supported. |
commit $JSOCROOT/base/jsoc_version.h. |
10. Update the "working release". The source for these binaries lives in /home/jsoc/cvs/JSOC. cd to /home/jsoc/cvs, and do "cvs checkout -r Ver_<MAJ>-<MIN> JSOC" and build on all machines supported. |
|
12. Send instructions for using the new release to users. |
7. Send instructions for using the new release to users. |
| |
================================================================================ | ================================================================================ |
Example New Release Instructions | Example New Release Instructions |