Commit graph

55 commits

Author SHA1 Message Date
Adrien Ferrand
5cf5f36f19
Update Lexicon requirements to stabilize certbot-dns-ovh behavior (#9802)
* Update minimum Lexicon version required for certbot-dns-ovh

* Add types

* FIx mypy

* Fix lint

* Fix BOTH lint and mypy
2023-10-18 13:19:26 -07:00
Adrien Ferrand
8a95c030e6
Drop Python 3.7 support (#9792)
* Drop Python 3.7 support

* Fix lint and test

* Check for venv generation

* Update requirements

* Update oldest constaints and compatibility tests runtime
2023-10-13 06:57:42 -07:00
Brad Warren
5849ff73fb
update pinned dependencies (#9788)
This fixes the security alerts those with access can see at https://github.com/certbot/certbot/security/dependabot.
2023-10-06 11:39:08 -07:00
Adrien Ferrand
732a3ac962
Refactor Lexicon-based DNS plugins (#9746)
* Refactor Lexicon-based DNS plugins and upgrade minimal version of Lexicon

* Relax filterwarning to comply with envs where boto3 is not installed

* Update pinned dependencies

* Use our previous method to deprecate part of modules

* Safe import internally

* Add changelog

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2023-09-25 15:15:04 -07:00
Adrien Ferrand
23f9dfc655
Migrate pkg_resources usages to importlib.metadata (#9749)
* Migrate entrypoint logic from pkg_resources to importlib.metadata

* Usage of importlib_metadata up to Python 3.9 to align API behavior to Python 3.10

---------

Co-authored-by: Adrien Ferrand <adrien.ferrand@amadeus.com>
Co-authored-by: Adrien Ferrand <adrien.ferrand@arteris.com>
2023-09-12 08:18:57 -07:00
Adrien Ferrand
cc359dab46
Migrate pkg_resources usages to importlib.resources (#9748)
* Migrate pkg_resources API related to resources to importlib_resources

* Fix lint and mypy + pin lexicon

* Update filterwarnings

* Update oldest tests requirements

* Update pinned dependencies

* Fix for modern versions of python

* Fix assets load in nginx integration tests

* Fix a warning

* Isolate static generation from importlib.resource into a private function

---------

Co-authored-by: Adrien Ferrand <adrien.ferrand@amadeus.com>
2023-09-07 11:38:44 -07:00
Brad Warren
9b4b99f3e8
Update dependencies (#9754)
This takes care of the dependabot alerts those with access can see at https://github.com/certbot/certbot/security/dependabot.

Pinning back `cython` is needed because without it, our full test suite will fail when trying to build `pyyaml` on ARM systems.
2023-08-24 17:05:54 -07:00
alexzorin
d0e11c81b1
Repin dependencies to fix security alerts (#9717)
* repin current

* repin oldest

* csr must have version set to zero

* only set PIP_USE_PEP517 for macOS

* experiment with brew update git failure workaround
2023-07-05 06:40:02 -07:00
Jawshua
b0d0a83277
google: use Application Default Credentials where available (#9670)
* google: use Application Default Credentials where available

* Updated custom role documentation
2023-04-22 07:58:18 +10:00
Brad Warren
5149dfd96e
Add some missing type libraries for mypy (#9657)
* add some missing types

* install pkg-config

* install pkg-config for docker too

* add pkg-config to plugins

* pkg-config when cryptography may need to be built

* deps cleanup

* more comments

* more tweaks
2023-04-09 11:49:08 +10:00
alexzorin
99184daff6
repin cryptography for openssl security update (#9565)
* repin cryptography for openssl security update

https://www.openssl.org/news/secadv/20230207.txt
https://cryptography.io/en/latest/changelog/#v39-0-1

* fix type hints

* remove outdated comments
2023-02-08 11:17:44 -08:00
Brad Warren
666e12b25d
upgrade shellingham (#9529) 2023-01-05 19:30:47 +11:00
Brad Warren
8155d60e9a
remove setuptools pin (#9520) 2022-12-21 10:59:41 +11:00
Brad Warren
70a36fdf00
Update dependencies (#9505)
* upgrade dependencies

* forbid old setuptools
2022-12-13 10:48:17 +11:00
Brad Warren
f171f0fcd9
remove botocore warning exceptions (#9476) 2022-11-22 06:42:00 +11:00
Brad Warren
d244013355
Upgrade pylint (#9470)
* upgrade pylint

* pylint --generate-rcfile > .pylintrc

* fixup pylintrc

* Remove unnecessary lambdas

* fix broad-except

* fix missing timeouts

* fix unit tests

* catch more generic exception
2022-11-17 18:21:14 +11:00
Brad Warren
652d5e96be
Drop awscli dependency (#9459)
Fixes https://github.com/certbot/certbot/issues/9458.

* update readme

* drop awscli

Co-authored-by: ohemorange <ebportnoy@gmail.com>
2022-11-16 17:10:18 -08:00
Alex Zorin
1773edcad0 Merge remote-tracking branch 'origin/master' into 2.0.x 2022-11-11 17:25:42 +11:00
alexzorin
7ab82b6f64
repin dependencies (#9454) 2022-11-02 12:32:00 -07:00
Brad Warren
529942fe4b
Unpin poetry (#9438)
* unpin poetry

* export constraints
2022-10-21 10:59:33 +02:00
Brad Warren
3a738cadc3
Remove docker-compose dependency (#9436)
This is progress towards https://github.com/certbot/certbot/issues/9370 as discussed at https://github.com/certbot/certbot/pull/9435.

I kept the command using `docker-compose` because `docker compose` doesn't seem that widely recognized yet and https://www.docker.com/blog/announcing-compose-v2-general-availability/ describes aliasing `docker-compose` to `docker compose` on newer systems by default.

* refactor boulder shutdown

* remove docker-compose dep

* Reorder shutdown process
2022-10-20 13:07:18 -07:00
Alex Zorin
4fcc0f7c2a Merge branch 'master' into 2.0-merge-master 2022-10-05 05:15:39 +11:00
Will Greenberg
26d479d6e3
Remove external mock dependency (#9331)
* Remove external mock dependency

This also removes the "external-mock" test environment

* remove superfluous ignores

* remove mock warning ignore from pytest.ini

* drop deps on mock in oldest, drop dep on types-mock

Co-authored-by: Alex Zorin <alex@zorin.id.au>
2022-09-28 16:17:03 -07:00
Brad Warren
db31a8c1f5
Upgrade dependency pinnings (#9412)
* upgrade dependencies

* remove unused ignore
2022-09-21 18:37:30 +10:00
Alex Zorin
63771b48bb Merge remote-tracking branch 'origin/master' into update-2.0.x 2022-09-09 08:37:56 +10:00
Adrien Ferrand
9d736d5c9c
Remove zope from Certbot (#9161)
* Remove zope and the internal reporter util.

* remove zope references from .pylintrc and pytest.ini

Co-authored-by: Alex Zorin <alex@zorin.id.au>
2022-09-07 15:09:32 +10:00
Brad Warren
b73f3e2b16
pin back pylint (#9368) 2022-07-29 12:58:47 +10:00
alexzorin
42a4d30267
deps: remove pyjwt dependency (#9337)
* deps: remove pyjwt dependency

* pinning: strip extras from dependencies

`poetry export` outputs in requirements.txt format, which is now
apparently producing "dep[extra]==...". We are using this output
as the constraints file for pip and pip's new resolver does not
permit extras in the constraints file.

This change filters out the extras specifiers.

* repin current dependencies

* fix new pylint complaints

* silence lint about distutils.version

We have already deprecated the function and it'll be removed in
2.0.

* docs: set sphinx language to 'en'

this is emitting a warning and failing the build

* Revert "pinning: strip extras from dependencies"

This reverts commit 11268fd231.

* pin poetry back to avoid extras issue

* repin

* fix new mypy complaints in acme/
2022-07-28 17:26:12 -07:00
ohemorange
f58e3c5e92
Run repin.sh to pull in new version of cryptography, using OpenSSL 1.1.1n (#9237) 2022-03-15 16:46:58 -07:00
Mads Jensen
2b51661430
Remove cast for jose.fields. (#9228)
* Remove cast for jose.fields.

https://github.com/certbot/certbot/pull/9073 references this.

* Some of them can't be removed, though.

* Fix josepy type hints of json

* Increase josepy pinning version.

Note that the repin scripts have not been used.

* Run repin scripts.

* Fix constraints
2022-03-12 20:31:54 +11:00
alexzorin
ee2f5f5a0a
pinning: work around poetry crash caused by bad 3rd party constraint (#9229) 2022-03-12 09:04:09 +11:00
Brad Warren
c1030c0d40
Drop Python 3.6 support (#9216)
* Remove deprecation warnings

* update ci

* update setup.py files

* update changelog

* update pinnings

* update requests and friends

* update setuptools pin

* update setuptools pin pt2

* update pytz

* upgrade pyparsing

* upgrade boto deps

* update deps and docs

* update pyproject.toml comment

* remove trailets pin

* remove explicit PYTHON_VERSION
2022-02-28 15:23:30 -08:00
Will Greenberg
f14cefff18
Test revert setuptools pin (#9197)
* Revert setuptools-rust pin

This was a temporary workaround to fix
https://github.com/certbot/certbot/issues/9111, but it looks like the
the issue resolved itself

* Make mypy happy

There was an unused ignore statement, and Validator.certificate was
unnecessarily casting strings as bytes for an X509 digest method.

* Pin setuptools-rust to prevent build-dep hiccups in the future
2022-02-10 14:10:14 -08:00
Adrien Ferrand
dac0b2c187
Typed jose fields (#9073)
* Add generic methods to save some casts, and fix lint

* Update current and oldest pinning

* Fix classes

* Remove some todos thanks to josepy 1.11.0

* Cleanup some useless pylint disable

* Finish complete typing

* Better TypeVar names

* Upgrade pinning and fix some typing errors

* Use protocol

* Fix types in apache

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2022-01-24 15:16:19 -08:00
Brad Warren
d1821b3ad7
Pin back setuptools-rust (#9112)
* pin back setuptools-rust

* make pylint happy

This was taken from https://github.com/certbot/certbot/pull/9073.

* pin back josepy

* Apply lint's code style suggestions

* fix lint again

Co-authored-by: Erica Portnoy <ebportnoy@gmail.com>
2021-11-23 12:35:49 -08:00
Adrien Ferrand
fc02b10560
Upgrade pinned versions of certbot dependencies (josepy in particular) (#9027)
This PR upgrades the pinned version of the dependencies. Version `1.9.0` of josepy is used so errors related to JWK serialization with EC keys (see https://github.com/certbot/josepy/issues/109) are fixed for Certbot.
2021-09-10 12:26:07 -07:00
Adrien Ferrand
06c8113863
Cleanup zope dependencies in plugins and upgrade sphinx (#8997)
This PR removes all zope dependencies from plugins configuration.

It also lets Sphinx upgrade to the next major version by removing the plugin dedicated to zope interfaces documentation. As a consequence, the deprecated zope interfaces are not documented anymore.

* Cleanup zope dependencies in plugins and upgrade sphinx

* Update pinnings
2021-08-18 08:12:55 -07:00
Adrien Ferrand
acf48df979
Use latest version of mypy (#8992)
Fixes #8899

This PR removes the pinning upper limit of mypy currently set to <0.900 and adds the required types-* stub packages to make recent versions of mypy work.

* Unpin mypy

* Improve type in TempHandler

* Add types
2021-08-17 10:52:57 -07:00
Adrien Ferrand
5b96cc9c37
Release pip pinning (#8993)
The bug that was requiring pip to stay on 20.2.4 has been fixed on version 21.2.x. Let's release the pip pinning with this PR.
2021-08-16 15:14:22 -07:00
Brad Warren
1129d850d3
add chardet dep (#8965) 2021-08-03 10:35:00 +10:00
Adrien Ferrand
8133d3e70a
Fix python-augeas failure on Windows (v2) (#8951)
This PR is a new approach for fixing #8732 based on the discussions occurred in the first PR #8877.

This PR upgrades python-augeas to the latest version, and avoids tests failure of Windows because of this upgrade. To do so it leverages the [tox multi-platform feature](https://tox.readthedocs.io/en/latest/example/platform.html) and modifications to `tools/venv.py` in order to not install and not test `certbot-apache` on Windows.

* Unpin python-augeas and upgrade current pinnings

* Do not install certbot-apache in Windows dev environments

* Introduce tox specific win packages + remove certbot compatibility on windows

* Add libaugeas to sphinx build

* Redefine lint and mypy targets

* Keep the lint and mypy environments
2021-07-29 11:25:25 -07:00
Brad Warren
08839758bd
Finish pinning system rewrite (#8934)
* add oldest pyproject.toml file that works

* make single oldest_constraints.txt file

* remove unused merge_requirements.py

* remove unused import

* make conditional right

* simplify pip_install.py

* fix typo

* bump min dns-lexicon dependency

* fix zope import warning

* pin back wheel

* refactor pinning script

* Add oldest script.

* add pip comment

* add pipstrap extra

* simplify pinning scripts

* remove pipstrap extra

* update contributing

* Add design doc

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* Update tools/pinning/DESIGN.md

Co-authored-by: ohemorange <erica@eff.org>

* rename normal to current

* no dummies

* script improvements

* mention need to update setup.py

* try and clarify poetry behavior

* tweak section title

Co-authored-by: ohemorange <erica@eff.org>
2021-07-22 12:00:30 -07:00
alexzorin
8e29063ba7
pylint: upgrade pinned verson and fix new lints (#8936)
While bumping pinned packages in #8928, we came across a new version of pylint (2.9.3). Upgrading to this version requires some changes to Certbot's code, which is what this change is about.

* pylint: upgrade pinned verson and fix new lints

* maxsplit should be 1, not -1, for rsplit
2021-07-15 11:03:39 -07:00
Brad Warren
18ea72faf1
Split out testing extras (#8893)
* split out test extras

* update extras and regenerate pinnings

* pin back mypy
2021-06-11 13:17:50 -07:00
Brad Warren
0b08a80dce
Pin pip & co like our other dependencies (#8868)
* use poetry 1.2.0a1

* pin pip normally

* use normal constraints file with pipstrap

* remove unused STRIP_HASHES var

* Check for old poetry versions

* keep pip, setuptools, and wheel pinned in oldest

* remove strip hashes

* pin back pip

* fix new lint error
2021-06-09 17:01:54 -07:00
Brad Warren
492b578662
Update coverage and pytest (#8875)
* unpin pytest and update pinnings

* ignore external mock warnings

* fix assertion

* fix test_revoke_mutual_exclusive_flags

* fix output count

* capture stdout and stderr separately

* undouble counts

* rename variable

* don't use capture_output

* fix leaky test

* update coverage
2021-05-31 09:01:01 +02:00
Brad Warren
315ddb247f
Upgrade pylint (#8855)
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
2021-05-24 10:02:55 -07:00
Adrien Ferrand
b0552e1939
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 12:11:31 -07:00
Brad Warren
dd0e590de3
Make a test farm tests package (#8821)
Fixes https://github.com/certbot/certbot/issues/8781.

This PR makes our test farm tests into a normal package so it and its dependencies can be tracked and installed like our other packages.

Other noteworthy changes in this PR:

* Rather than continuing to place logs in your CWD, they're placed in a temporary directory that is printed to the terminal.
*  `tests/letstest/auto_targets.yaml` was deleted rather than renamed because the file is no longer used.

* make a letstest package

* remove deleted deps

* fix letstest install

* add __init__.py

* call main

* Explicitly mention activating venv

* rerename file

* fix version.py path

* clarify "this"

* Use >= instead of caret requirement
2021-05-03 17:42:30 -07:00
Brad Warren
fb967fda15
pin cython (#8794) 2021-04-20 12:12:45 -07:00