Skip to content

feat: enable building as py3-none wheel - #6

Merged
akashlevy merged 1 commit into
mainfrom
donn/py3_none_wheel
Sep 1, 2026
Merged

feat: enable building as py3-none wheel#6
akashlevy merged 1 commit into
mainfrom
donn/py3_none_wheel

Conversation

@donn

@donn donn commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator
  • also build prunefl as manylinux wheels installable by PIP
  • drop version that has never been updated for CalVer
  • drop Nix derivation in favor of a shell

@donn
donn force-pushed the donn/py3_none_wheel branch from f9d678c to abb354c Compare August 28, 2026 07:38
@greptile-apps

greptile-apps Bot commented Aug 28, 2026

Copy link
Copy Markdown

Greptile Summary

The PR replaces native tarball releases with a custom PEP 517 backend that builds platform wheels, adopts date-based versions, and replaces the packaged Nix derivation with a development shell.

  • Adds sdist and binary-wheel generation plus a Python console-script wrapper.
  • Consolidates C++ testing, wheel building, GitHub releases, and download-server publication into one workflow.
  • Reworks CMake version-source generation and removes the static VERSION file.
  • Removes the Nix flake/package and adds shell.nix.

Confidence Score: 3/5

The PR is not safe to merge until the wheel backend parses successfully and passes the selected package version into the binary build.

Every packaging operation imports a backend containing an invalid f-string, and after that is corrected the current CMake invocation still embeds a date rather than the collision-resolved wheel version.

Files Needing Attention: wheel_build/init.py, CMakeLists.txt

Important Files Changed

Filename Overview
wheel_build/init.py Adds the custom packaging backend, but an invalid f-string prevents import and version propagation would desynchronize wheel and binary versions.
CMakeLists.txt Replaces VERSION-file generation with a pre-build date/version generator whose value must be supplied correctly by packaging callers.
.github/workflows/ci.yml Consolidates testing, wheel builds, releases, and server uploads, but its wheel path currently reaches the broken backend.
pyproject.toml Selects the new in-tree PEP 517 backend and declares its build dependencies.
misc/make_version_cc.py Generates the C++ version symbol from an argument or falls back to the current date.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Event[Push, pull request, or manual run] --> Tests[C++ build and tests]
  Event --> Version[Choose unused CalVer]
  Tests --> Wheels[cibuildwheel]
  Version --> Wheels
  Wheels --> Backend[PEP 517 wheel_build backend]
  Backend --> CMake[Configure and build prunefl]
  CMake --> Package[Platform wheel]
  Package --> Artifacts[Upload artifacts]
  Artifacts --> Release[GitHub release on non-PR runs]
  Release --> Server[Silimate download server]
Loading

Reviews (1): Last reviewed commit: "feat: enable building as py3-none wheel" | Re-trigger Greptile

Comment thread wheel_build/__init__.py Outdated
Comment thread wheel_build/__init__.py Outdated
Comment thread wheel_build/__init__.py
@donn
donn force-pushed the donn/py3_none_wheel branch 5 times, most recently from fb8d775 to 1e3cf43 Compare August 28, 2026 11:55
Comment thread .github/workflows/release.yml
@donn
donn force-pushed the donn/py3_none_wheel branch 4 times, most recently from 79851ae to 98dc5e3 Compare August 31, 2026 08:01
- also build prunefl as manylinux wheels installable by PIP
- drop version that has never been updated for CalVer
- drop Nix derivation in favor of a shell
@donn
donn force-pushed the donn/py3_none_wheel branch from 98dc5e3 to 45edde5 Compare August 31, 2026 08:01
@donn
donn requested a review from akashlevy August 31, 2026 08:04
@akashlevy
akashlevy merged commit b5a06a8 into main Sep 1, 2026
6 checks passed
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.

2 participants