Skip to main content

Setuptools extension for CalVer package versions

Project description

CalVer

The calver package is a setuptools extension for automatically defining your Python package version as a calendar version.

Usage

First, ensure calver is present during the project's build step by specifying it as one of the build requirements:

pyproject.toml:

[build-system]
requires = ["setuptools>=42", "calver"]

To enable generating the version automatically based on the date, add the following to setup.py:

setup.py:

from setuptools import setup

setup(
    ...
    use_calver=True,
    setup_requires=['calver'],
    ...
)

You can test that it is working with:

$ python setup.py --version
2020.6.16

Configuration

By default, when setting use_calver=True, it uses the following to generate the version string:

>>> import datetime
>>> datetime.datetime.now(tz=datetime.timezone.utc).strftime("%Y.%m.%d")
2020.6.16

You can override the format string by passing it instead of True:

setup.py:

from setuptools import setup

setup(
    ...
    use_calver="%Y.%m.%d.%H.%M",
    setup_requires=['calver'],
    ...
)

You can override the current date/time by passing the environment variable SOURCE_DATE_EPOCH, which should be a Unix timestamp in seconds. This is useful for reproducible builds (see https://reproducible-builds.org/docs/source-date-epoch/):

env SOURCE_DATE_EPOCH=1743428011000 python setup.py --version

You can override this entirely by passing a callable instead, which will be called with no arguments at build time:

setup.py:

import datetime
from setuptools import setup

def long_now_version():
    now = datetime.datetime.now(tz=datetime.timezone.utc)
    return now.strftime("%Y").zfill(5) + "." + now.strftime("%m.%d")

setup(
    ...
    use_calver=long_now_version,
    setup_requires=['calver'],
    ...
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calver-2025.10.20.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

calver-2025.10.20-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file calver-2025.10.20.tar.gz.

File metadata

  • Download URL: calver-2025.10.20.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for calver-2025.10.20.tar.gz
Algorithm Hash digest
SHA256 c98b376c2424642224d456b2f70c51402343e008c63d204634665e1a2a2835f5
MD5 35c480c59ceca9dc0d51f214df5523a5
BLAKE2b-256 4a960c57e3e228ffc54074867406b659b197678674f1f0bf600d114965289834

See more details on using hashes here.

Provenance

The following attestation bundles were made for calver-2025.10.20.tar.gz:

Publisher: release.yml on di/calver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calver-2025.10.20-py3-none-any.whl.

File metadata

  • Download URL: calver-2025.10.20-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for calver-2025.10.20-py3-none-any.whl
Algorithm Hash digest
SHA256 d7d75224eed9d9263f4fb30008487615196d208d14752bfd93fea7af2c84f508
MD5 8d30f81f9fe8bd9cae56846c3333dac1
BLAKE2b-256 08cc31996b2bd918698888b443da1dea201c338643224539c1be4b2d76c9353c

See more details on using hashes here.

Provenance

The following attestation bundles were made for calver-2025.10.20-py3-none-any.whl:

Publisher: release.yml on di/calver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page