mirror of
https://github.com/certbot/certbot.git
synced 2026-01-26 07:41:33 +03:00
This is part of https://github.com/certbot/certbot/issues/8782. I took it on now because the currently pinned version of `pylint` doesn't work with newer versions of `poetry` which I wanted to upgrade as part of https://github.com/certbot/certbot/issues/8787. To say a bit more about the specific changes in this PR: * Newer versions of `pylint` complain if `Popen` isn't used as a context manager. Instead of making this change, I switched to using `subprocess.run` which is simpler and [recommended in the Python docs](https://docs.python.org/3/library/subprocess.html#using-the-subprocess-module). I also disabled this check in a few places where no longer using `Popen` would require significant refactoring. * The deleted code in `certbot/certbot/_internal/renewal.py` is cruft since https://github.com/certbot/certbot/pull/8685. * The unused argument to `enable_mod` in the Apache plugin is used in some over the override classes that subclass that class. * unpin pylint and repin dependencies * disable raise-missing-from * disable wrong-input-order * remove unused code * misc lint fixes * remove unused import * various lint fixes
90 lines
4.8 KiB
TOML
90 lines
4.8 KiB
TOML
[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"
|
|
# 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, pytest, and some of pytest's plugins causes many test
|
|
# failures so let's pin these packages back for now.
|
|
coverage = "4.5.4"
|
|
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"
|
|
# 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.
|
|
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"
|