Skip to content

pytket: Add version 2.18.1 - #2997

Draft
luhenry wants to merge 3 commits into
mainfrom
pytket
Draft

luhenry wants to merge 3 commits into
mainfrom
pytket

Conversation

@luhenry

@luhenry luhenry commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Compiles tket, Quantinuum's C++ quantum circuit compiler core, plus its nanobind bindings. Upstream publishes no riscv64 wheel.

Mirrors upstream's release.yml and linuxbuildwheel.

Differs from upstream

  • Builds tket and its Conan dependency closure (boost, eigen, nlohmann_json, symengine, gmp, the tket utility libs, nanobind) once, then loops interpreters for the bindings only - upstream's private binary cache makes a fresh per-interpreter container cheap, riscv64 has none.
  • Stages LICENSE files for the statically-linked boost/eigen/nlohmann_json/symengine/gmp/nanobind/tsl-robin-map/fast_float - none ship one in the wheel.

Testing

  • same as upstream

License: Wheel statically links gmp (LGPL-3.0-or-later); symengine/nanobind/the rest are permissive (MIT/BSD-3/BSL-1.0/MPL-2.0). None ship their licence text in the wheel, so the build adds it.

Built on cp310/cp311/cp312 (cp312 is upstream's stable-ABI build, covering cp312-cp314).

Quantinuum's pytket wraps the TKET C++ quantum circuit compiler core
(quantinuum/tket monorepo). tket/boost/eigen/nlohmann_json/symengine/gmp/
nanobind resolve via Conan, mostly from Quantinuum's private jfrog remote,
which carries no riscv64 binaries, so every native dependency builds from
source (header-only boost/eigen/nlohmann_json, generic-C gmp, portable
symengine/nanobind - no SIMD or riscv64-gated code anywhere in the chain).
Mirrors upstream's own release.yml/linuxbuildwheel, but builds tket and its
C++ dependency closure once per job instead of once per interpreter (no
private binary cache to make repeat builds cheap here), then loops
cp310/cp311/cp312 to build only pytket's nanobind bindings against the
cached libraries.
luhenry added a commit that referenced this pull request Oct 13, 2026
luhenry added a commit that referenced this pull request Oct 13, 2026
…ebsite.yml run

The cancel-in-progress expression made every pull_request-triggered run of
this workflow fail instantly with zero jobs scheduled (confirmed across
unrelated PRs: #2993, #2994, #2995, #2996, #2997, and the docs-update bot
PR #2915), regardless of branch. Reverting to the known-good static false.
@luhenry
luhenry marked this pull request as draft October 13, 2026 09:26
setuptools stores license_files under <dist-info>/licenses/ (PEP 639
layout), so the post-build check never matched the LICENSE.* prefixes.
build_wheels uploads a single pytket-<version>-manylinux_riscv64 artifact, so the pytket-<version>-*-manylinux_riscv64 pattern matched nothing and publish failed with "No wheels found in dist".

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