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: 2 months 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 (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-03-04T12:46:14.000Z (about 3 years ago)
- Last Synced: 2025-02-13T06:40:26.286Z (3 months 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[](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).