Skip to content

Prepare coincurve 22.0.0 for Python 3.14 and free threading - #225

Open
ofek wants to merge 7 commits into
masterfrom
prepare-release
Open

Prepare coincurve 22.0.0 for Python 3.14 and free threading#225
ofek wants to merge 7 commits into
masterfrom
prepare-release

Conversation

@ofek

@ofek ofek commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • prepare coincurve 22.0.0 with wheels for CPython 3.10 through 3.14 and free-threaded CPython 3.14
  • drop EOL Python 3.9 support and 32-bit Linux wheels
  • support Python 3.15 and 3.15t source builds while intentionally excluding cp315 wheels until RC1
  • remove limited-API compilation, use version-appropriate CFFI build requirements, and vendor the checked-in CFFI license only with the backend
  • replace cross-emulated ARM wheel jobs with native runners and validate the exact 48-wheel plus one-sdist release inventory
  • move benchmarks to a manual Ubuntu workflow, removing the unrelated macOS fastecdsa/GMP failure from release-gating CI

This addresses #212, #219, and #223. It incorporates the useful packaging and CI findings from #213, #214, and #224.

Validation

  • formatting, mypy, actionlint, and documentation build
  • randomized tests on Python 3.12 and Python 3.14t; all 51 tests pass under free threading
  • exact-sdist builds and tests on locally available Python 3.15 and 3.15t prereleases
  • isolated sdist/wheel build, Twine and wheel-content validation, clean wheel installation, and signing/verification smoke test
  • vendored and non-vendored CFFI wheel-content checks
  • completed 48-wheel CI matrix on native Linux, macOS, and Windows runners
  • downloaded exact CI artifacts pass Twine, wheel-content, and release-inventory validation

Prerelease testing

CI tracks the latest Python 3.15 and 3.15t development interpreters available from setup-python. It verifies the interpreter minor version and GIL mode, then builds, installs, and tests the exact release sdist on Linux, macOS, and Windows. Python 3.15 wheels remain excluded until RC1.

@codecov

codecov Bot commented Jul 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.73%. Comparing base (4285045) to head (b700db3).
⚠️ Report is 16 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #225      +/-   ##
==========================================
+ Coverage   79.40%   79.73%   +0.33%     
==========================================
  Files          13       14       +1     
  Lines         738      755      +17     
  Branches       61       61              
==========================================
+ Hits          586      602      +16     
  Misses        105      105              
- Partials       47       48       +1     
Files with missing lines Coverage Δ
src/coincurve/__init__.py 100.00% <100.00%> (ø)
src/coincurve/der.py 76.06% <100.00%> (ø)
tests/test_freethreading.py 100.00% <100.00%> (ø)

... and 14 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ofek
ofek marked this pull request as ready for review July 18, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant