Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tfiers/puprelease
A command-line script to guide you through the process of releasing a new version of your Python package on PyPI.
https://github.com/tfiers/puprelease
command-line-tool pip pypi python release-automation semver setuptools setuptools-scm twine wheel
Last synced: about 1 month ago
JSON representation
A command-line script to guide you through the process of releasing a new version of your Python package on PyPI.
- Host: GitHub
- URL: https://github.com/tfiers/puprelease
- Owner: tfiers
- License: mit
- Created: 2019-07-04T00:04:24.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-04T12:46:14.000Z (almost 3 years ago)
- Last Synced: 2024-11-08T09:14:09.033Z (about 1 month ago)
- Topics: command-line-tool, pip, pypi, python, release-automation, semver, setuptools, setuptools-scm, twine, wheel
- Language: Python
- Homepage:
- Size: 2.35 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
- License: LICENSE
Awesome Lists containing this project
README
# Puprelease
A command-line script to guide you through the process of releasing a new version of your Python package on PyPI.
The goal is not having to remember and manually type the different release steps and checks.
## Example
Screencast of making a new release with `pup`:## Installation
```
$ pip install puprelease
```
This will get you the[![latest version on PyPI](https://img.shields.io/pypi/v/puprelease.svg?label=latest%20version%20on%20PyPI:)](https://pypi.python.org/pypi/puprelease/)
To update an existing installation to this version, use `pip install -U puprelease`.
## Usage
In the root directory of the package you want to release a new version of
(i.e. where your `setup.py` file is located), run:
```
$ pup
```
Then follow along with the program.
### Git tags for versioning
I recommend using git tags as the single-source-of-truth for package
versions.To do this, add the following lines to your `setup.py`, replacing the
`version=...` argument of the `setup()` call:
```py
setup(
...
setup_requires=["setuptools_scm"],
use_scm_version={
"version_scheme": "post-release",
"local_scheme": "dirty-tag",
}, # Example configuration.
# See the docs [*] for other options.
)
```
`[*]` [*setuptools_scm* documentation](https://github.com/pypa/setuptools_scm/).Then call `pup`, which will take care of the rest, for each new release.
Also, check-out [semantic versioning](https://semver.org).