# The purpose of this file is to help us test Certbot against the oldest # versions of our dependencies which we claim to support in our setup.py files. # # Security alerts about vulnerable packages in this file can be ignored since # they are only used during testing. # # Ideally, generating package pinnings based on our minimum allowed dependency # versions would be done automatically by tooling, but as of writing this, both # https://github.com/pypa/pip/issues/8085 and # https://github.com/python-poetry/poetry/issues/3527 remain unresolved. [tool.poetry] name = "certbot-pinner" version = "0.1.0" description = "A simple project for pinning Certbot's dependencies using Poetry." authors = ["Certbot Project"] license = "Apache License 2.0" [tool.poetry.dependencies] # The Python version here should be kept in sync with the one used in our # oldest tests in tox.ini. python = "<3.11,>=3.10" # Local dependencies # Any local packages that have dependencies on other local packages must be # listed below before the package it depends on. For instance, certbot depends # on acme so certbot must be listed before acme. certbot-ci = {path = "../../../certbot-ci"} certbot-dns-cloudflare = {path = "../../../certbot-dns-cloudflare"} certbot-dns-digitalocean = {path = "../../../certbot-dns-digitalocean"} certbot-dns-dnsimple = {path = "../../../certbot-dns-dnsimple"} certbot-dns-dnsmadeeasy = {path = "../../../certbot-dns-dnsmadeeasy"} certbot-dns-gehirn = {path = "../../../certbot-dns-gehirn"} certbot-dns-google = {path = "../../../certbot-dns-google"} certbot-dns-linode = {path = "../../../certbot-dns-linode"} certbot-dns-luadns = {path = "../../../certbot-dns-luadns"} certbot-dns-nsone = {path = "../../../certbot-dns-nsone"} certbot-dns-ovh = {path = "../../../certbot-dns-ovh"} certbot-dns-rfc2136 = {path = "../../../certbot-dns-rfc2136"} certbot-dns-route53 = {path = "../../../certbot-dns-route53"} certbot-dns-sakuracloud = {path = "../../../certbot-dns-sakuracloud"} certbot-nginx = {path = "../../../certbot-nginx"} certbot-apache = {path = "../../../certbot-apache"} certbot = {path = "../../../certbot", extras = ["test"]} acme = {path = "../../../acme", extras = ["test"]} # Oldest dependencies # We specify the oldest versions of our dependencies that we keep support for # below. These dependencies can be updated as desired to simplify or improve # Certbot or its development. If the dependency being updated is a direct # dependency of one of our own packages, the minimum required version of that # dependency should be updated in our setup.py files as well to communicate # this information to our users. ConfigArgParse = "1.5.3" apacheconfig = "0.3.2" asn1crypto = "0.24.0" # we were already ignoring debian 11 for our boto* versions; this uses the versions from ubuntu 22 boto3 = "1.20.34" botocore = "1.23.34" cffi = "1.14.1" chardet = "3.0.4" cloudflare = "4.0.0" configobj = "5.0.6" cryptography = "43.0.0" distro = "1.7.0" dns-lexicon = "3.15.1" dnspython = "2.6.1" funcsigs = "0.4" google-api-python-client = "1.6.5" google-auth = "2.16.0" httplib2 = "0.9.2" idna = "2.8" ipaddress = "1.0.16" ndg-httpsclient = "0.3.2" parsedatetime = "2.6" pbr = "1.8.0" ply = "3.4" pyOpenSSL = "25.0.0" pyRFC3339 = "1.0" pyasn1 = "0.4.8" pycparser = "2.14" pyparsing = "3.0.0" python-augeas = "0.5.0" python-digitalocean = "1.15.0" requests = "2.25.1" six = "1.16.0" urllib3 = "1.26.5" # Build dependencies # Since there doesn't appear to # doesn't appear to be a good way to automatically track down and pin build # dependencies in Python (see # https://discuss.python.org/t/how-to-pin-build-dependencies/8238), we list any # build dependencies here to ensure they're pinned for extra stability. # cython is a build dependency of pyyaml # # # As of pyyaml 6.0.2, cython >= 3.0 is required for py >= 3.13, and < 3.0 for py < 3.13. # See https://github.com/yaml/pyyaml/pull/808/files. cython = [ { version = "<3.0", python = "<3.13" }, { version = ">=3.0", python = ">=3.13" } ] # Other dependencies # We add any dependencies that must be specified in this file for any another # reason below. [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"