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:

pipx run reproducibly --help

Command to run from a local file and view help:

pipx 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
- 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:

nox --session=dev

To run unit tests and integration tests:

nox

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.10.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

reproducibly-0.0.10-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reproducibly-0.0.10.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for reproducibly-0.0.10.tar.gz
Algorithm Hash digest
SHA256 a802f7feed0fc5dc4cd18e15c5847539d1ccc4dffb84f112fdfe3f45833ead7e
MD5 9bc1e3ea67bc72f90d0239875c4a38d8
BLAKE2b-256 e6d8427f3e1d4eaf2096306356ba4001c02243fef63bbc4d082c43ce84b42966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reproducibly-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 ff02dcab22d51627372b5388d3b288c41a6b3a7cf9c615861a3f65140fc43644
MD5 b328a68f4ffcf3027a7a7193b5592917
BLAKE2b-256 ea60d33ced37307ea0e1c58d576f11ab6acf5dcd695aa46dee90c79c3765c4ed

See more details on using hashes here.

Supported by

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