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

Uploaded Source

Built Distribution

reproducibly-0.0.12-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reproducibly-0.0.12.tar.gz
  • Upload date:
  • Size: 5.9 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.12.tar.gz
Algorithm Hash digest
SHA256 f786d2be89fc2f9e99403eb29dc34ba90e02d4af8ad0c1cd1f38580c251c077b
MD5 d74beeae3460a80198c02ef16c3ad92d
BLAKE2b-256 008fd3c6a726d187811d420cf50f9e605a52f390b993c6bfaece355040eb6a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reproducibly-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 9e37bc61cd401b48ae09883864fd8d0efff84277493724207eff9c1b05f686bf
MD5 5b199e9981d72c49b08e74e94b73424a
BLAKE2b-256 1c46eda4c5af9454e83164b422c260b59644c11025fc74606d3c29c078c8573f

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