Test, Build, Deliver!
Build and deployment automation for Python projects.
A typical release workflow may look like this:
- Check preconditions: Is the workspace clean, anything to commit?, Is GitHub reachable?, Are we on the correct branch?, ...
- Make sure static code linters and unit tests pass.
- Bump the project's version number (major, minor, or patch, according to
Semantic Versioning).
Then patch the version string into the respective Python module or text file. - Build sdist, wheel and msi installer assets.
- Tag the version, commit, and push.
- Upload distribution to PyPI.
- Create a new release on GitHub and upload assets.
- Create a new release on the Windows Package Manager Repository.
- Bump, tag, commit, and push for post-release.
Custom tasks may be added using the plugin framework.
Read the documentation for details.
- Use git, PyPI, and GitHub.
- Version numbers follow roughly the Semantic Versioning pattern.
- The project's version number is maintained in one of the supported locations
(See grunt-yabs for a node.js variant if you have a JavaScript based development stack.)