Skip to content

A setuptools plugin that allows for dependencies that are dependent on the package's version number.

License

Notifications You must be signed in to change notification settings

beeware/setuptools_dynamic_dependencies

Generic BeeWare Logo

setuptools_dynamic_dependencies

Python Versions PyPI Version Maturity BSD License Discord server

setuptools_dynamic_dependencies is a setuptools plugin that allows you to define project requirements that are dynamically dependent on other properties (such as project version). This can be useful in monorepositories which contain a "core" package and a number of "backend" packages, and you want to enforce a version dependency between the backend and the core.

Usage

You must be using a pyproject.toml-based project configuration. setup.cfg and setup.py configurations are not supported.

Add setuptools_dynamic_dependencies to the build-system requirements for your project:

[build-system]
requires = ["setuptools_dynamic_dependencies"]

Declare "dependencies" as being dynamic in your [project] table:

[project]
dynamic = ["dependencies"]

Then, add a [tool.setuptools_dynamic_dependencies] section to your configuration. In this section, add an dependencies key for any requirements. In the following example, dynamic-package will be pinned to the same version as the package being built:

[tool.setuptools_dynamic_requires]
dependencies = [
    "dynamic-package == {version}"
]

So - if this was the pyproject.toml for "myproject", and you were building v1.2.3, the dependency would be set to dynamic_package == 1.2.3. This version value can come from a setuptool_scm dynamic version, if required.

You can also specify a [tool.setuptools_dynamic_dependencies.optional-dependencies] to define dynamic optional requirements:

[tool.setuptools_dynamic_dependencies.optional-dependencies]
feature = [
    "dynamic-package == {version}"
]

Community

setuptools_dynamic_dependencies is part of the BeeWare suite. You can talk to the community through:

We foster a welcoming and respectful community as described in our BeeWare Community Code of Conduct.

Contributing

If you experience problems with setuptools_dynamic_dependencies, log them on GitHub. If you want to contribute code, please fork the code and submit a pull request.

About

A setuptools plugin that allows for dependencies that are dependent on the package's version number.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages