remove readthedocs requirements files (#10639)

as those with access can see
[here](https://github.com/certbot/certbot/security/dependabot),
dependabot recently got confused by our readthedocs.org.requirements.txt
files

my read of the situation looking at output like
[this](https://github.com/certbot/certbot/actions/runs/25448194392/job/74658002711#step:3:72)
is dependabot expects paths to local packages to be relative to the
requirements file while readthedocs wants them to relative to the root
of the repo. (i tested changing the paths to be relative to the
requirements file and [readthedocs was not
happy](https://app.readthedocs.org/projects/eff-certbot/builds/32592654/))

to deal with this, we could create a .github/dependabot.yaml file and
set
[exclude-paths](https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference#exclude-paths-),
but it strikes me as even simpler and cleaner to just remove these files
if possible

our use of these readthedocs.org.requirements.txt files dates back to
https://github.com/certbot/certbot/pull/261, long before readthedocs
added its .readthedocs.yaml files which we much more recently adopted in
https://github.com/certbot/certbot/pull/9762. inspired by the
suggestions at
https://github.com/readthedocs/readthedocs.org/issues/7258 to workaround
the lack of support for constraints files, i took the approach of
[customizing the build
process](https://docs.readthedocs.com/platform/stable/build-customization.html)

we luckily don't have to override any of the existing readthedocs build
steps. for reference, the build process is described
[here](https://docs.readthedocs.com/platform/stable/builds.html),
however, if you compare the readthedocs build logs from
[main](https://app.readthedocs.org/projects/eff-certbot/builds/32568259/)
and [this
branch](https://app.readthedocs.org/projects/eff-certbot/builds/32597332/),
you'll see they are essentially identical

in addition to the certbot build, i also triggered
[acme](https://app.readthedocs.org/projects/acme-python/builds/32597344/)
and
[dns-cloudflare](https://app.readthedocs.org/projects/certbot-dns-cloudflare/builds/32597347/)
builds from this branch which passed as well

i personally think we can get away with just one review on this PR, but
if the reviewer disagrees, by all means request a second one
This commit is contained in:
Brad Warren 2026-05-08 13:59:22 -07:00 committed by GitHub
parent c8ebcb49bd
commit 208ff18405
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 105 additions and 357 deletions

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: acme/readthedocs.org.requirements.txt

View file

@ -1,13 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e acme[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install acme[docs]" does not work as
# expected and "pip install -e acme[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-cloudflare[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-cloudflare/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-cloudflare[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-cloudflare[docs]" does not work as
# expected and "pip install -e certbot-dns-cloudflare[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-cloudflare[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-digitalocean[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-digitalocean/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-digitalocean[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-digitalocean[docs]" does not work as
# expected and "pip install -e certbot-dns-digitalocean[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-digitalocean[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-dnsimple[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-dnsimple/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-dnsimple[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-dnsimple[docs]" does not work as
# expected and "pip install -e certbot-dns-dnsimple[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-dnsimple[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-dnsmadeeasy[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-dnsmadeeasy/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-dnsmadeeasy[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-dnsmadeeasy[docs]" does not work as
# expected and "pip install -e certbot-dns-dnsmadeeasy[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-dnsmadeeasy[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-gehirn[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-gehirn/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-gehirn[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-gehirn[docs]" does not work as
# expected and "pip install -e certbot-dns-gehirn[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-gehirn[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-google[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-google/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-google[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-google[docs]" does not work as
# expected and "pip install -e certbot-dns-google[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-google[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-linode[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-linode/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-linode[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-linode[docs]" does not work as
# expected and "pip install -e certbot-dns-linode[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-linode[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-luadns[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-luadns/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-luadns[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-luadns[docs]" does not work as
# expected and "pip install -e certbot-dns-luadns[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-luadns[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-nsone[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-nsone/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-nsone[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-nsone[docs]" does not work as
# expected and "pip install -e certbot-dns-nsone[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-nsone[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-ovh[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-ovh/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-ovh[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-ovh[docs]" does not work as
# expected and "pip install -e certbot-dns-ovh[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-ovh[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-rfc2136[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-rfc2136/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-rfc2136[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-rfc2136[docs]" does not work as
# expected and "pip install -e certbot-dns-rfc2136[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-rfc2136[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-route53[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-route53/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-route53[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-route53[docs]" does not work as
# expected and "pip install -e certbot-dns-route53[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-route53[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot -e certbot-dns-sakuracloud[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot-dns-sakuracloud/readthedocs.org.requirements.txt

View file

@ -1,15 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot-dns-sakuracloud[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install certbot-dns-sakuracloud[docs]" does not work as
# expected and "pip install -e certbot-dns-sakuracloud[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot
-e certbot-dns-sakuracloud[docs]

View file

@ -9,8 +9,13 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# You can also specify other tool versions:
# You can also specify other tool versions
jobs:
post_install:
# Using a constraints file isn't natively supported. We use a
# post_install job with the following flags and method of invoking pip to
# most closely mimic the current default installation behavior.
- python -m pip install --exists-action=w --no-cache-dir -c tools/requirements.txt -e acme -e certbot[docs]
# Build documentation in the "docs/" directory with Sphinx
sphinx:
@ -24,10 +29,3 @@ sphinx:
formats:
- pdf
- epub
# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: certbot/readthedocs.org.requirements.txt

View file

@ -1,14 +0,0 @@
# readthedocs.org gives no way to change the install command to "pip
# install -e certbot[docs]" (that would in turn install documentation
# dependencies), but it allows to specify a requirements.txt file at
# https://readthedocs.org/dashboard/letsencrypt/advanced/ (c.f. #259)
# Although ReadTheDocs certainly doesn't need to install the project
# in --editable mode (-e), just "pip install .[docs]" does not work as
# expected and "pip install -e certbot[docs]" must be used instead
# We also pin our dependencies for increased stability.
-c ../tools/requirements.txt
-e acme
-e certbot[docs]