mirror of
https://github.com/certbot/certbot.git
synced 2026-05-22 18:27:52 -04:00
Part of https://github.com/certbot/certbot/issues/10403. As far as I can tell, "stick it in setup.py" is the official way of handling complex dependencies. But since the version is static, we have a little more choice here than we had with `certbot/pyproject.toml`. We could put the version in the respective `pyproject.toml`s and read it directly from the toml file with something like [this](https://stackoverflow.com/a/78082561). Or otherwise load and parse that file. The benefit of doing it that way is that all non-certbot versions would be canonically in the `pyproject.toml`, and also if we wanted we could use that same toml parsing to change the version at release time instead of `sed`. I actually suspect `acme`, `certbot-ci`, and `certbot-compatibility-test` will be the only ones where we can completely delete `setup.py`, as the others all have lockstep dependencies. (side note - we just never update `certbot-ci` version. it's still set at `0.32.0.dev0`. there's no way this matters but just noting.) I chose to do it this way instead because it seems cleaner since we have to keep `setup.py` around anyway, but I don't have a strong preference. Based on what I've read, there's not actually a clean way to grab and insert the version number within the toml file. This is due to [design decisions](https://github.com/toml-lang/toml/issues/77) by the toml authors. The clean `all` extras specification that we used in `certbot/pyproject.toml` [seems to be an outlier](https://github.com/pypa/setuptools/discussions/3627#discussioncomment-6476654) because it's pip handling the self-reference, not toml.
17 lines
397 B
Python
17 lines
397 B
Python
from setuptools import setup
|
|
|
|
version = '5.0.0.dev0'
|
|
|
|
install_requires = [
|
|
# We specify the minimum acme and certbot version as the current plugin
|
|
# version for simplicity. See
|
|
# https://github.com/certbot/certbot/issues/8761 for more info.
|
|
f'acme>={version}',
|
|
f'certbot>={version}',
|
|
'python-augeas',
|
|
]
|
|
|
|
setup(
|
|
version=version,
|
|
install_requires=install_requires,
|
|
)
|