[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] python = "^3.7" # 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-compatibility-test = {path = "../../../certbot-compatibility-test"} certbot-dns-cloudflare = {path = "../../../certbot-dns-cloudflare", extras = ["docs"]} certbot-dns-cloudxns = {path = "../../../certbot-dns-cloudxns", extras = ["docs"]} certbot-dns-digitalocean = {path = "../../../certbot-dns-digitalocean", extras = ["docs"]} certbot-dns-dnsimple = {path = "../../../certbot-dns-dnsimple", extras = ["docs"]} certbot-dns-dnsmadeeasy = {path = "../../../certbot-dns-dnsmadeeasy", extras = ["docs"]} certbot-dns-gehirn = {path = "../../../certbot-dns-gehirn", extras = ["docs"]} certbot-dns-google = {path = "../../../certbot-dns-google", extras = ["docs"]} certbot-dns-linode = {path = "../../../certbot-dns-linode", extras = ["docs"]} certbot-dns-luadns = {path = "../../../certbot-dns-luadns", extras = ["docs"]} certbot-dns-nsone = {path = "../../../certbot-dns-nsone", extras = ["docs"]} certbot-dns-ovh = {path = "../../../certbot-dns-ovh", extras = ["docs"]} certbot-dns-rfc2136 = {path = "../../../certbot-dns-rfc2136", extras = ["docs"]} certbot-dns-route53 = {path = "../../../certbot-dns-route53", extras = ["docs"]} certbot-dns-sakuracloud = {path = "../../../certbot-dns-sakuracloud", extras = ["docs"]} certbot-nginx = {path = "../../../certbot-nginx"} certbot-apache = {path = "../../../certbot-apache", extras = ["dev"]} certbot = {path = "../../../certbot", extras = ["all"]} acme = {path = "../../../acme", extras = ["docs", "test"]} letstest = {path = "../../../letstest"} windows-installer = {path = "../../../windows-installer"} # Extra dependencies # awscli is just listed here as a performance optimization. As of writing this, # there are some conflicts in shared dependencies between it and other packages # we depend on. To try and resolve them, poetry searches through older versions # of awscli to see if that resolves the conflict, but there are over 1000 # versions of awscli on PyPI so this process takes too long. Providing a high # minimum version here prevents poetry from searching this path and it fairly # quickly resolves the dependency conflict in another way. awscli = ">=1.22.76" # As of writing this, cython is a build dependency of pyyaml. Since there # 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 it # as a dependency here to ensure a version of cython is pinned for extra # stability. cython = "*" # We install mock in our "external-mock" tox environment to test that we didn't # break Certbot's test API which used to always use mock objects from the 3rd # party mock library. We list the mock dependency here so that is pinned, but # we don't depend on it in Certbot to avoid installing mock when it's not # needed. This dependency can be removed here once Certbot's support for the # 3rd party mock library has been dropped. mock = "*" # poetry 1.2.0+ is required for it to pin pip, setuptools, and wheel. See # https://github.com/python-poetry/poetry/issues/1584. This version is required # here in addition to certbot/setup.py because otherwise the pre-release # version of poetry will not be installed. # # Additionally, newer versions of poetry/poetry-core include package extras # (e.g. "docker[ssh]") in its `poetry export` output which is valid for # requirements files, but not constraints files. We are currently using that # output as constraints so let's also pin back poetry and poetry-core until we # have a better workaround. poetry = "1.2.0a2" poetry-core = "1.1.0a7" # setuptools-rust is a build dependency of cryptography, and since we don't have # a great way of pinning build dependencies, we simply list it here to ensure a # working version. Note: if build dependencies of setuptools-rust break at some # point, it's probably worth enumerating and pinning them (and recursing to # THEIR build dependencies) as well. setuptools-rust = "*" # pylint often adds new checks that we need to conform our code to when # upgrading our dependencies. To help control when this needs to be done, we # pin pylint to a compatible version here. # # If this pinning is removed, we may still need to add a lower bound for the # pylint version. See https://github.com/certbot/certbot/pull/9229. pylint = "2.13.9" # Bug in poetry, where still installes yanked versions from pypi (source: https://github.com/python-poetry/poetry/issues/2453) # this version of cryptography introduced a security vulnrability. # Making sure that it would not get installed (Fixing https://github.com/certbot/certbot/issues/9336) cryptography = "!= 37.0.3" [tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"