certbot/tools/pinning/pyproject.toml

91 lines
4.8 KiB
TOML
Raw Permalink Normal View History

[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.6"
# 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", extras = ["docs"]}
certbot-compatibility-test = {path = "../../certbot-compatibility-test", extras = ["docs"]}
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", extras = ["docs"]}
certbot-apache = {path = "../../certbot-apache", extras = ["dev"]}
certbot = {path = "../../certbot", extras = ["dev", "docs"]}
acme = {path = "../../acme", extras = ["dev", "docs"]}
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.19.62"
2021-04-20 15:12:45 -04:00
# 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 = "*"
# Upgrading coverage, pylint, pytest, and some of pytest's plugins causes many
# test failures so let's pin these packages back for now.
coverage = "4.5.4"
pylint = "2.4.3"
pytest = "3.2.5"
pytest-forked = "0.2"
# We were originally pinning back python-augeas for certbot-auto because we
# found the way older versions of the library linked to Augeas were more
# reliable. That's no longer a concern, however, we continue to pin back the
# library for now because it causes Certbot tests on Windows to fail. See
# https://github.com/certbot/certbot/issues/8732.
python-augeas = "0.5.0"
Fix Sphinx builds (#8838) Since Saturday the CI pipeline is failing due to several Sphinx errors. See https://dev.azure.com/certbot/certbot/_build/results?buildId=3928&view=logs&j=d74e04fe-9740-597d-e9fa-1d0400037dfd&t=dde413a4-f24c-59a0-9684-e33d79f9aa02 First, the build of certbot-dns-google is failing because of a particular configuration. It seems that this configuration has been written here to activate the support of the RST instruction `.. code-block:: json` in documentation. However, it does not seem to be necessary for a similar situation in certbot-dns-route53 documentation. So let's try to remove it and fix the Sphinx builds. Second, Sphinx builds were not pinning dependencies, so Sphinx 4.x (that has been released yesterday) started to be used in the pipeline. Sadly this new version is not compatible with the plugin `repoze.sphinx.autointerface`, used to extract documentation from `zope.interface`. So I fixed the pinning and also explicitly pin Sphinx to 3.5.x for now. Technically speaking the second action is sufficient to fix the first error, but I keep the dedicated solution because it improves the documentation in my opinion. This situation could be fixed by not requiring `repoze.sphinx.autointerface`, but this is possible only if we remove `zope.interface` from Certbot. Luckily I started the work few days ago ;). * Remove explicit lexer call in certbot-dns-google doc builds. * Write a valid JSON file in the documentation * Apply constraints to sphinx build environments * Pin Sphinx to 3.5.4 * Update dependencies * Pin traitlets
2021-05-10 15:11:31 -04:00
# Because some parts of Certbot documentation are generated from zope.interfaces,
# we need the Sphinx plugin repoze.sphinx.autointerface. This plugin is not
# currently compatible with Sphinx>=4 though so we're pinning an older version
# for now. See https://github.com/repoze/repoze.sphinx.autointerface/issues/16
# for more info. This pinning could also be removed by the removal of
# zope.interface in Certbot.
Fix Sphinx builds (#8838) Since Saturday the CI pipeline is failing due to several Sphinx errors. See https://dev.azure.com/certbot/certbot/_build/results?buildId=3928&view=logs&j=d74e04fe-9740-597d-e9fa-1d0400037dfd&t=dde413a4-f24c-59a0-9684-e33d79f9aa02 First, the build of certbot-dns-google is failing because of a particular configuration. It seems that this configuration has been written here to activate the support of the RST instruction `.. code-block:: json` in documentation. However, it does not seem to be necessary for a similar situation in certbot-dns-route53 documentation. So let's try to remove it and fix the Sphinx builds. Second, Sphinx builds were not pinning dependencies, so Sphinx 4.x (that has been released yesterday) started to be used in the pipeline. Sadly this new version is not compatible with the plugin `repoze.sphinx.autointerface`, used to extract documentation from `zope.interface`. So I fixed the pinning and also explicitly pin Sphinx to 3.5.x for now. Technically speaking the second action is sufficient to fix the first error, but I keep the dedicated solution because it improves the documentation in my opinion. This situation could be fixed by not requiring `repoze.sphinx.autointerface`, but this is possible only if we remove `zope.interface` from Certbot. Luckily I started the work few days ago ;). * Remove explicit lexer call in certbot-dns-google doc builds. * Write a valid JSON file in the documentation * Apply constraints to sphinx build environments * Pin Sphinx to 3.5.4 * Update dependencies * Pin traitlets
2021-05-10 15:11:31 -04:00
sphinx = "<4"
# Library traitlets is a transitive dependency of ipdb (traitlets -> ipython -> ipdb).
# Version 5.x is incompatible with Python 3.6 but for some reasons, poetry fails to
# add the appropriate marker and allows this version to be installed under Python 3.6.
# We add a pinning to not create a set of requirements incompatible with Python 3.6.
traitlets = "<5"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"