Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Creates release commits directly in git, unleashes them on PyPI and pushes tags to github.

Project description

unleash is a medium-sized commandline utility that tries to ease releasing software, specifically Python libraries and programs. It is currently barely documented and tailored to my workflow. Use at your own risk.

Examples

Creating a new release

Simply do:

unleash create-release

This will:

  • Read the version currently in master and calculate the appropriate release version (i.e. 0.3.4.dev1 becomes 0.3.4).
  • Create a new commit, in which setup.py and packagename/__init__.py have had their version strings updated to the new version.
  • Check out the commit in a temporary directory, alongside a clean virtualenv.
  • Generate an sdist package from the checked out commit and see if it cleanly installs inside the virtualenv.
  • Runs unittests inside the virtualenv.
  • If everything goes well, removes the temporary checkouts/virtualenvs and tags the commit with the new version.
  • Creates a new commit on master with a version bump for the next release.

Git operations are not done on the working copy, but directly using dulwich, avoiding snafu’s that plague other forms of scripting releases. The only actual call to the git-executable is when pushing a tag.

Publish a release

Creating a release can be followed up with something like:

unleash publish -s code

This will:

  • Check out the latest version tag into a temporary directory.
  • Build a source package.
  • Upload and sign it (python setup.py sdist -s -i code).
  • Push the associated git tag to origin.
  • Clean up the temporary directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for unleash, version 0.5.5
Filename, size File type Python version Upload date Hashes
Filename, size unleash-0.5.5.tar.gz (8.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page