Release workflow#
First make sure you described release notes in CHANGELOG.md.
Automatically#
- Create new release on GitHub.
 - 
Choose new tag or take not released yet.
Name it without
vprefix, like:1.0.1,2.0.0a39 - 
Set "release title" to same value as tag name
(in order to fully render at Releases section on main github project page, and be consistent with other common github projects)
 - 
Describe release notes.
Give it a short summary as
# <Heading Summary>Provide details (usually copied from CHANGELOG)
(if they are not the same as summary ;) - 
Select pre-release checkbox if not stable.
(Currently the 2.0.0a* alpha versions can also be marked as stable)
 - 
Publish the release on GitHub.
 
Then GitHub action will automatically build and publish release
to PyPI with selected tag automatically.
Also it will commit the tag semver
into __init__.py and pyproject.toml
before building if it has not been there yet.
Old fashion manually#
(only if GitHub Actions CI is not available)
- bump version via 
bash .run/bump_version.sh x.x.x - build via 
bash .run/build.sh - publish via 
bash .run/publish.sh 
or
bash .run/bump_build_publish.sh x.x.x
or if you want to control all by yourself
- manually bump version in 
pyproject.tomlandselene/__init.py:__version__ poetry publish --build
Also don't forget to push a tag and describe release notes on GitHub! (If GitHub Actions works then publish job will fail because same version had already been published on pypi.org)