Commit Graph
10771 Commits
Author SHA1 Message Date
JawshuaandGitHub 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
Will GreenbergandGitHub 399b932a86 Merge pull request #9673 from certbot/types-dns-common-get
types: CredentialsConfiguration.conf can return None
2023-04-17 17:45:00 -07:00
Alex Zorin b9ec3155f7 amend rtype 2023-04-18 08:14:11 +10:00
Alex Zorin ef5f4cae04 fix cast formatting 2023-04-18 08:13:28 +10:00
Brad WarrenandGitHub 31094bc547 rewrite coverage tests (#9669)
In addition to the speed improvements in CI, the speed improvements locally with both this https://github.com/certbot/certbot/pull/9666 which this builds on is even more significant. After it's been run once so it's had a chance to set up the different virtual environments, `tox` locally now takes 39 seconds on my laptop when it used to take 137 seconds.
2023-04-17 13:01:00 -07:00
f41673982d validate lineage name (#9644)
Fixes #6127.

* Added lineage name validity check

* Verify lineage name validity before obtaining certificate

* Added linage name limitation to cli help

* Update documentation on certificate name

* Added lineage name validation to changelog

* Use filepath seperators to determine lineagename validity

* Add unittest for private choose_lineagename method

Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
2023-04-17 12:55:20 -07:00
Brad WarrenandGitHub 996cc20cd7 remove unused envrc (#9677) 2023-04-17 02:17:55 +00:00
Brad WarrenandGitHub 20ccf8c9c9 remove development dockerfile (#9676) 2023-04-17 12:14:25 +10:00
Alex Zorin 5503d12395 types: CredentialsConfiguration.conf can return None 2023-04-16 10:43:00 +10:00
4740e20725 Rewrite tox config (#9666)
* rewrite tox config

* fix apacheconftest-with-pebble deps

* more fixes

* more fixes

* move comment up

* fix mock location

* bump cffi

* update oldest constraints

* Revert "fix mock location"

This reverts commit 561037bfad.

* fix apache test

* fix server cleanup

* fix some leaky sockets

* stop leaking sockets

* change less

* Update tox.ini

Co-authored-by: alexzorin <alex@zorin.id.au>

* Update tox.ini

Co-authored-by: alexzorin <alex@zorin.id.au>

* tweak contributing doc

---------

Co-authored-by: alexzorin <alex@zorin.id.au>
2023-04-16 10:30:59 +10:00
Brad WarrenandGitHub dc05b4da7a Increase stale operations per run (#9668)
* increase operations per run

* update comment
2023-04-13 09:18:24 +10:00
Brad WarrenandGitHub 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
9ee1eee219 Build with buildkit (#9628)
* generate multiarch images for non-architecture tags

* Update documentation related to multiarch Docker

* Remove qemu and switch to build via buildkit

* Move to multistage Dockerfile

* refactor docker script arg parsing and fix merge bugs

* removed unnecessary testing script and fixed function name

* improved quoting in shell scripts

---------

Co-authored-by: humanoid2050 <humanoid2050@monolith>
Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
Co-authored-by: humanoid2050 <humanoid2050@katana>
Co-authored-by: Brad Warren <bmw@eff.org>
2023-04-08 12:22:16 -07:00
Brad WarrenandGitHub 7a68b29140 update min cryptography (#9663) 2023-04-07 10:28:17 +10:00
Brad WarrenandGitHub a78073812c Always "pipstrap" when running pip_install.py (#9658)
Fixes https://github.com/certbot/certbot/issues/7921.

In all cases when we run `pip_install.py`, we first run `pipstrap.py`. This PR combines these two steps for convenience and to make always doing that less error prone. This will also help me with some of the `tox.ini` refactoring I'm planning to do.

I ran the full test suite on everything and tested the release script changes locally.

This change shouldn't have any effect on cryptography's setup because they install `certbot[test]` which depends on pip, setuptools, and wheel.

* always pipstrap

* use pip_install.py during releases
2023-04-05 16:43:26 -07:00
alexzorinandGitHub 45327d00c4 Merge pull request #9624 from certbot/more-stale
Increase stale frequency
2023-04-06 09:24:25 +10:00
alexzorinandGitHub 163bb9e945 Merge pull request #9656 from certbot/candidate-2.5.0
Update files from 2.5.0 release
2023-04-05 08:12:54 +10:00
Brad Warren 1fe201e320 Bump version to 2.6.0 2023-04-04 08:07:50 -07:00
Brad Warren 86c51acb91 Add contents to certbot/CHANGELOG.md for next version 2023-04-04 08:07:50 -07:00
Brad Warren 3c667e8fff Release 2.5.0 v2.5.0 2023-04-04 08:07:49 -07:00
Brad Warren 10ba4ea349 Update changelog for 2.5.0 release 2023-04-04 08:06:41 -07:00
alexzorinandGitHub df85c25da8 add dns_route53_propagation_seconds to DEPRECATED_OPTIONS (#9652)
Fixes #9651.
2023-04-03 10:20:22 -07:00
Bishop ClarkandGitHub 1bd6bef42f Update __init__.py (#9653)
Removed two en_US meta-commas to cure the spliced sentences.
2023-04-02 11:15:08 +10:00
Brad WarrenandGitHub 097af18417 remove readlink (#9649) 2023-03-31 10:02:12 +11:00
Brad WarrenandGitHub 608d731e2b Make mypy pass on our tests (#9648)
* make mypy pass on our tests

* fix grammar
2023-03-31 09:20:44 +11:00
Brad WarrenandGitHub 63fb97d8de add changelog entry (#9641) 2023-03-28 22:29:08 +00:00
Brad WarrenandGitHub c987c3f3aa remove boulder-integration.conf.sh (#9640) 2023-03-28 22:23:16 +00:00
Brad WarrenandGitHub ba3dde9384 make dns tests internal (#9639) 2023-03-29 09:10:34 +11:00
Brad WarrenandGitHub 9e30e8afa9 make tests internal (#9638)
This is the certbot-nginx version of #9625.
2023-03-28 15:01:31 -07:00
Brad WarrenandGitHub ed6bbde38f Make apache tests internal (#9637)
This is the certbot-apache version of #9625.
2023-03-28 14:55:44 -07:00
Brad WarrenandGitHub 16cc1a74be make certbot tests internal (#9627)
This is the Certbot version of https://github.com/certbot/certbot/pull/9625.
2023-03-28 14:44:55 -07:00
Brad WarrenandGitHub 6832521272 Make acme tests internal (#9625)
This is a first step towards implementing the plan I described at https://github.com/certbot/certbot/issues/7909#issuecomment-1448675456 which got a +1 from both Erica and Will. Similar changes for our other packages will be made in followup PRs to try and make this easier to review.

It may be helpful to look at https://github.com/certbot/certbot/pull/7600 when reviewing this PR where we did something similar in the past.

The value of `ignore-paths` in `.pylintrc` should work on Windows based on https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#ignore-paths and the fact that on macOS/linux, changing path delimiters to `\` still causes these directories to be ignored.

I started testing this for mypy as well, but mypy doesn't current pass for us on Windows so I didn't bother and took this opportunity to remove it from the default environments in `tox.ini`. I'll update https://github.com/certbot/certbot/issues/7803 to mention that the value of `exclude` in `mypy.ini` may need to be tweaked if anyone works on that issue.

* make acme tests internal

* no mypy-win
2023-03-28 14:02:33 -07:00
alexzorinandGitHub e10e549a95 renewal: fix key_type not being preserved on <v1.25.0 renewal configs (#9636)
Fixes #9635.
2023-03-28 08:44:19 -07:00
Brad WarrenandGitHub 208ef4eb94 remove CERTBOT_NO_PIN (#9634)
Adrien and I added this is in https://github.com/certbot/certbot/pull/6590 in response to https://github.com/certbot/certbot/issues/6582 which I wrote. I now personally think these tests are way more trouble than they're worth.

In almost all cases, the versions pinned in `tools/requirements.txt` are used. The two exceptions to this that come to mind are users using OS packages and pip. In the former, the version of our dependencies is picked by the OS and do not change much on most systems. As for pip, [we only "support it on a best effort basis"](https://eff-certbot.readthedocs.io/en/stable/install.html#alternative-2-pip).

Even for pip users, I'm not convinced this buys us much other than frequent test failures. We have our tests configured to error on all Python warnings and [we regularly update `tools/requirements.txt`](https://github.com/certbot/certbot/commits/master/tools/requirements.txt). Due to that, assuming our dependencies follow normal conventions, we should have a chance to fix things in response to planned API changes long before they make their way to our users. I do not think it is necessary for our tests to break immediately after an API is deprecated.

I think almost all other failures due to these tests are caused by upstream bugs. In my experience, almost all of them will sort themselves out pretty quickly. I think that responding to those that are not or planned API changes we somehow missed can be addressed when `tools/requirements.txt` is updated or when someone opens an issue. I personally don't think blocking releases or causing our nightly tests to fail is at all worth it here. I think removing this frequent cause of test failures makes things just a little bit easier for Certbot devs without costing us much of anything.
2023-03-27 17:01:27 -07:00
alexzorinandGitHub f004383582 avoid pyOpenSSL 23.1.0 (#9631)
Our `NO_PIN` test [fails](https://dev.azure.com/certbot/certbot/_build/results?buildId=6542&view=logs&j=ce03f7c1-1e3f-5d55-28be-f084e7c62a50&t=597fea95-d44e-53a2-5b71-76ed20bd4dde) due to https://github.com/pyca/pyopenssl/issues/1199.

This PR might strictly not be necessary once a new release of `PyOpenSSL` is available? I suppose it depends whether they yank the release.
2023-03-27 11:27:48 -07:00
alexzorinandGitHub fbf7f1f4d1 logging: use logger.warning for DeprecatedArgumentAction (#9630) 2023-03-27 11:13:16 -07:00
alexzorinandGitHub a16f316b8f logging: increase pre-argparse logging level to WARNING (#9629) 2023-03-27 11:12:18 -07:00
alexzorinandGitHub 8037321ad7 dns-route53: deprecate --dns-route53-propagation-seconds (#9619) 2023-03-24 07:28:13 +11:00
Brad Warren 6a666b0323 increase stale frequency 2023-03-23 10:11:20 -07:00
Christoph Anton MittererandGitHub 7ce1f1789e improve documentation about shell commands in hooks (#9612)
Fixes #9611.

Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
2023-03-23 07:28:26 -07:00
Anna GlasgallandGitHub 8e28e36178 Add async interface for finalization to acme.client.ClientV2 (#9622)
* Add async interface for finalization to acme.client.ClientV2

Add `begin_order_finalization()`/`poll_finalization()` to
`acme.client.ClientV2`, which are directly analogous to
`answer_challenge()`/`poll_authorizations()`. This allows us to
finalize an order and then later poll for its completion as separate
steps.

* Address code review feedback

Rename `begin_order_finalization` -> `begin_finalization` and tweak
wording of changelog entry
2023-03-23 11:09:14 +11:00
Anna GlasgallandGitHub 5d5dc429c4 acme.messages.OrderResource: Make roundtrippable through JSON (#9617)
Right now if you to_json() an `OrderResource` and later deserialize
it, the `AuthorizationResource` objects don't come back through the
round-trip (they just get de-jsonified as frozendicts and worse, they
can't even be passed to `AuthorizationResource.from_json` because
frozendicts aren't dicts). In addition, the `csr_pem` field gets
encoded as an array of integers, which definitely does not get
de-jsonified into what we want.

Fix these by adding an encoder to `authorizations` and encoder and
decoder to `csr_pem`.
2023-03-21 10:49:39 -07:00
Brad WarrenandGitHub c07b5efb7f Rewrite lock_test.py (#9614)
`lock_test.py` is a weird, heavily customized, standalone testing relic that's giving me trouble because the name currently conflicts with `certbot/tests/lock_test.py`. Moving `certbot/tests` inside the Certbot package as discussed at https://github.com/certbot/certbot/issues/7909#issuecomment-1448675456 would avoid this, however, this is at least somewhat blocked on getting that test code passing lint and mypy checks again because we run those checks on the entirety of the Certbot package 🙃 Since `lock_test.py` could probably stand to be rewritten/refactored anyway, I took this approach.

What I did is I rewrote something largely equivalent to `lock_test.py` inside Certbot's unit tests. I chose not to do this in `certbot-ci` because its not necessary to have an ACME server available. We're no longer explicitly testing things with the nginx plugin here like we were in `lock_test.py`, however, we are checking that `prepare` is called on the plugin at the right time and I added comments about the importance of checking that we lock the directory during the call to `prepare` in the Apache and nginx test code.

As a bonus, this fixes https://github.com/certbot/certbot/issues/8121.
2023-03-15 12:54:20 -07:00
Will GreenbergandGitHub 7a6752a68e Merge pull request #9601 from certbot/yaml/merge-notifications
Create Workflow for Merge Notifications
2023-03-08 14:07:53 -08:00
AlexisandGitHub 40486f3ab4 Fix indentation error 2023-03-08 09:22:17 -08:00
Brad WarrenandGitHub e3880b8912 Merge pull request #9608 from certbot/candidate-2.4.0
Candidate 2.4.0
2023-03-07 14:59:14 -08:00
Will Greenberg 242c96527b Bump version to 2.5.0 2023-03-07 13:18:07 -08:00
Will Greenberg 336ca91c26 Add contents to certbot/CHANGELOG.md for next version 2023-03-07 13:18:07 -08:00
Will Greenberg eeb88c0855 Release 2.4.0 v2.4.0 2023-03-07 13:18:06 -08:00
Will Greenberg b586672f78 Update changelog for 2.4.0 release 2023-03-07 13:17:25 -08:00