Typical steps required to finalize a release of OpenSim Creator
Required Credentials
These are required for some parts of the release procedure:
Zenodo is currently linked (via OAuth) to @adamkewley's GitHub account
Uploading the documentation to docs.opensimcreator.com requires a suitable
SSH key for that server
Adding an announcement to the website requires commit access to
opensim-creator-site
Uploading the announcement to www.opensimcreator.com requires a suitable
SSH key for that server
Uploading archived releases to files.opensimcreator.com requires a suitable
SSH key for that server
Release Steps
[x] Create an issue called something like Release XX.xx.pp
[x] Copy this checklist into it
[x] Bump OSC's version number in CMakeLists.txt (project)
[x] Clean-build a debug (+ libASAN) version of OSC on Ubuntu:
git clone --recurse-submodules https://github.com/ComputationalBiomechanicsLab/opensim-creator
cd opensim-creator
./scripts/build_linux_debugging.sh
[x] Ensure the test suite passes with the debug build
[ ] Optionally, also ensure the test suite passes under valgrind (see: scripts/build_linux_valgrind-compat.sh)
[x] Manually spot-check new changes with the debug+ASAN build
[x] Fix all bugs/problems found during the above steps
[x] Update CHANGELOG.md sections such that the current Unreleased
section becomes XX.xx.pp and add a new Unreleased section
above that
[x] Commit any fixes to CI and ensure CI passes
[x] Tag+push the commit as a release
[x] Download artifacts from the tagged commit CI build
[x] Unzip/rename any artifacts (see prev. releases)
[x] Create new release on github from the tagged commit
Upload all artifacts against it
Write a user-friendly version of CHANGELOG that explains the release's
changes
[x] Update Zenodo with the release
[x] This usually happens automatically, via a webhook in Zenodo
[ ] Otherwise, it requires @adamkewley's GitHub login to publish
the generated draft from Zenodo
[x] Update + commit the repository with the Zenodo release details:
[x] Use bump_zenodo_details.py to automatically do this
[x] Ensure codemeta.json is up-to-date
[x] Ensure CITATION.cff is up-to-date
[x] Ensure README.md is up-to-date
[x] Update docs.opensimcreator.com to host the documentation
[x] Note: this requires appropriate credentials for docs.opensimcreator.com
[x] Build the docs yourself, or get the CI build of them
[x] Upload with (e.g.) rsync -avz build/html/ docs.opensimcreator.com:/var/www/docs.opensimcreator.com/manual/en/VERSION
[x] Make them the "latest" with a softlink, e.g.: ssh docs.opensimcreator.com ln -sfn /var/www/docs.opensimcreator.com/manual/en/VERSION /var/www/docs.opensimcreator.com/manual/en/latest
[x] (optional) Update www.opensimcreator.com with a basic announcement news post
[x] Note: this requires appropriate SSH credentials for www.opensimcreator.com
Release Checklist
Required Credentials
These are required for some parts of the release procedure:
docs.opensimcreator.com
requires a suitable SSH key for that serverwww.opensimcreator.com
requires a suitable SSH key for that serverfiles.opensimcreator.com
requires a suitable SSH key for that serverRelease Steps
Release XX.xx.pp
CMakeLists.txt
(project
)CHANGELOG.md
sections such that the currentUnreleased
section becomesXX.xx.pp
and add a newUnreleased
section above thatbump_zenodo_details.py
to automatically do thiscodemeta.json
is up-to-dateCITATION.cff
is up-to-dateREADME.md
is up-to-datedocs.opensimcreator.com
to host the documentationdocs.opensimcreator.com
rsync -avz build/html/ docs.opensimcreator.com:/var/www/docs.opensimcreator.com/manual/en/VERSION
ssh docs.opensimcreator.com ln -sfn /var/www/docs.opensimcreator.com/manual/en/VERSION /var/www/docs.opensimcreator.com/manual/en/latest
www.opensimcreator.com
with a basic announcement news postwww.opensimcreator.com
rsync -avz public/* www.opensimcreator.com:/var/www/opensimcreator.com/
files.creator.com/releases
with appropriate release artifacts