Commit graph

412 commits

Author SHA1 Message Date
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
Shahar Naveh
32608a142b
DOC: Fix typo (#9346)
Co-authored-by: Shahar Naveh <>
2022-07-11 11:30:50 -07:00
Shahar Naveh
b9f6c3e5b6
DEP: Pin version of cryptography (#9339)
* DEP: Pin version of cryptography

* Added myself to authors:)

Co-authored-by: Shahar Naveh <>
2022-07-08 12:57:48 -07:00
ohemorange
184e087edf
Prompt for username in finish_release.py (#9343)
The local machine's username may not be the same as the one on the CSS, so let's prompt for it instead.
2022-07-08 12:27:50 -07:00
Will Greenberg
1da36a9278
If a snap build times out, dump the logs (#9340) 2022-07-07 14:31:48 -07:00
Will Greenberg
2b1255cd6a
finish_release.py: fix revision regex, add more logging (#9342) 2022-07-06 17:40:27 -07:00
Alexis
6e1696ba32
Add Signed Windows Installer Workflow (#9076)
* Add Code Signing action for Windows Installer

* Clean up variable names and input

* Amend and add to documentation per PR guidelines

* Update tools/finish_release.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update tools/finish_release.py

Amend typo

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Amend release script for better work flow

- SCP commands to upload and download unsigned & signed installers from CSS

* Collapse spaces

* Update tools/finish_release.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Create new windows signer function

* Update Windows Installer Script

- Update change log
- add new function for signing and document
- @TODO Streammline SSH session

* Remove Azure and Github release methods

- Methods moved to CSS
- Reduced to a ssh function that triggers the process on a CSS

* Amend Chnagelog and Remove Unneeded Deps

* Update tools/finish_release.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Add Verison Fetch Function

- For the purpose of snap releases
- Add back package to dev extras for function

* Chaneg path in ssh command

* Amend release script

* Amend the ssh command for CSS

* Update tools/finish_release.py

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>

* Update script with proper path and subprocess call

* Update ssh command

* Correct typo in path

* Fix typo in path

* Update certbot/CHANGELOG.md

Co-authored-by: ohemorange <ebportnoy@gmail.com>

* Remove missed conflict text

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
Co-authored-by: ohemorange <ebportnoy@gmail.com>
2022-06-29 15:52:50 -07:00
alexzorin
49f21bcc9f
deps: bump pyOpenSSL in oldest pinnings (#9329) 2022-06-22 16:38:32 -07:00
Will Greenberg
828be0071e
Add new signing key (#9288)
* Add new signing key

* Update certbot/CHANGELOG.md
2022-04-28 11:04:43 -07:00
Will Greenberg
3b6f3450c2
Add --debug to docker push (#9286)
This'll (hopefully) help us debug the connectivity issues during
the deploy CI
2022-04-22 08:07:59 -07:00
Will Greenberg
9ef6110e36
Point pip to filesystem packages rather than local HTTP server (#9240) 2022-03-24 13:32:03 -07:00
alexzorin
05a9ded297
pinning: update awscli pin (#9242) 2022-03-23 15:13:05 -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
Will Greenberg
f251a13f32
Remove Windows 2016 environment, generate 64 bit installer (#9202)
* Remove Windows 2016 environment, generate 64 bit installer

* Add note to changelog

* Use win_amd64 as installer suffix

* Bump PYTHON_BITNESS to 64

* Require 64 bit Windows for the installer_build job

* Update certbot install path

* update windows test name

* Base installer suffix on PYTHON_BITNESS again

* Update changelog to request users uninstall old version
2022-03-03 19:31:03 +01:00
Brad Warren
b95deaa7e4
Use the git CLI with cargo (#9223)
Hopefully this makes things more stable. This is based on Alex's suggestion [here](https://opensource.eff.org/eff-open-source/pl/ouf996zuxjnkdxwq81bihxak7e). 

* git cli in docker

* git cli in snap

* git cli in dns snaps

* use true strings
2022-03-02 12:10:01 -08: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
1577cd8663
write docs on how to test release script (#9142)
Alexis (rightfully) wasn't sure how to test this when working on https://github.com/certbot/certbot/pull/9076. This PR documents it in the script based on what I wrote at https://github.com/certbot/certbot/pull/8351#issue-715227127 which I reverified.
2021-12-21 09:28:31 -07:00
Aaron Gable
7d3a344d43
Update py cryptography to >=2.5.0 (#9110)
* Update py cryptography to >=2.5.0

* Review feedback
2021-11-24 14:46:11 -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
alexzorin
4756b66089
docs: update intersphinx url for certbot project (#9096) 2021-11-11 09:44:59 +01:00
Brad Warren
e8265dbf9c
Add Python 3.10 support and tests (#9077)
Fixes https://github.com/certbot/certbot/issues/9058.

The changes to the CI config are equivalent to the ones made in https://github.com/certbot/certbot/pull/8460.

Other than ignoring some warnings raised by botocore, the main additional work that had to be done here was switching away from using `distutils.version.LooseVersion` since the entire `distutils` module was deprecated in Python 3.10. To do that, I took a few different approaches:

* If the version strings being parsed are from Python packages such as Certbot or setuptools, I switched to using [pkg_resources.parse_version](https://setuptools.pypa.io/en/latest/pkg_resources.html#parsing-utilities) from `setuptools`. This functionality has been available since [setuptools 8.0 from 2014](https://setuptools.pypa.io/en/latest/history.html#id865).
* If the version strings being parsed are not from Python packages, I added code equivalent to `distutils.version.LooseVersion` in `certbot.util.parse_loose_version`.
* The code for `CERTBOT_PIP_NO_BINARY` can be completely removed since that variable isn't used or referenced anywhere in this repo.

* add python 3.10 support

* make some version changes

* don't use looseversion in setup.py

* switch to pkg_resources

* deprecate get_strict_version

* fix route53 tests

* remove unused CERTBOT_PIP_NO_BINARY code

* stop using distutils in letstest

* add unit tests

* more changelog entries
2021-11-08 15:55:32 -08:00
Brad Warren
d250d34193
Change PGP keys (#9046)
* automate determining the key

* update packaging docs

* switch to new keys

* add changelog entry

* put keys in changelog
2021-10-14 14:27:15 -07:00
alexzorin
b0aa064640
dns-rfc2136: use certbot's own is_ipaddress func (#9035)
* dns-rfc2136: use certbot's own is_ipaddress func

* oldest: pin dnspython==1.15.0 (epel8 version)

* inhibit deprecationwarning for dnspython==1.15.0

* dns-rfc2136: declare minimum version of dnspython

* add changelog entry
2021-09-14 07:48:15 +10:00
Adrien Ferrand
bd5f4f2d8a
Increase minimum of josepy version to use and update the oldest contraints. (#9032)
As a follow-up to #9027, this PR increases the minimum version of `josepy` to use and updates the oldest constraints accordingly.
2021-09-10 16:08:13 -07: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
Brad Warren
ee190db235
Update oldest pyproject.toml comments (#8999)
* update oldest pyproject.toml comments

* Apply suggestions from code review

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

* improve wording

Co-authored-by: ohemorange <erica@eff.org>
2021-09-09 14:57:55 -07:00
Brad Warren
1a2d74decc
Add comment about security alerts. (#9016) 2021-09-03 06:40:18 +10:00
Brad Warren
a8a8a39ff1
upgrade pip (#9000)
This is just an oldest tests version of https://github.com/certbot/certbot/pull/8993.
2021-08-19 15:15:31 -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
b4c49cf781
Improve snapcraft remote build (#8985)
[Snapcraft 5.0](https://forum.snapcraft.io/t/release-notes-snapcraft-5-0/25751) implemented creating build IDs based on the project's contents instead of the directory path in https://github.com/snapcore/snapcraft/pull/3554. This is a feature we initially wanted, but it broke our workaround added in https://github.com/certbot/certbot/pull/8719. Our workaround is broken because now that the build ID is based on the project's contents, copying the project to a temporary directory has no effect.

This PR removes the workaround from https://github.com/certbot/certbot/pull/8719 and instead constructs a random build ID that it provides to snapcraft. This provides us with even more randomness to avoid build ID conflicts while avoiding having to copy the project to a temporary directory before every build.

* improve-remote-build

* use lowercase letters
2021-08-12 15:34:40 -07:00
Brad Warren
7b78770010
fix egg-info cleanup (#8966) 2021-08-05 07:04:05 +10: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
c372dd8aee
Remove local-oldest-requirements files (#8863)
This is part of https://github.com/certbot/certbot/issues/8787. I got a +1 from our packagers at major distros in https://github.com/certbot/certbot/issues/8761.

* remove local-oldest-requirements files

* fix tests

* fix some oldest tests

* list packages on one line in tox.ini

* add changelog entry
2021-06-01 14:46:06 -07:00
Brad Warren
968cc5801b
delete eggs before running poetry (#8865) 2021-05-31 09:03:25 +02: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
55d461392a
Remove unused tools (#8862)
* remove unused tools

* remove deactivate.py
2021-05-28 06:47:44 +10:00
Brad Warren
099c6c8b24
remove references to certbot-constraints.txt (#8858) 2021-05-24 14:17:11 -07: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