-
Notifications
You must be signed in to change notification settings - Fork 0
ReleaseProcedure
Paul H. Hargrove edited this page Nov 1, 2025
·
81 revisions
- 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
- GASNet release used in previous UPC++ release:
--with-gasnet=https://bitbucket.org/berkeleylab/gasnet/downloads/GASNet-YYYY.M.P.tar.gz --disable-ccs-rpc--enable-discontig-ranks
- GASNet release used in previous UPC++ release:
- dev-check all the "exhaustive" compiler groupings, to maximize compiler version coverage
- dev-check all the "std-cxxNN" groups
- 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)
module purgemodule load cuda valgrind gcc/11.4.0configure --enable-valgrind --enable-cudamake -j16 allenv 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:
1.
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.hppand 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
- If needed, update spec links for past release sections. Specifically, if
docs/spec.pdfis being updated for this release, then older "conforms to" sections need to change to point to versioned PDFs in bitbucketdownloads/. - 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
pandocsystem 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-logensures 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
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 src/version.hpp and utils/upcxx-run:load_args() for correct versioning.
- Run
- Advance patch version number on develop branch in src/version.hpp and utils/upcxx-run:load_args()
- Change configure URL back to
https://gasnet-bugs.lbl.gov/nightly/unlisted/GASNet-stable.tar.gzon 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 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
- Update NEWS and Previous Releases sections of wiki/Events.md, with info on the new and previous releases, respectively
- Run the script
wiki/internal/import-release.shto import the documentation from the release, overwriting the corresponding files in the working copy.-
git addany 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: gasnet-staff@lbl.gov
- Ask Dan or Paul to update the SourceForge download mirror
- Bug Paul to install on systems at NERSC, OLCF, ALCF and on local systems
- Bug Dan to update the UPC++ Spack package
- 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: Link"
- Copy to your clipboard (Ctrl-C or command-C, as appropriate)
- Generate a
go.lbl.gov/upcxx-YYYY_M_Pshort URL from this long hairy URL
Archival ECP goop:
- Attach PDF (not .pptx) of Milestone Highlight Slide as an attachment to page in Confluence: confluence.exascaleproject.org/display/STPM17/Milestone+Reports
- 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