Skip to main content

Reproducibly build Python packages.

Project description

reproducibly.py

Introduction / Reproducibly build Python packages.

This project is a convenient wrapper around build and cibuildwheel that sets metadata like file modification times, user and group IDs and names, and file permissions predictably. The code can be used from PyPI or as a single file with inline script metadata.

Usage

Command to run from PyPI and view help:

uv tool run reproducibly --help

Command to run from a local file and view help:

uv run ./reproducibly.py --help

Output:

usage: reproducibly.py [-h] [--version] input [input ...] output

Reproducibly build Python packages.

features:

- Builds a source distribution (sdist) from a git repository
- Builds a wheel from a sdist
- Resets metadata like user and group names and ids to predictable values
- Uses no compression for predictable file hashes across Linux distributions
- By default uses the last commit date and time from git
- Respects SOURCE_DATE_EPOCH when building a sdist
- Single file script with inline script metadata or PyPI package

positional arguments:
  input       Input git repository or source distribution
  output      Output directory

options:
  -h, --help  show this help message and exit
  --version   show program's version number and exit

Development

This project uses Nox.

Builds are run every day to check for reproducibility:
status

To set up a development environment use:

./noxfile.py --session=dev

To run unit tests and integration tests:

./noxfile.py

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

reproducibly-0.0.21.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

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

reproducibly-0.0.21-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file reproducibly-0.0.21.tar.gz.

File metadata

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

File hashes

Hashes for reproducibly-0.0.21.tar.gz
Algorithm Hash digest
SHA256 8e4cad24a45ac2137c9eeba010b465c1eb5710b230aa443e01779dd76c3dee0c
MD5 0b28f1359c43ba372eda8f31360d11b3
BLAKE2b-256 7be43ad32374fdc34ffb33a8388eda2f62c950dbdcac0235e967c577d36f8d37

See more details on using hashes here.

Provenance

The following attestation bundles were made for reproducibly-0.0.21.tar.gz:

Publisher: nox.yaml on maxwell-k/reproducibly

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

File details

Details for the file reproducibly-0.0.21-py3-none-any.whl.

File metadata

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

File hashes

Hashes for reproducibly-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 704acf4e10f379f5b66a4958b46b97deaf61a9a52c006e0cd919f5f1b7beb310
MD5 52f33996ce94914998c37d76b5eefd55
BLAKE2b-256 d504888ae60a11ebe93a75f9ff2824e1edb10ec0728f00960f57e3b0b59d7864

See more details on using hashes here.

Provenance

The following attestation bundles were made for reproducibly-0.0.21-py3-none-any.whl:

Publisher: nox.yaml on maxwell-k/reproducibly

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