ci: Remove bip32 and test Python 3.10-3.15 - #110
BenWestgate wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6012bcf728
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| fail-fast: false | ||
| matrix: | ||
| python-version: ["3.10", "3.11", "3.12", "3.13"] | ||
| python-version: ["3.10", "3.11", "3.12"] |
There was a problem hiding this comment.
Restore testing for the advertised Python 3.13 support
When this commit lands before the separate dependency-removal change, the package will continue to advertise Python 3.13 support through both the pyproject.toml classifier and the README while neither workflow tests that interpreter. The documented coincurve installation failure is evidence that the advertised installation is already broken; removing the job merely makes CI green and allows releases to retain that unsupported claim. Keep this matrix entry while fixing the dependency, or remove the corresponding compatibility claims until support is restored.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
We should probably push one change that removes Python-bip32 and changes the Python versions to 3.10-3.15, rather than a hack job to just make CI pass while not testing what the project claims.
We need to rebase master on the cursory review ACK on blockstreamresearch/codex32 pull request for a Python reference implementation. Then keep an easy to review and audit linear history from there.
And fixing the CI and removing that dependency could be one of the first commits.
6012bcf to
2119aac
Compare
Legacy master advertises Python 3.13, but bip32 pins coincurve below 21 and fails during dependency installation. The only production use of bip32 is deriving an implicit identifier in from_seed. Require an explicit four-character identifier in that API instead, remove bip32 from package and test requirements, and test the advertised Python 3.10 through 3.15 range in both workflows. Setup-python v5 enables the 3.15 prerelease job.
2119aac to
75f6972
Compare
What
Remove
bip32from the legacy master package and test requirements.Codex32String.from_seednow requires a prefix with an explicit four-character identifier instead of calculating a default BIP32 fingerprint. Existing calls that already supply an identifier keep their behavior; calls without one now fail clearly.Restore Python 3.13 to both CI matrices and add 3.14 and prerelease 3.15.
setup-pythonv5 is needed for the 3.15 prerelease input.Why
Both master failures occur before tests or linting:
bip32pinscoincurve<21, whose build fails on Python 3.13. Removing 3.13 from CI alone would leave the advertised compatibility untested. This patch removes that dependency and tests Python 3.10–3.15. Callers creating wallet backups must supply an identifier from an independently verified wallet record; this reference API does not calculate or verify a fingerprint.Refs #7 for the separate v1 dependency removal.
Validation
git diff --checkpasses.AI-assisted implementation. Human review and a verified human signature are required before merge.