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
- 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:
To set up a development environment use:
nox --session=dev
To run unit tests and integration tests:
nox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reproducibly-0.0.18.tar.gz.
File metadata
- Download URL: reproducibly-0.0.18.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b762d736c51f536d34d6b9d630b8a14e1814bb6d17a965a76553f22e6c48ff43
|
|
| MD5 |
5d981f517ce76ee81b34fcb7b6872ee5
|
|
| BLAKE2b-256 |
c540355a39dfe24bb734b640dc9bf3c26eb8190260992500fe3ffa42b753076c
|
Provenance
The following attestation bundles were made for reproducibly-0.0.18.tar.gz:
Publisher:
nox.yaml on maxwell-k/reproducibly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reproducibly-0.0.18.tar.gz -
Subject digest:
b762d736c51f536d34d6b9d630b8a14e1814bb6d17a965a76553f22e6c48ff43 - Sigstore transparency entry: 798925585
- Sigstore integration time:
-
Permalink:
maxwell-k/reproducibly@983afe93b86bf2090dc2622ea0d7009b7b48d278 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/maxwell-k
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
nox.yaml@983afe93b86bf2090dc2622ea0d7009b7b48d278 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file reproducibly-0.0.18-py3-none-any.whl.
File metadata
- Download URL: reproducibly-0.0.18-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5237ab517e4923f01a8c548692b90db66b2ea5dbd93b92e0a3d84419c9d08e7a
|
|
| MD5 |
ea560645f4b8ade27353691dfa69498d
|
|
| BLAKE2b-256 |
7fed9ada3821ac79739c73fb6164c1e85e2835c2aba7a03fa87d813039ed037b
|
Provenance
The following attestation bundles were made for reproducibly-0.0.18-py3-none-any.whl:
Publisher:
nox.yaml on maxwell-k/reproducibly
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reproducibly-0.0.18-py3-none-any.whl -
Subject digest:
5237ab517e4923f01a8c548692b90db66b2ea5dbd93b92e0a3d84419c9d08e7a - Sigstore transparency entry: 798925587
- Sigstore integration time:
-
Permalink:
maxwell-k/reproducibly@983afe93b86bf2090dc2622ea0d7009b7b48d278 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/maxwell-k
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
nox.yaml@983afe93b86bf2090dc2622ea0d7009b7b48d278 -
Trigger Event:
workflow_dispatch
-
Statement type: