chore: close the cryptography advisories and stop the SSL tests skipping - #158
Merged
Conversation
All of this belongs inside 3.0.0 rather than a release after it: nothing has been tagged yet, so there is no published artifact to correct. Add `cryptography` to the dev group explicitly. It reached the environment only as a transitive of `twine -> keyring -> secretstorage`, which carries `sys_platform == 'linux'` -- so tests/test_ssl_context.py ran in CI and skipped silently on every macOS checkout, which reads in the summary line exactly like passing. Measured rather than assumed: 12 skips before, 11 after, and that module's 8 tests now execute locally. Floor it at 50.0.0. Four advisories cover the range below that, the highest of them first patched there. This supersedes #154, whose lock-only diff was cut against the 2.6.4 lock and no longer applies. The floor is the load-bearing half: uv.lock is not published, so it binds nobody who checks this repository out, whereas a floor is a constraint the resolver enforces for everyone. No user was exposed by any of this. `cryptography` is not a runtime dependency -- 3.0.0 requires httpx, paho-mqtt and pyyaml, and the only package in the lock that pulls cryptography is a dev-group transitive. Dependabot reports the alerts as `runtime` scope because it cannot read uv's dependency-groups out of uv.lock. Also add the 3.0.0 `Fixed` entry for the CA-endpoint 429 retry, credited to @brunocramos in #148. The entry was absent, so the release described none of that change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three changes that belong inside 3.0.0 rather than in a release after it — nothing has been tagged yet, so there is no published artifact to correct.
cryptographybecomes an explicit dev dependencytests/test_ssl_context.py(added in #148) mints an AKI-less CA and runs a real TLS handshake against it. It needscryptography, which was never declared — it reached the environment only as a transitive oftwine -> keyring -> secretstorage, andsecretstoragecarriessys_platform == 'linux'.The consequence is the failure mode DEVELOPMENT.md already warns about: the module ran on
ubuntu-latestand skipped silently on every macOS checkout, which reads in the summary line exactly like passing.Measured rather than assumed — 12 skips before, 11 after, and that module's 8 tests now execute locally:
Floored at 50.0.0, superseding #154
Four advisories cover the range below 50.0.0 (one medium, three high), the highest of them first patched exactly there:
<= 48.0.0<= 48.0.0>= 44.0.0, < 50.0.0< 48.0.1This supersedes #154, whose lock-only diff was cut on 2026-08-04 against the 2.6.4 lock and no longer applies — main's lock has since been replaced wholesale, and that PR is
CONFLICTING.The floor is the load-bearing half of this, not the lock bump.
uv.lockis not published and binds nobody who checks this repository out; a floor is a constraint the resolver enforces for everyone, and it encodes why 50.0.0 rather than leaving it as whatever the lock last resolved.No user was exposed, and no extra release is needed
cryptographyis not a runtime dependency. 3.0.0 requireshttpx,paho-mqttandpyyaml; the only package in the lock that pullscryptographyis a dev-group transitive, on Linux only. It appears in no wheel's metadata.Dependabot reports all four alerts as
scope: runtimebecause it cannot read uv's[dependency-groups]out ofuv.lock. That label is wrong for this repository.Changelog
The 3.0.0 entry had no
Fixedsection at all, so the release described none of the CA-endpoint 429 retry that landed in #148. Added, written against 2.6.4 per the changelog policy and credited to @brunocramos.The
VERIFY_X509_STRICTclear from that same PR is deliberately not listed: it changes nothing observable on any code path this library takes, and the policy excludes changes that are not outward-facing.Verification
Full hook set and suite, on
cryptography==50.0.0: