| 1 |
|
|---|
| 2 | How to release a new version of CIVL
|
|---|
| 3 |
|
|---|
| 4 | 1. Working with your local copy of trunk, make sure all tests pass.
|
|---|
| 5 |
|
|---|
| 6 | 2. Edit the fields named "version" and "date" in interface
|
|---|
| 7 | edu.udel.cis.vsl.civl.config.CIVLConstants to use the new version and today's date.
|
|---|
| 8 | Also, edit README to change the version number and the changes of
|
|---|
| 9 | the new version. Updates CIVL manual accordingly (there is also version number and
|
|---|
| 10 | date referenced in the manual, and they need to be consistent with the release).
|
|---|
| 11 |
|
|---|
| 12 | 3. Commit your trunk or make sure there are no uncommitted
|
|---|
| 13 | modifications.
|
|---|
| 14 |
|
|---|
| 15 | 4. Create the tag: to create version 0.2, for example:
|
|---|
| 16 |
|
|---|
| 17 | svn copy svn://vsl.cis.udel.edu/civl/trunk svn://vsl.cis.udel.edu/civl/tags/0.2
|
|---|
| 18 |
|
|---|
| 19 | 5. On vsl.cis.udel.edu, sudo -iu svn (file a ticket if you can't do this),
|
|---|
| 20 | and edit /home/svn/repositories/civl/hooks/post-commit by changing the second
|
|---|
| 21 | argument of the build_and_test.sh command to refer to the new version of
|
|---|
| 22 | the release (e.g., 0.14).
|
|---|
| 23 |
|
|---|
| 24 | 6. The autotest script will create the release at the next CIVL commit
|
|---|
| 25 | (to any part of CIVL). If you don't want to wait, you can trigger it
|
|---|
| 26 | manually by executing from vsl, in ~/scripts/autotest:
|
|---|
| 27 |
|
|---|
| 28 | ./build_and_test.sh CIVL $BRANCH civl $revision_number(optional)
|
|---|
| 29 |
|
|---|
| 30 | where $version is the new version number for release and $rev is
|
|---|
| 31 | whatever the revision number was for the release, e.g.,
|
|---|
| 32 | ./build_and_test.sh CIVL 0.13 civl 1580
|
|---|
| 33 |
|
|---|
| 34 | You can also type “./build_and_test.sh help” for the usage of the script.
|
|---|
| 35 |
|
|---|
| 36 | 7. If there are any problems, you can continue to modify the branch.
|
|---|
| 37 | For example, to incorporate changes from the trunk, update or check
|
|---|
| 38 | out a fresh local copy of the whole project, change into the branch
|
|---|
| 39 | directory, and type svn merge svn://vsl.cis.udel.edu/civl/trunk See
|
|---|
| 40 | the Subversion Book for details on merging changes. Then commit these
|
|---|
| 41 | changes as usual. After each commit, autotest should run automatically
|
|---|
| 42 | and produce the new release. Here is an example:
|
|---|
| 43 |
|
|---|
| 44 | First, check out the tagged branch somewhere:
|
|---|
| 45 | svn co svn://vsl.cis.udel.edu/civl/tags/0.4
|
|---|
| 46 | Second, go to the directory you download:
|
|---|
| 47 | cd 0.4
|
|---|
| 48 | Third, merge changes from the trunk:
|
|---|
| 49 | svn merge svn://vsl.cis.udel.edu/civl/trunk
|
|---|
| 50 | Forth, commit:
|
|---|
| 51 | svn commit -m"Merged updates from trunk."
|
|---|
| 52 |
|
|---|
| 53 | 8. Test the release: download it from the web page, move the
|
|---|
| 54 | executable file "civl" somewhere in your path (e.g., /tools/bin)
|
|---|
| 55 | and execute it on an example, e.g., "civl verify examples/barrier.cvl".
|
|---|
| 56 |
|
|---|
| 57 | 9. Update Trac milestones: go to https://vsl.cis.udel.edu/trac/civl/,
|
|---|
| 58 | log in, click on Roadmap, click on the milestone name (v0.2, for
|
|---|
| 59 | example), and edit it to indicate completed. You can also indicate
|
|---|
| 60 | that open tickets for that milestone be pushed to the next milestone.
|
|---|
| 61 | Update other milestones (for example, pushing the dates forward) as
|
|---|
| 62 | desired.
|
|---|
| 63 |
|
|---|
| 64 | 10. Update default milestone/version: go to https://vsl.cis.udel.edu/trac/civl/,
|
|---|
| 65 | log in, click on Admin, click on Milestones, choose a new milestone as the default,
|
|---|
| 66 | click Apply changes. Ditto for setting the default version.
|
|---|
| 67 |
|
|---|
| 68 | 11. Send an email to civl-dev and civl-users announcing the new release.
|
|---|
| 69 |
|
|---|
| 70 | 12. Update the CIVL web app's virtual machine. Log on
|
|---|
| 71 | civl.cis.udel.edu. Update CIVL component repos under /opt/repos/. Svn update
|
|---|
| 72 | all four components of CIVL and then re-build all of them.
|
|---|
| 73 |
|
|---|
| 74 | 13. Append "+" to the fields named "version" in edu.udel.cis.vsl.civl.config.CIVLConstants.
|
|---|
| 75 | For example, the just released version is 1.2, then it becomes 1.2+, which stands for
|
|---|
| 76 | unstable release between 1.2 and 1.3.
|
|---|
| 77 |
|
|---|
| 78 | 14. Create a new directory for the benchmark running data generated
|
|---|
| 79 | during the release. The name of the directory must be
|
|---|
| 80 | "v[current-version-number]_bench_dat", replace the
|
|---|
| 81 | "[current-version-number]" with the stable version number. For
|
|---|
| 82 | example, if you just did release for version 1.10, the directory
|
|---|
| 83 | name should be "v1.10_bench_dat". Copy benchmark running data
|
|---|
| 84 | from scripts/scale/figs to the new directory. Delete the old data
|
|---|
| 85 | directory and "figs". Continue with the aforementioned example,
|
|---|
| 86 | now you need delete "v1.9_bench_dat" and "figs" under
|
|---|
| 87 | "scripts/scale".
|
|---|
| 88 |
|
|---|
| 89 | TODO: compare with multiple previous results.
|
|---|
| 90 | TODO: let server save the latest benchmark running results somewhere.
|
|---|
| 91 | TODO: nice to let server commit the latest benchmark running (low priority)
|
|---|
| 92 | NOTES: running results pdfs in server are under :
|
|---|
| 93 | /var/www/html/lib/sw/civl/1.12/latest/release/figs
|
|---|
| 94 | NOTES: command fpr generating benchmark results :
|
|---|
| 95 | ./run.pl -d[CIVL-dir] -o[temporary output dir]
|
|---|