Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dobraczka/recite

📖 Publish your poetry-based projects, without missing important steps
https://github.com/dobraczka/recite

packaging poetry publishing release-automation

Last synced: about 1 month ago
JSON representation

📖 Publish your poetry-based projects, without missing important steps

Awesome Lists containing this project

README

        


recite logo


recite


Actions Status
Documentation Status

Stable python versions
Code style: black

`recite` intends to make releasing [poetry](https://python-poetry.org/)-based libraries easier and avoid missing important steps (e.g. adapting the changelog (because [you should keep one](https://keepachangelog.com/))).

```console
$ recite release patch

recite > 👀 Checking everything to make sure you are ready to release 👀
recite > 1: ✓ Make sure you have a (non-empty) pyproject.toml
recite > 2: ✓ Make sure you're on main/master branch
recite > 3: ✓ Make sure git is clean
recite > 4: ✓ Run test-suite
recite > 5: ✓ Make sure changelog was updated
recite > 🤓 Everything looks perfect! 🤓
recite > I will perform the following steps:
recite > * Would bump version from 0.1.0 to 0.1.1
recite > * Commit version bump
recite > * Create git tag 0.1.1
recite > * Push git tag 0.1.1
recite > * Remind you to upload build as github release
Do you want to proceed? [y/N]: y
recite > ✨ Performing release ✨
recite > 1: ✓ Bump version
recite > * Bumped version from 0.1.0 to 0.1.1
recite > 2: ✓ Commit version bump
recite > 3: ✓ Create git tag 0.1.1
recite > 4: ✓ Push git tag 0.1.1
recite > 5: ✓ Build and publish with poetry
Please create a github release now! Did you do it? [y/N]: y
recite > 6: ✓ Remind you to upload build as github release
recite > 🚀 Congrats to your release! 🚀
```

# Installation

Since `recite` is a python application it is recommended to install it via [pipx](https://pypa.github.io/pipx/):
```console
$ pipx install recite
```

But you can also install it via pip:

```console
$ pip install recite
```

# Usage

You can perform e.g a patch release with the command:

```console
$ recite release patch
```

The classifiers are the same as poetry's bump rules of the it's [version command](https://python-poetry.org/docs/cli/#version).

To list the available checks use:

```console
$ recite list-checks
```

You can find more info in the [docs](https://recite.readthedocs.io)

# Why?

Previously I used a github action to automatically build and publish a new version of a library if a new tag was pushed. However, sometimes I forgot something crucial (e.g. to adapt the changelog). In this case I had to rush to stop the github action before it would publish the release to pypi (where it would lie forever unable to be rectified).
With `recite` it is ensured all the necessary checks are in place before any tags are created.