Wiki
Clone wikiupcxx / internal / ReleaseProcedure
- Update UPCXX_VERSION and UPCXX_SPEC_VERSION definitions in src/upcxx.hpp
- should be of the form:
YYYYMMPP
- Y and M represent numeric year and month of the release
- PP = patch number, starting at 0 for a "normal" (ie not hotfix) release
- PP should be zero for UPCXX_SPEC_VERSION
- should be of the form:
- Update version info in utils/upcxx-run:load_args()
- Update GASNet-EX spec version floor in
src/backend/gasnet/runtime_internal.hpp
and corresponding error message - Update ChangeLog
- Update nobs default URL to point at EX release tarball. This should look like:
https://gasnet.lbl.gov/EX/GASNet-YYYY.MM.PP.tar.gz
Note the https and host - Commit final guide PDF to docs/guide.pdf
- validate tech report number and version number on the cover and PDF metadata are correct
- upload to berkeleylab/upcxx downloads area with name like
upcxx-guide-2017.9.0.pdf
- TAG the guide repo
- Commit final spec PDF to docs/spec.pdf
- validate tech report version number on the cover is correct
- validate UPCXX_SPEC_VERSION and the matching version on the cover and PDF metadata
- upload to berkeleylab/upcxx downloads area with name like
upcxx-spec-2017.9.0.pdf
- TAG the spec repo
- Generate source release-candidate tarball (from git working dir)
- Run the follow command in the git working directory:
env REPO=origin BRANCH=develop utils/release.sh
- Confirm the final output matches the expected version numbers.
- Upload this release candidate to a private download area (e.g. private fork with group access)
- Run the follow command in the git working directory:
- Email local group to review the release-candidate
- Ask an ADMIN to grant you WRITE access to the 'master' branch
- Merge to master (updating version below)
git remote update
git checkout master
git pull --ff-only
git merge --no-ff -m 'Merge develop for 2017.9.0 release' origin/develop
(push to a private fork on BitBucket or inspect locally with git log)
git push origin master
- Ask an ADMIN to revoke WRITE access to the 'master' branch
- TAG master (updating version below)
git tag -a -m 'UPC++ 2017.9.0 release' upcxx-2017.9.0 master
git push origin upcxx-2017.9.0
- Generate final tarball - must come AFTER the previous step has pushed to remote
- Run the follow command in the git working directory
env REPO=origin BRANCH=master utils/release.sh
Confirm the final output matches the expected version numbers. - Validate the git hash matches the tip of master holding the release tag.
- Collect the md5sum for the generated tarball (at end of the output).
- Upload the final tarball to (public) berkeleylab/upcxx downloads area.
- Run the follow command in the git working directory
- Download the tarball just uploaded into a different directory.
- Run
md5sum
on the download and verify it matches the checksum from the previous step. - Extract the packaged git hash:
gzip -cd upcxx-2017.9.0.tar.gz | git get-tar-commit-id
- Validate the git hash matches the tip of master holding the release tag.
- Unpack the tarball and inspect the contents of README.md and src/upcxx.hpp for correct versioning.
- Run
- Advance draft number and append ".dev" suffix on spec master branch in upcxx-spec.tex
- Advance patch number in upcxx-prog-guide/Makefile
- Advance patch version number on develop branch in src/upcxx.hpp
- Change nobs URL back to
https://gasnet-bugs.lbl.gov/nightly/unlisted/GASNet-stable.tar.gz
on develop - Tag the develop branch to match the new content of src/upcxx.hpp
git tag -a -m 'tagging YYYY.M.P for development' upcxx-YYYY.M.P develop
- Push the previous several steps (substituting the correct version).
git push origin develop upcxx-YYYY.M.P
- Tag the upcxx-extras repo to record the release point:
git tag -a -m 'tagging YYYY.M.P for development' upcxx-YYYY.M.P develop
git push origin upcxx-YYYY.M.P
- Consider also merging upcxx-extras develop branch to master, and tagging as
upcxx-extras-YYYY.MM.DD
- Consider also merging upcxx-extras develop branch to master, and tagging as
- Review and revise the release announcement
- Navigate to the wiki and git clone it to your local system
- Add any new publications (eg updated spec or guide) to
wiki/Publications.md
wiki/pagoda.bib
wiki/pubs/*.pdf - Update the GASNet-EX version table in the wiki
- Update all 3 issue trackers: add this release to Versions, next one to Milestones and as default Milestone
- Update NEWS and Download sections of wiki/Home.md with info on the new release download including links, moving old links to a new line in the Previous Releases section
- Run the script
wiki/internal/import-release.sh
to import the documentation from the release, overwriting the corresponding files in the working copy. Be sure to audit the changes before committing to look for information loss. - Push your wiki changes and audit everything on the live page, especially checking for broken links.
- Add md5sum of each download (code, guide, spec) to announcement
- Send the announcement to upcxx@googlegroups.com, upcxx-announce@lbl.gov
- Ask Dan or Paul to update the SourceForge download mirror
- Bug Paul to install on NERSC, Dirac, Kotten, etc. ...
- Update this list
Post-release management goop
- Add URL of Google Groups announcement to the Milestone Memo
- Visit the upcxx-announce googlegroup page
- Click on the announcement to view it
- Click the
to the right of the message date (says "More message actions" when you roll over)
- Select "
Link"
- Copy to your clipboard (Ctrl-C or command-C, as appropriate)
- Paste into the .docx for the memo
- Upload PDF (not .docx) of Milestone Memo as an attachment to Milestone Reports page in Confluence
- Add URL for the new Confluence Memo attachment to the footer of Milestone Highlight Slide
- Attach PDF (not .pptx) of Milestone Highlight Slide as an attachment to Milestone Reports page in Confluence
- Update/add section to Milestone Reports page with links to
- JIRA entry in the heading
- Memo attachment (uploaded a few steps earlier)
- Slide attachment (uploaded a few steps earlier)
- Code tarball
- Spec PDF
- Guide PDF
- Google Groups announcement
- Perform a second upload of the following two to JIRA Epic as attachments
- Milestone Completion Memo PDF
- Milestone Highlight Slide PDF
- Finish the JIRA Epic by hitting
Workflow > Done
- Add links to the Confluence-attached Memo to Confluence Quarterly Report page below "Accomplishments / Milestones Delivered During This Period". Past quarters show example.
Updated