golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
124.12k stars 17.68k forks source link

x/crypto/acme: delete a bunch of ACMEv1 code #46654

Closed bradfitz closed 2 years ago

bradfitz commented 3 years ago

LetsEncrypt finally turned off ACMEv1 the other day.

AFAIU, they're the only CA who supported pre-RFC ACMEv1.

golang.org/x/crypto/acme contains both ACMEv1 and ACMEv2 clients and is pretty hard to read as a result. (both as a user reading godoc, and reading the code)

I propose we keep API compatibility but delete all the v1 code and do everything possible to hide (perhaps via embedding unexported types), deemphasize, or warn against its use in the godoc. And return errors if it's used.

And then rename a bunch of internal methods that have "RFC" in their name to drop the RFC suffix.

If there are no objections, I can send a beautifully red CL.

/cc @x1ddos, @FiloSottile @dmitshur

bradfitz commented 3 years ago

(Also in the acme/autocert package)

dmitshur commented 3 years ago

Also CC @rolandshoemaker via owners.

bradfitz commented 3 years ago

Oh, maybe we can do even better and nuke all the old symbols, as the package comment says:

This package is a work in progress and makes no API stability promises

gopherbot commented 3 years ago

Change https://golang.org/cl/342449 mentions this issue: acme: remove support for pre-RFC 8555 ACME spec

rsc commented 3 years ago

Not sure about deleting old symbols and breaking builds but deleting the code seems like a win. If we just delete the code, that probably doesn't have to go through the proposal process.

rsc commented 3 years ago

This proposal has been added to the active column of the proposals project and will now be reviewed at the weekly proposal review meetings. — rsc for the proposal review group

rsc commented 3 years ago

This seems like a likely accept, but can we leave the exported symbols around with stub implementations that panic? I'd rather not break builds that were trying to do both v1 and v2.

rsc commented 3 years ago

Based on the discussion above, this proposal seems like a likely accept. — rsc for the proposal review group

rsc commented 3 years ago

No change in consensus, so accepted. 🎉 This issue now tracks the work of implementing the proposal. — rsc for the proposal review group

gopherbot commented 2 years ago

Change https://golang.org/cl/380314 mentions this issue: acme: remove support for pre-RFC 8555 ACME spec