rose
“””A version by any other name would be just as sweet.”””
A small library for keeping your version up-to-date easily & everywhere.
The pain of having to update your setup.py, your Sphinx conf.py, your __init__.py & everything else on every release of your Python package sucks. Make your life easier (& very semver!)
By putting your version number in a top-level VERSION file & using this library, you can cut duplication & tedious manual work without having to lean on crazy import hacks.
Inspired by crazy discussion with George Hickman (ghickman) at PyCon 2013.
Requirements
Python 2.5+
Usage
To start, first install rose (see below). Then, push your version number into it’s own file (typically called VERSION):
$ echo '1.0.0-beta' > VERSION
Update your setup.py to look like:
# ...
import rose
setup(
name='your_package_name_here',
# UPDATE THIS LINE!
version=rose.load_version('VERSION'),
# The usual follows...
Then update your __init__.py:
# Whatever is there, then...
import os
import rose
# If you don't care about being cross-platform, you can just pass a simple
# path instead.
VERSION_FILE = os.path.join(os.path.dirname('VERSION'))
__version__ = rose.build_version('your_package_name_here', rose.load_version(VERSION_FILE))
And if you’re documenting with Sphinx, you can update your conf.py with:
# ADD THIS!
import rose
RELEASE_VERSION = rose.load_version('../VERSION')
SHORT_VERSION = RELEASE_VERSION.split('-')[0]
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = SHORT_VERSION
# The full version, including alpha/beta/rc tags.
release = RELEASE_VERSION
Installation
Using pip, simply run:
pip install rose
License
New BSD
Metadata
Release files for rose 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rose-1.0.0.tar.gz | 3.6 kB | Without provenance | Details for rose-1.0.0.tar.gz |
Release files / rose-1.0.0.tar.gz
| Download URL | rose-1.0.0.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52b532a79051c4abeaf8cc8b0248800dbbd7ceeddf91ee00e2a096f6f78a7d6b
|
|
BLAKE2b-256 checksum How to use checksums |
0f6239518437e7ef4e4451f39640ee4f68b57551cd0cb36d3ce3c5d2db6e3282
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for rose 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.