-
Notifications
You must be signed in to change notification settings - Fork 1
ReleaseProcedure
PHHargrove edited this page Mar 15, 2019
·
83 revisions
- Update UPCXX_VERSION version number 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
- 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.hppand corresponding error message - Update ChangeLog + version info in README
- Update nobs default URL to point at EX release tarball
- Commit final guide PDF to docs/guide.pdf
- upload to berkeleylab/upcxx downloads area with name like
upcxx-guide-2017.9.0.pdf - TAG the guide repo
- upload to berkeleylab/upcxx downloads area with name like
- Commit final spec PDF to docs/spec.pdf
- upload to berkeleylab/upcxx downloads area with name like
upcxx-spec-V1.0-Draft4.pdf - TAG the spec repo
- upload to berkeleylab/upcxx downloads area with name like
- Generate source release-candidate tarball (from git working dir)
Be sure to change version in the following:
git archive --remote=origin develop --prefix=upcxx-2017.9.0/ --format=tar.gz --output=upcxx-2017.9.0.tar.gz
Upload this release candidate to (private) berkeleylab/upcxx downloads area - 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
- Same command as release candidate except "master" replaces "develop"
Be sure to change version in the following:
git archive --remote=origin master --prefix=upcxx-2017.9.0/ --format=tar.gz --output=upcxx-2017.9.0.tar.gz - Collect the md5sum for the generated tarball:
md5sum upcxx-2017.9.0.tar.gz - Upload this final release to (public) berkeleylab/upcxx downloads area
- Same command as release candidate except "master" replaces "develop"
- Generate an offline installer to match (again taking care to change the version):
- An archive command with a different prefix:
git archive --remote=origin master --prefix=upcxx-2019.3.0-offline/ --format=tar --output=upcxx-2019.3.0-offline.tar - Create the directory to contain the GASNet-EX tarball (MUST match the above
--prefixexactly):
mkdir -p upcxx-2019.3.0-offline/src/ - Copy GASNet-EX tarball into directory you just created:
cp GASNet-2019.3.0.tar.gz upcxx-2019.3.0-offline/src/ - Add that to the offline installer tarball:
tar -r -f upcxx-2019.3.0-offline.tar --owner=root --group=root upcxx-2019.3.0-offline/src/GASNet-2019.3.0.tar.gz - Compress:
gzip -9 upcxx-2019.3.0-offline.tar - Upload this final release to (public) berkeleylab/upcxx downloads area
- An archive command with a different prefix:
- Download the tarball just uploaded into a different directory.
- Run
md5sumon 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 collaborator-snapshot 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 - 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 and wiki/pubs/*.pdf
- 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
- Update wiki/{README.md,INSTALL.md,LICENSE.txt,docs/*} with files from the release, overwriting the version there. Be sure to audit these changes before committing to look for information loss.
- Audit {README,INSTALL}.md for links within the source tree (which will be broken on wiki) and de-link them
- Currently known:
- INSTALL.md: example/prog-guide/Makefile
- Update this list after each audit
- 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
- Add link to the archived announcement (see 1st step in mgmt goop below for how to get it) to the NEWS entry in the wiki and push it again
- Ask Dan or Paul to update the SourceForge download mirror
- Bug Paul to install on NERSC, Dirac, Kotten, etc. ...
Post-release management goop
- Add URL of Google Groups announcement to the Milestone Memo
- Visit the upcxx 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: 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.