This release is a pre-release and may not be stable for production use.
bump-minimum-dependencies
Automatically bump the minimum allowed minor versions of package dependencies based on the time since first release.
Motivation
This tool was inspired by SPEC 0, which recommends that projects across the scientific pythoniverse adopt a common time-based policy for dropping dependencies.
SPEC 0 recommends that support for core package dependencies be dropped 24 months after their initial minor release.
For example, NumPy v2.1.0 was released on 2024-08-18, so SPEC 0 recommends that packages drop support for v2.1.* of NumPy after 2026-08-18.
SPEC 0 states:
Limiting the scope of supported dependencies is an effective way for packages to limit maintenance burden. Combinations of packages need to be tested, which impacts also on continuous integration times and infrastructure upkeep. Code itself also becomes more complicated when it has to be aware of various combinations of configurations.
Adoption of this SPEC will ensure a consistent support policy across packages, and reduce the need for individual projects to devise similar policies.
Ultimately, reduced maintenance burden frees up developer time, which translates into more features, bugfixes, and optimizations for users.
Usage
Usage: bump-minimum-dependencies [OPTIONS] PYPROJECT_FILE
Bump the minimum allowed versions of package dependencies.
To bump core package dependencies using default settings, run:
$ bump-minimum-dependencies
To skip updates for numpy and plasmapy, run:
$ bump-minimum-dependencies --skip-package numpy --skip-package plasmapy
To drop minor versions older than 36 months with a cooldown of 24 months,
run:
$ bump-minimum-dependencies --drop-months 36 --cooldown-months 24
To bump all optional dependencies (extras), run:
$ bump-minimum-dependencies --all-extras
To bump all dependency groups, run:
$ bump-minimum-dependencies --all-groups
To bump the optional dependency (extras) category 'optionals' and skip
updates of core dependencies, run:
$ bump-minimum-dependencies --skip-core --extra optionals
To bump the dependency group named dev and core dependencies, run:
$ bump-minimum-dependencies --extra dev
Options:
--skip-package TEXT Name of a package to skip when performing
updates. May be provided multiple times.
--drop-months INTEGER Drop minor releases from this many months ago.
Defaults to 24.
--cooldown-months INTEGER Ensure that there is at least one release this
many months old, if possible. Defaults to 12.
--all-extras Flag to update all optional dependencies.
Defaults to False.
--all-groups Flag to update all dependency groups. Defaults to
False.
--skip-core Flag to skip updating core project dependencies.
Defaults to False.
--extra TEXT Name of an optional dependencies category. May be
provided multiple times.
--group TEXT Name of a dependency group to update. May be
provided multiple times.
--help Show this message and exit.
Examples
To bump core package dependencies using default settings, run:
bump-minimum-dependencies
To skip updates for numpy and plasmapy, run:
bump-minimum-dependencies --skip-package numpy --skip-package plasmapy
To drop minor versions older than 36 months with a cooldown of 24 months, run:
bump-minimum-dependencies --drop-months 36 --cooldown-months 24
To bump all optional dependencies (extras), run:
bump-minimum-dependencies --all-extras
To bump all dependency groups, run:
bump-minimum-dependencies --all-groups
To bump the optional dependency (extras) category 'optionals' and
skip updates of core dependencies, run:
bump-minimum-dependencies --skip-core --extra optionals
To bump the dependency group named dev and core dependencies, run:
```shell
bump-minimum-dependencies --extra dev
Notes
-
Please review all updates to dependencies before accepting them, including to make sure that comments are satisfactorily preserved.
-
Requirements may be normalized, such as changing package names to lower case and removing
.0suffixes (see PEP 440). -
The tool uses uv to update
pyproject.toml, but does not automatically update lockfiles or sync virtual environments. Commands likeuv lockanduv syncwould need to be run separately afterward. -
Using
dep-logicallowsbump-minimum-dependenciesto handle a wide variety of requirements specifiers and perform logical operations to combine multiple requirements specifiers. For example,>=4.1,<5and>=4.2will be combined into>=4.2,<5. -
Because not all cases can be handled cleanly,
bump-minimum-dependenciesskips updates that it cannot perform. -
This tool does not upgrade the minimum required version of Python.
Feature requests and bug reports
Because bump-minimum-dependencies is new, there may be some bugs related to edge cases.
We encourage you to report them with a minimum reproducible example (i.e., your pyproject.toml with the bump-minimum-dependencies command).
Please also submit feature requests that would make bump-minimum-dependencies more helpful to your projects.
Related projects
-
scientific-python/spec0-action — a GitHub action to create quarterly pull requests to perform SPEC 0 updates using a published drop schedule. Unlike
bump-minimum-dependencies, this tool distinguishes between SPEC 0 core packages and other packages. -
cgordberg/bump-dependencies — updates dependency specifiers in
pyproject.tomlto latest compatible versions. -
hmaarrfk/nep29 — calculator tools for NEP 29 (a precursor to SPEC 0).
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 bump_minimum_dependencies-0.1.0b3.tar.gz.
File metadata
- Download URL: bump_minimum_dependencies-0.1.0b3.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
418a06ed9400d9f34eb851fb829878401a5c669b784ebc15a3e8c290adc86ade
|
|
| MD5 |
51efd51b5eab40f65165c5d75bb812b0
|
|
| BLAKE2b-256 |
ab72bcf4625149fe1ff37b38fe5fa99b40483bbf5ddba1af71482392c94682cf
|
Provenance
The following attestation bundles were made for bump_minimum_dependencies-0.1.0b3.tar.gz:
Publisher:
publish.yml on namurphy/bump-minimum-dependencies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bump_minimum_dependencies-0.1.0b3.tar.gz -
Subject digest:
418a06ed9400d9f34eb851fb829878401a5c669b784ebc15a3e8c290adc86ade - Sigstore transparency entry: 2403758269
- Sigstore integration time:
-
Permalink:
namurphy/bump-minimum-dependencies@ba001e8a8411cc9a0b46b0dd2d0f4c49cc1c23c9 -
Branch / Tag:
refs/tags/v0.1.0b3 - Owner: https://github.com/namurphy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba001e8a8411cc9a0b46b0dd2d0f4c49cc1c23c9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file bump_minimum_dependencies-0.1.0b3-py3-none-any.whl.
File metadata
- Download URL: bump_minimum_dependencies-0.1.0b3-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8838313b1fe041a8a03c86659a446a85e786bace0e751f9497fe7005c65d6976
|
|
| MD5 |
c00dd00e50901ff63e7cc976959d28a3
|
|
| BLAKE2b-256 |
93d6faea4462842ba7aa8d488f50b7d1b736edb6396b83ec9d0eb0025166a5b4
|
Provenance
The following attestation bundles were made for bump_minimum_dependencies-0.1.0b3-py3-none-any.whl:
Publisher:
publish.yml on namurphy/bump-minimum-dependencies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bump_minimum_dependencies-0.1.0b3-py3-none-any.whl -
Subject digest:
8838313b1fe041a8a03c86659a446a85e786bace0e751f9497fe7005c65d6976 - Sigstore transparency entry: 2403758735
- Sigstore integration time:
-
Permalink:
namurphy/bump-minimum-dependencies@ba001e8a8411cc9a0b46b0dd2d0f4c49cc1c23c9 -
Branch / Tag:
refs/tags/v0.1.0b3 - Owner: https://github.com/namurphy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba001e8a8411cc9a0b46b0dd2d0f4c49cc1c23c9 -
Trigger Event:
release
-
Statement type: