Skip to content

v2026.11.8 - #494

Open
fametrano wants to merge 1 commit into
mainfrom
release-2026.11.8
Open

fametrano wants to merge 1 commit into
mainfrom
release-2026.11.8

Conversation

@fametrano

Copy link
Copy Markdown
Member

Release v2026.11.8, which breaks one import path: the schemes are top-level modules of ecc, and ecc.ecc is removed with no alias (PR #487). RELEASE_NOTES.md gives the old and new paths. The latest PyPI releases of btclib, btclib-wallet, bip32-descriptors and btclib-node import ecc.ecc and set no upper bound on ecc, so once this is published a fresh install of each resolves it and their modules that import ecc.ecc raise ImportError; the notes tell their users to pin ecc<2026.11.8 until ISS btclib-org/btclib#2954, ISS btclib-org/btclib-wallet#729, ISS btclib-org/bip32-descriptors#139 and ISS btclib-org/btclib-node#2242 are released.

This PR sets the version to 2026.11.8, re-locks (only the project's own version line moves), and adds the release's sections of RELEASE_NOTES.md and CHANGELOG.md, written from the squash subjects since v2026.11.7. The rest of the cycle moves nothing a user sees.

Evidence

Check Result
griffe check ecc -s . -s src -a v2026.11.7, griffe 2.2.0 exit 1: src/ecc/ecc/__init__.py:0: <module>: Public object was removed, named in RELEASE_NOTES.md; check_public_api.py at the pinned commit answers covered (exit 0), and uncovered (exit 1) on main's notes
api_gaps.py at btclib-org/.github 5be4b0f (the commit release.yml pins), against v2026.11.7 exit 0, no output
What neither tool compares, read by hand since v2026.11.7 outside the removed ecc/ecc/__init__.py, the src diff adds or removes no def, class or @overload line
Release assets and their verification unchanged: release.yml and .github/actions have no commit since v2026.11.7, so file names, signer and --source-ref stay; nothing to name in RELEASE_NOTES.md
deps-latest on main d4b5c0d run 42463586470: success, each of its 8 jobs success. Its drift is left to Dependabot, as RELEASING.md says; no uv lock --upgrade here
TestPyPI rehearsal due: the cycle moved test.yml and pypi-install.yml, which release.yml calls (their smoke tests write from ecc import dsa, PR #487), and the wheel's modules move from ecc/ecc/ to ecc/. release.yml, .github/scripts, .github/actions and [tool.uv.build-backend] did not change. griffe has a finding, so RELEASING.md has it rehearsed from this branch, after the notes are written. Dispatched from this branch at c35cc87: run 42464628527, every job before the testpypi approval green, waiting on that approval. e16d061 differs from c35cc87 by one sentence of RELEASE_NOTES.md
Gates on c35cc87, under the gate lock pytest 0 (15719 passed, 177 skipped, coverage 100%); pre-commit 0; docs -n -W 0, with the unresolved-link grep 0 and check_included_links.py 0
Sign-off script on d4b5c0d..c35cc87 exit 0; control on c1786962edc1 exits 1
Local review dedicated reviewer: CLEARED c35cc87; e16d061 amends one sentence of RELEASE_NOTES.md the reviewer asked for (import btclib succeeds, the module importing ecc.ecc raises) and nothing else; pre-commit on it exits 0
Read the Docs builds page (API) build 35728688 of latest at d4b5c0d: finished, success

No pull request is open in btclib-org/ecc, so none touches the release path and none is left out.

pypi-install.yml keeps its ecc.ecc fallback until PyPI serves this release; its comment says the fallback goes then.

The fresh review in the other client did not run. Codex answers: "ERROR: Your workspace is out of credits. Add credits to continue."

🤖 Generated with Claude Code

Write the v2026.11.8 sections of CHANGELOG.md and RELEASE_NOTES.md, set
the version to 2026.11.8, and re-lock.

The release breaks one import path: the schemes are top-level modules of
ecc, and ecc.ecc is removed (ISS #482). RELEASE_NOTES.md
gives the old and new paths, and names the dependents whose latest
releases on PyPI still import ecc.ecc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ferdinando Ametrano <ferdinando@ametrano.net>
@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Compatibility
    • The ecc.ecc import path is no longer available. Update imports to use the published scheme modules; attempts to use the old path will raise ImportError.
    • If you use btclib, btclib-wallet, bip32-descriptors, or btclib-node, pin ecc to a version earlier than 2026.11.8 until those packages release updated imports.
  • Documentation
    • Updated the changelog and release notes for version 2026.11.8.

This release-preparation change sets the project version to 2026.11.8 and adds release notes and a changelog entry. The release notes document the ecc.ecc import removal, replacement imports, and a temporary version pin for named dependent packages.

Changes: Release preparation

Layer / File(s) Summary
Document and identify the release
RELEASE_NOTES.md, CHANGELOG.md, pyproject.toml
The release notes describe the ecc.ecc import removal, replacement imports, and a temporary pin for dependent packages. The changelog records import, test, README, contribution, and review changes. The project version changes from 2026.12 to 2026.11.8.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Possibly related issues

Possibly related PRs

Suggested labels: api-break

Merge Risk: Minimal · up to e16d0

This release prepares v2026.11.8, which intentionally removes the ecc.ecc import path. The release notes document the removal, the replacement imports and a temporary version pin for affected packages, so no merge-blocking risk remains.

Architecture risk: Low · up to e16d0

The change affects 3 systems.

Changed systems: CHANGELOG.md, pyproject.toml, RELEASE_NOTES.md

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — CHANGELOG.md (service) was modified; 1 changed file maps to changed impact.
  • observed — pyproject.toml (service) was modified; 1 changed file maps to changed impact.
  • observed — RELEASE_NOTES.md (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in CHANGELOG.md: Adds the v2026.11.8 release entry documenting scheme imports as top-level ecc modules, removal of the ecc.ecc path, and imports of diffie_hellman and second_generator from ecc.dh and ecc.pedersen.
  • observed — Modified behavior in CHANGELOG.md: Adds changelog documentation that tests walk _var functions at any depth, including *args and **kwargs, and that name-contract tests use btclib's walks, including validate_ and async def.
  • observed — Modified behavior in CHANGELOG.md: Adds changelog documentation that README links use absolute paths to resolve on PyPI while documentation links remain local.
  • observed — Modified behavior in CHANGELOG.md: Adds a changelog entry stating that README status badges move to a closing Status section.
Pre-merge checks: Passed 3 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Title check Inconclusive The title "v2026.11.8" names only the release version. The changeset does set the project version to 2026.11.8 (pyproject.toml) and adds the matching release sections, so the title relates to the main… The title meets the stated requirement only in part. Consider a title that names the release and the breaking change, for example "Release v2026.11.8: remove ecc.ecc import path". Also check the title against the organization standard at th…
Passed Passed checks: 3 passed

Check name Status Explanation
Description check Passed The description is directly related to the changeset. It states the release version, the removal of the ecc.ecc import path, the release notes and changelog additions, the version bump, and the verifi…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description is directly related to the changeset. It states the release version, the removal of the ecc.ecc import path, the release notes and changelog additions, the version bump, and the verification evidence. It also covers the downstream packages affected by the breaking change.

Full details: Title check

Explanation

The title "v2026.11.8" names only the release version. The changeset does set the project version to 2026.11.8 (pyproject.toml) and adds the matching release sections, so the title relates to the main change. However, it does not say the release removes the ecc.ecc import path, which is the breaking change that matters most. The title meets the requirement by reference to the version bump, but it gives little detail about the change.

Resolution

The title meets the stated requirement only in part. Consider a title that names the release and the breaking change, for example "Release v2026.11.8: remove ecc.ecc import path". Also check the title against the organization standard at the linked URL in <title_check_requirements>, which the review context did not show.

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between d4b5c0d and e16d061.

Files ignored due to path filters: 1

  • uv.lock is excluded by !**/*.lock
Files selected for processing: 3

  • CHANGELOG.md
  • RELEASE_NOTES.md
  • pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.

@read-the-docs-community

Copy link
Copy Markdown

Documentation build overview

📚 ecc | 🛠️ Build #35730697 | 📁 Comparing e16d061 against latest (d4b5c0d)

  🔍 Preview build  

2 files changed
± changelog_link.html
± release_notes_link.html

This branch has not been deployed

No deployments
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