Skip to main content

Reliesl is a tool for automatic release managment using the Gitlab CI.

Project description

Code style: black

reliesl

reliesl helps you automate your releases using poetry and GitLab CI.

Liesl

"You've had a long day at work. Bugs have been squashed, features wered added and breaking changes documented. You've poured your heart and soul into this piece of software and the last thing seperating you from popping a bottle of champagne is having to release the newest version of your project on GitLab. Thank God there's reliesl to release your new software on GitLab (and maybe even open that bottle of champagne)." - reliesl's secret admirer

Use reliesl

reliesl grew up in a small village and thus is pretty opinionated. It assumes you are using poetry and keeping a CHANGELOG.md. reliesl provides two different commands to make your release process as smooth as possible:

reliesl release

Usually added to your existing CI pipeline to manually trigger a new GitLab release based on the releasenotes given in CHANGELOG.md. Also adds the .whl of the package to the Asset section.

If you want to automatically release to PyPi (or TestPyPi if you are feeling less adventurous) you can use the --pypi-release <pypi|testpypi> option like so:

reliesl release --pypi-release <value>

For authentication this requires the environement variables PYPI_USERNAME and PYPI_PASSWORD or TESTPYPI_USERNAME and TESTPYPI_PASSWORD to be set.

reliesl bump

Usually run locally to take care of all cumbersome version edits in various files. It will ask you whether you want to do a pre-release, bug fix, minor or major change, before automatically bumping your poetry version and parsing the CHANGELOG.md to update the UNRELEASED section with the right version number and date.

Use the --dry-run flag to see what would happen without changing any files.

Additional files where version changes are needed can be configured via --additional-file-edits <file> <regex>, like so:

reliesl bump --additional-file-edits "file.txt" '(semver = )(.*)()' "file2.txt" '(version: )(.*)()'

The second capture group must be the semantic version you want to change. For more information on python regular expressions look here.

Install reliesl

Local

Simply run

poetry add --dev reliesl

or

pip install reliesl

GitLab-CI

To your .gitlab-ci.yml you need to add:

  • A new - deploy stage if you do not already have one (The release process should be the last stage)

  • A new job:

release:
  stage: deploy
  when: manual
  script:
    - pip install reliesl
    - reliesl release

Environment Variables

The release script needs access to the GitLab API to create a new release. This requires a new environment variable(Under Settings > CI / CD > Variables):

  • Key: PRIVATE_TOKEN
  • Value: a valid private token that gives access to api calls for your project(Profile > Settings > Access Tokens)

Development

Pre-commit

Please make sure to have the pre-commit hooks installed. Install pre-commit and then run pre-commit install to register the hooks with git.

Makefile

We use make to streamline our development workflow. Run make help to see all available commands.

$ make help 
help                 Show this help message
check                Run all static checks (like pre-commit hooks)
test                 Run all tests
dev-install          Install all the packages in the local python environment for development
bump                 Bump reliesl version 

Acknowledgments

The picture of Liesl was stolen from here: https://ladiesoftheatre.tumblr.com/post/155234955388/you-may-think-this-kind-of-adventure-never-may

Project details


Download files

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

Source Distribution

reliesl-0.1.1.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

reliesl-0.1.1-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file reliesl-0.1.1.tar.gz.

File metadata

  • Download URL: reliesl-0.1.1.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.19.23-coreos-r1

File hashes

Hashes for reliesl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e058fb992d735204a959a08a029cd44a998a448c2df82c3e7a973929fac4b4b5
MD5 95335a8b1d313461a025779904e02bca
BLAKE2b-256 485530431bfbd59ee859bb7ab9b041c22817c067db73623310cc00aecbe9b2c5

See more details on using hashes here.

File details

Details for the file reliesl-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: reliesl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.19.23-coreos-r1

File hashes

Hashes for reliesl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf7f25846559d84b454705513463623174ea4589d6572f2ba40b71389a182584
MD5 d5c9d9d5214c8fcf2ef00f36c466edd9
BLAKE2b-256 39a7e159c51d11157bdfe3b9ba2b7fbc1207a2e10c4d5a9962ba6f96ce1cb722

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page