A utility for installing extremal versions of dependencies for more robust testing
Project description
extremal-python-dependencies
A utility for installing extremal versions of dependencies for more robust testing.
Install extremal versions of package dependencies for more robust continuous integration testing, given a package that specifies its dependencies in a pyproject.toml file.
For instance, one might use this utility to install the minimum supported version of each dependency before a CI run. Ensuring all tests then pass adds confidence that the code is indeed compatible with the full range of package versions it claims to be compatible with, helping to prevent users from encountering broken installs.
Another way to use this tool is to install development versions of certain packages.
This utility works with dependencies specified in a pyproject.toml file. It modifies pyproject.toml, either by sending the transformed version to stdout (the default) or by modifying in place (which may be useful in CI scripts).
How to use
The following snippet modifies pyproject.toml in place to test with the minimum supported version of each direct dependency, under the minimum supported tox version (as specified by minversion in tox.ini).
pip install "tox==$(extremal-python-dependencies get-tox-minversion)"
extremal-python-dependencies pin-dependencies-to-minimum --inplace
tox -epy
The following snippet modifies pyproject.toml in place to test with the development version of one or more dependencies:
extremal-python-dependencies pin-dependencies \
"qiskit @ git+https://github.com/Qiskit/qiskit.git" \
"qiskit-ibm-runtime @ git+https://github.com/Qiskit/qiskit-ibm-runtime.git" \
--inplace
tox -epy
Each of the above patterns can be used in a CI script.
Caveats
- The minimum versions of all optional dependencies installed simultaneously must be compatible with each other.
- This tool does not set the minimum supported version of transitive dependencies.
Similar tools
- requirements-builder (builds requirements from a
setup.pyfile instead of apyproject.tomlfile)
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
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 extremal_python_dependencies-0.1.0.tar.gz.
File metadata
- Download URL: extremal_python_dependencies-0.1.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
906f6406b8ae026690109db1a406a546188e41baaea79c3091f618476cc2aa72
|
|
| MD5 |
39ea8874db3450aff5da0de994df4337
|
|
| BLAKE2b-256 |
f36d1ce3062ea53bd704fb32d3838c535a4aba002d1190f187805559d162cb19
|
Provenance
The following attestation bundles were made for extremal_python_dependencies-0.1.0.tar.gz:
Publisher:
release.yml on IBM/extremal-python-dependencies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
extremal_python_dependencies-0.1.0.tar.gz -
Subject digest:
906f6406b8ae026690109db1a406a546188e41baaea79c3091f618476cc2aa72 - Sigstore transparency entry: 546828202
- Sigstore integration time:
-
Permalink:
IBM/extremal-python-dependencies@0420e1031876edb9ea1c432e45f0cb1327845e0a -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/IBM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0420e1031876edb9ea1c432e45f0cb1327845e0a -
Trigger Event:
push
-
Statement type:
File details
Details for the file extremal_python_dependencies-0.1.0-py3-none-any.whl.
File metadata
- Download URL: extremal_python_dependencies-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.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 |
a0ef5df16a3e1db898fbdbe5e17fe56adc9f91c019fb7734aa0cd5511812f33f
|
|
| MD5 |
a89aac0b01e245cd060a5be2867cc484
|
|
| BLAKE2b-256 |
f8358a200a98159ef1c25b1d5ec728bcb0d3ed70c42f293cf95198221393919f
|
Provenance
The following attestation bundles were made for extremal_python_dependencies-0.1.0-py3-none-any.whl:
Publisher:
release.yml on IBM/extremal-python-dependencies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
extremal_python_dependencies-0.1.0-py3-none-any.whl -
Subject digest:
a0ef5df16a3e1db898fbdbe5e17fe56adc9f91c019fb7734aa0cd5511812f33f - Sigstore transparency entry: 546828215
- Sigstore integration time:
-
Permalink:
IBM/extremal-python-dependencies@0420e1031876edb9ea1c432e45f0cb1327845e0a -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/IBM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0420e1031876edb9ea1c432e45f0cb1327845e0a -
Trigger Event:
push
-
Statement type: