Wiki
Clone wikiupcxx / internal / ReleaseProcedure
- Verify that GitLab/pushbuild CI is passing on all supported platforms
- Manually run the following non-standard GitLab experiments:
- Single-rank
CI_RANKS=1
- Any high-risk non-default configure options not covered in GitLab, eg
- Previous GASNet release:
--with-gasnet=https://bitbucket.org/berkeleylab/gasnet/get/master.tar.gz
--disable-ccs-rpc
--enable-discontig-ranks
- Previous GASNet release:
- dev-check all the "exhaustive" compiler groupings, to maximize compiler version coverage
- dev-check all the c++ standard groups for 14, 17, 20, 23
- Single-rank
- Any test failures should have corresponding triaged issues, with workarounds whenever possible
- Manually run the following non-standard GitLab experiments:
- Valgrind check for memory leaks in GPU tests on dirac CX5: (not covered by GitLab)
configure --enable-valgrind --enable-cuda --enable-hip --with-hip-home=/opt/rocm --with-hip-platform=nvidia
env UPCXX_VERBOSE=1 UPCXX_OVERSUBSCRIBED=1 OMP_NUM_THREADS=1 TEST_ARGS_PERSONA_EXAMPLE=100 make -j16 dev-check-debug NETWORKS=smp RUN_WRAPPER='timeout -k 15m 10m $(VALGRIND_WRAPPER)' NO_TESTS=neg-
- Any leaks should be triaged and fixed or annotated as known issues. Currently includes:
test-issue478-*
: Issue #536
- Update UPCXX_VERSION and UPCXX_SPEC_VERSION definitions in src/version.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 feature macros to match specified value in spec AND impl:
- UPCXX_KIND_CUDA
- UPCXX_KIND_HIP
- UPCXX_KIND_ZE
- Update GASNet-EX spec version floor in
src/backend/gasnet/runtime_internal.hpp
and corresponding error message - Update ChangeLog
- Review list of commits looking for any user-facing bug-fixes, improvements or breaking changes not represented
- Sort issue list by issue number
- Ensure that document links for older release sections are updated
- Insert excerpt of recent GASNet-EX improvements impacting UPC++
- Update configure default URL to point at EX release tarball. This should look like:
https://gasnet.lbl.gov/EX/GASNet-YYYY.M.P.tar.gz
Note the https and host - Commit final guide PDF to docs/guide.pdf:
- iworld is our canonical
pandoc
system for guide publication - validate tech report number and version number on the cover and PDF metadata are correct
- guide and spec publication date should NOT be identical, to avoid nondeterministic rendering in publication lists with unstable date sorts, report guide publication date one day earlier if needed.
- Post HTML version to a private location and run a W3C link check to validate internal linkage (ignore warnings about "data URIs")
- upload to berkeleylab/upcxx downloads area with name like
upcxx-guide-2017.9.0.pdf
- TAG the guide repo
- Advance patch number in upcxx-prog-guide/Makefile
- iworld is our canonical
- 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
- Advance draft number and append ".dev" suffix on spec master branch in upcxx-spec.tex
- 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 --no-log -m 'Merge develop for 2017.9.0 release' origin/develop
(push to a private fork on BitBucket or inspect locally with git log)
--no-log
ensures we don't get spurious issue tracker updates from issues mentioned in the auto-generated 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/version.hpp for correct versioning.
- Run
- Advance patch version number on develop branch in src/version.hpp
- Change configure 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/version.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.git add
any new documents and remove any obsolete ones- 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.
- Upload new guide HTML to upcxx.lbl.gov:docs/html
- update the guide.html symlink
- add new file to CVS
- cvs up this directory and upcxx directory on the backup webservers
- Ask Dan to run deadlinkchecker scan on the updated site
- Run an W3C link check on the guide to validate internal linkage (ignore warnings about "data URIs")
- Run an W3C link check on the FAQ to validate anchor linkage to the guide
- Run an W3C link check on INSTALL to validate anchor linkage
- Upload new guide HTML to upcxx.lbl.gov:docs/html
- Add md5sum of each download (code, guide, spec) to announcement
- Send the announcement To: upcxx@googlegroups.com, upcxx-announce@lbl.gov Bcc: pagoda@lbl.gov Reply-to: pagoda@lbl.gov
- Ask Dan or Paul to update the SourceForge download mirror
- Bug Paul to install on NERSC, Summit, Dirac, Kotten, etc. ...
- Email Todd Gamblin and Sameer Shende to request the release cutoff dates for the next Spack + E4S releases
- Update this list
Post-release management goop
- Generate short URL for the Google Groups announcement
- 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)
- Generate a
go.lbl.gov/upcxx-YYYY_M_P
short URL from this long hairy URL
- 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
- Slide attachment (uploaded a few steps earlier)
- Google Groups announcement go.lbl.gov link
- Perform a second upload of the following to JIRA Epic as attachment(s):
- Milestone Highlight Slide PDF
- Any supporting evidence described in the Execution Plan that is not included inline in the drafted closure text
- Finish the JIRA Epic by hitting
Workflow > Done
- Paste in the drafted Milestone closure text, which should include the Google Groups announcement bit.ly link
- Add links to the Confluence Quarterly Report page below "Accomplishments / Milestones Delivered During This Period". Past quarters show examples.
- Using Create Link and Search will let you find the slide PDF uploaded earlier
- Update NEWS on top-level Pagoda Confluence page
Updated