Skip to main content

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)

Source distribution for rose 1.0.0
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page