Version update pipeline
Release conventions
See full development roadmap for past and planned features corresponding to each versions. For each version update (a.k.a releases) after reaching Mature status (6), we use the following denomination :
patch : from
*.*.{i}to*.*.{i+1}\(\Rightarrow\) minor modifications, bugfixes, code reformating, additional aliases for generatorsminor : from
*.{i}.*to*.{i+1}.0\(\Rightarrow\) addition of new generators, new utility functions, new scripts, …major : from
{i}.*.*to{i+1}.0.0\(\Rightarrow\) major changes in code structure, design and API
Here are some generic recommendation on release-triggering events :
patch version should be released every three months in case some only patch-type changes have been done
minor version should be released after merging a PR including new features (requires a version dump commit, see below …)
major version are released when important changes have been done on a development branch named
v{i+1}-devhosted on the main repo. Requires a full update of the documentation and code, maybe with some migration guide, etc … Before mergingv{i+1}-devintomain, av{i}-ltsbranch is created from it to keep track of the old version, and eventually updated with some minor or patch releases until a pre-defined deprecation date defined indocs/SECURITY.md.
Pipeline description
To release a new version, one need maintainer access to the qmat Github project, and execute the following steps :
Modify the version number in
pyproject.tomlModify the version number and the release date in
CITATION.cff(Minor & major update) update
roadmap.mdif not done already(Major update) update SECURITY.md if not done already
Commit with message
XX: bump version to x.x.xwhereXXare your initials andx.x.xis the new versionManually run the “Publish to PyPI 📦” workflow
Draft a new release associated to a new tag
v*.*.*(with*.*.*the new version, and the+ Create new tag: ... on publishbutton)Find a cool title for the release, and describe what is new or changed (don’t forget to thanks the non-maintainers authors)
And finally, click on Publish release 🚀