This release is hopefully one of the last major tags before a more stable CertMagic 1.0. It includes a number of breaking changes (for the better, I promise) -- so please pay attention:
- ⚠️ All storage methods now require
context.Context
passed in. We also added it toCleanUpOwnLocks()
and several other functions that end up calling Storage method (e.g.CacheUnmanagedTLSCertificate()
). Your editor, in combination with gopls (the Go language server) should be able to quickly tell you where context is missing. - ⚠️ Storage methods now return
fs.ErrNotExist
if a file or key is not found, insteadcertmagic.ErrNotExist
, which has been removed. (Theio/fs
package did not exist when CertMagic was first written.) - ⚠️
ACMEManager
has been renamed toACMEIssuer
, andCertificateManager
has been renamed toManager
. These renames make naming more consistent and accurate. - Certificate events now provide more useful, actionable information. See #150.
I have personally submitted PRs to the more popular known storage implementations as a courtesy to help deal with the breaking changes.
The nuances of the logic in preparing for DNS challenges have changed slightly, hopefully it will work in more environments.
Thanks to all who contributed! Sorry for any inconvenience with the breaking changes; that's the joy of pre-1.0 libraries. We're almost there, though. It's been 5 years and we might finally be starting to get good at
What's Changed
- storage: Require fs.ErrNotExist (fix #168) by @mholt in #170
- Propagate context in the Storage interface methods by @hairyhenderson in #155
- Fix crash because of a zero value cert in cache by @skeetmtp in #177
- Always call checkDNSPropagation in DNS01Solver by @crccw in #179
- Provide more detailed information in certificate events by @francislavoie in #150
New Contributors
- @hairyhenderson made their first contribution in #155
- @skeetmtp made their first contribution in #177
Full Changelog: v0.15.4...v0.16.0