Skip to content

pyln-proto: use coincurve 21 for python <=3.13 and add self-compiled wheels for python 3.14#9303

Open
daywalker90 wants to merge 1 commit into
ElementsProject:masterfrom
daywalker90:coincurve-wheels-3.14
Open

pyln-proto: use coincurve 21 for python <=3.13 and add self-compiled wheels for python 3.14#9303
daywalker90 wants to merge 1 commit into
ElementsProject:masterfrom
daywalker90:coincurve-wheels-3.14

Conversation

@daywalker90

Copy link
Copy Markdown
Collaborator

coincurve 20 is broken for all python versions since it now pulls in a transient dependency that turned a warning into an error:

× Failed to build `coincurve==20.0.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 7)

      [stderr]
      ERROR: Use build.verbose instead of cmake.verbose for scikit-build-core >= 0.10

      hint: This usually indicates a problem with the package or the build environment.
  help: `coincurve` (v20.0.0) was included because `cln-meta-project` (v0.1.0) depends on `pyln-proto` (v26.6.2) which depends on `coincurve`

coincurve 21 does not have this issue but it does have another issue with python 3.14:

Resolved 1 package in 289ms
  × Failed to build `coincurve==21.0.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 1)

      [stderr]
      Traceback (most recent call last):
        File "<string>", line 11, in <module>
          wheel_filename = backend.build_wheel("/home/user/.cache/uv/builds-v0/.tmpfcwWrQ", {}, None)
        File "/home/user/.cache/uv/builds-v0/.tmpNmyA8G/lib/python3.14/site-packages/hatchling/build.py", line 58, in build_wheel
          return os.path.basename(next(builder.build(directory=wheel_directory, versions=["standard"])))
                                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/user/.cache/uv/builds-v0/.tmpNmyA8G/lib/python3.14/site-packages/hatchling/builders/plugin/interface.py", line 149, in build
          build_hook.initialize(version, build_data)
          ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
        File "/home/user/.cache/uv/sdists-v9/pypi/coincurve/21.0.0/sA4L50tQMHeL37XJdHnME/src/hatch_build.py", line 34, in initialize
          raise RuntimeError(message)
      RuntimeError: Expected exactly one LICENSE file in cffi distribution, got 0

      hint: This usually indicates a problem with the package or the build environment.

coincurve for python 3.14 is fixed upstream but there is no release yet, so we use self-compiled wheels just for python 3.14

Changelog-None

Important

26.09 FREEZE August 5th: Non-bugfix PRs not ready by this date will wait for 26.12.

RC1 is scheduled on August 17th

The final release is scheduled for September 7th.

Checklist

Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:

  • The changelog has been updated in the relevant commit(s) according to the guidelines.
  • Tests have been added or modified to reflect the changes.
  • Documentation has been reviewed and updated as needed.
  • Related issues have been listed and linked, including any that this PR closes.
  • Important All PRs must consider how to reverse any persistent changes for tools/lightning-downgrade

…wheels for python 3.14

coincurve 20 is broken for all python versions since it now pulls in a transient dependency that turned
a warning into an error:

```
× Failed to build `coincurve==20.0.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 7)

      [stderr]
      ERROR: Use build.verbose instead of cmake.verbose for scikit-build-core >= 0.10

      hint: This usually indicates a problem with the package or the build environment.
  help: `coincurve` (v20.0.0) was included because `cln-meta-project` (v0.1.0) depends on `pyln-proto` (v26.6.2) which depends on `coincurve`
```

coincurve 21 does not have this issue but it does have another issue with python 3.14:

```
Resolved 1 package in 289ms
  × Failed to build `coincurve==21.0.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 1)

      [stderr]
      Traceback (most recent call last):
        File "<string>", line 11, in <module>
          wheel_filename = backend.build_wheel("/home/user/.cache/uv/builds-v0/.tmpfcwWrQ", {}, None)
        File "/home/user/.cache/uv/builds-v0/.tmpNmyA8G/lib/python3.14/site-packages/hatchling/build.py", line 58, in build_wheel
          return os.path.basename(next(builder.build(directory=wheel_directory, versions=["standard"])))
                                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/user/.cache/uv/builds-v0/.tmpNmyA8G/lib/python3.14/site-packages/hatchling/builders/plugin/interface.py", line 149, in build
          build_hook.initialize(version, build_data)
          ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
        File "/home/user/.cache/uv/sdists-v9/pypi/coincurve/21.0.0/sA4L50tQMHeL37XJdHnME/src/hatch_build.py", line 34, in initialize
          raise RuntimeError(message)
      RuntimeError: Expected exactly one LICENSE file in cffi distribution, got 0

      hint: This usually indicates a problem with the package or the build environment.
```

coincurve for python 3.14 is fixed upstream but there is no release yet, so we use self-compiled wheels just for python 3.14

Changelog-None
daywalker90 referenced this pull request Jul 10, 2026
…243c4ef5c5

```
 DEBUG: DEBUG ERROR: Use build.verbose instead of cmake.verbose for scikit-build-core >= 0.10
 DEBUG:   × Failed to build `coincurve==20.0.0`
 DEBUG:   ├─▶ The build backend returned an error
 DEBUG:   ╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 7)
 DEBUG:
 DEBUG:       [stderr]
 DEBUG:       ERROR: Use build.verbose instead of cmake.verbose for scikit-build-core
 DEBUG:       >= 0.10
 DEBUG:
 DEBUG:
 DEBUG: hint: `coincurve` (v20.0.0) was included because `testpluguv` (v0.1.0) depends on `pyln-client` (v26.6.2) which depends on `pyln-proto` (v26.6.2) which depends on `coincurve`
```

This error is caused because coincurve v20 depends on scikit-build-core>=0.9.0 and they did a new release where
using cmake.verbose is no longer a warning but an error. coincurve v21 is using the correct build.verbose but is not
working with python 3.14. So we update coincurve to current master until the next release.

Changelog-None
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