Version update pipeline
Release conventions
For each version update (a.k.a releases), 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 features, utility functions, 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 can be created from it to keep track of the old version.
Pipeline description
To release a new version, one need maintainer access to the marge3d Github project, and execute the following steps :
Modify the version number in
pyproject.tomlModify the version number and release date in
CITATION.cffCommit 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 🚀