Home

Awesome

logo yabs

Test, Build, Deliver!

Build Status Latest Version License Documentation Status Coverage Status Code style: black Released with: Yabs StackOverflow: yabs

Overview

Build and deployment automation for Python projects.

A typical release workflow may look like this:

  1. Check preconditions: Is the workspace clean, anything to commit?, Is GitHub reachable?, Are we on the correct branch?, ...
  2. Make sure static code linters and unit tests pass.
  3. Bump the project's version number (major, minor, or patch, according to Semantic Versioning). <br> Then patch the version string into the respective Python module or text file.
  4. Build sdist, wheel and msi installer assets.
  5. Tag the version, commit, and push.
  6. Upload distribution to PyPI.
  7. Create a new release on GitHub and upload assets.
  8. Create a new release on the Windows Package Manager Repository.
  9. Bump, tag, commit, and push for post-release.

Custom tasks may be added using the plugin framework.

Read the documentation for details.

Preconditions

(See grunt-yabs for a node.js variant if you have a JavaScript based development stack.)

<!-- [![asciicast](https://asciinema.org/a/6jPN5JTNBt2LT52C6R8HZEK1g.svg)](https://asciinema.org/a/6jPN5JTNBt2LT52C6R8HZEK1g) --> <!-- ![logo](https://raw.githubusercontent.com/mar10/yabs/master/docs/screenshot_ps_dryrun.png) -->

logo

logo