-
Notifications
You must be signed in to change notification settings - Fork 37
New release (How to)
Matthew Evans edited this page Apr 4, 2024
·
12 revisions
- Check AUTHORS is up to date
- Update the CHANGELOG
- Spellcheck the new specification text with
make spell
and interactively add any new words to the wordlist withmake fix_spelling
- Review changes since the last versions and decide whether the new version number is appropriate
- Ideally release 1 or 2 release candidates in the weeks/months before the main release
- Check the HTML build of the specification and update the
gh-pages
branch to point to the latest release
-
develop
: Merge PRs that should go into the release.- Check that the specification is internally consistent and "ready for release".
- Ensure that the
./schemas
,CHANGELOG
andAUTHORS
have been updated for the new release.
-
develop
: Create PR that updates the version at the top ofoptimade.rst
. Merge this PR againstdevelop
as the last thing before releasing. -
master
: Merge thedevelop
branch into themaster
branch:- Create PR on GitHub (Link).
- Use
git
on your local machine to mergedevelop
intomaster
once all CI checks have passed.- Fetch all (
git fetch --all -p
). - Checkout
master
(git checkout master
, if you have never checked outmaster
, first dogit branch master origin/develop
, iforigin
is the remote forMaterials-Consortia/OPTiMaDe
). - Run
git merge --ff-only origin/develop
. - If this was successful, push to
origin
, i.e.,git push
(this may require temporarily disabling branch protections onmaster
). Note: If this was not successful, you should merge a "fixing" PR intodevelop
that makes it possible to merge using fast-forwarding (ff
).
- Fetch all (
-
master
: Use the GitHub interface to create a release on the latest commit inmaster
with the new version number, e.g.v1.0.0
. (Make sure to select to tagmaster
as the UI will default todevelop
.) This will create a tag in the git repository. -
develop
: Create a PR that updates the version string at the top ofoptimade.rst
in thedevelop
branch to add the suffix~develop
to the version number. (Note: this intentionally breaks semantic versioning for non-released develop versions.) - Archive the released specification text on Zenodo as a new version of https://doi.org/10.5281/zenodo.4195050 (currently only @ml-evs can do this -- if you are reading this in 100 years then i) I am dead, ii) hopefully Zenodo would have added support for organizational control of records)
Note: For historical reasons, versions v0.9.6
and v0.9.7
were never released/tagged.
By default, however, it is understood that the version number should only be increased after a new release has been made.
Ideally, release candidates suffixed with -rc.<n>
should be made available for provider implementation before the official release.
These should be considered as a feature freeze, but implementation details may change slightly in the final release.