textX release process
For the background see here.
- We are using semantic versioning and a standard format to keep changelogs (see CHANGELOG.md).
- We develop features on feature branches. Feature branches are named
feature/<feature name>. - We fix bugs on bugfix branches named as
bugfix/<issue no>-<name> - We have a branch for the upcoming major release --
next-release(red in the picture bellow). - If the feature is backward incompatible (BIC) the PR is made against the
next-releasebranch (not against themasterbranch) - If the feature is backward compatible PR is made against the
master. - Thus,
Unreleasedsection in the changelog on themasterbranch will never have any BIC change. All BIC changes should go to the changelog on thenext-releasebranch. - We constantly merge
masterbranch tonext-releasebranch. Thus,next-releasebranch is the latest and greatest version with all finished features applied. - When the time for minor release come we follow textX release checklist defined bellow.
- When the time for major release come we merge
next-releasebranch tomasterand follow textX release checklist defined bellow.

textX release checklist
-
Create a branch for the next release called
release/<version>and switch to that branch. -
Update version in the
pyproject.toml. -
Update CHANGELOG (create new section for the release, update github links, give credits to contributors). Do not forget link to changes at the bottom.
-
Push release branch and create PR. Wait for tests to pass. Wait for the review process to complete.
-
Delete all previous distributions in the
distfolder.rm dist/* -
Create
whl/tar.gzpackages.flit build -
Release to PyPI testing.
flit publish --repository testpypi- Check release at https://test.pypi.org/project/textX/#history
-
Release to PyPI.
flit publish- Check release at https://pypi.org/project/textX/#history
-
In case of errors repeat steps 3-10.
-
Create git tag (e.g.
4.1.0). Push the tag.git tag -s 4.1.0 -m 'Release 4.1.0' git push --tags origin 4.1.0 -
Merge release branch in to
master. -
Change the version in
pyproject.tomlto next minor version with.dev0addition (e.g.4.2.0.dev0). -
Merge
mastertonext-releaseto keep it up-to-date.