Skip to content

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

Merged
akashlevy merged 6 commits into
mainfrom
donn/py3_none_wheel
Sep 3, 2026
Merged

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

Conversation

@donn

@donn donn commented Aug 31, 2026

Copy link
Copy Markdown
Contributor
  • update release CI to build wheels instead of tarballs

TODO:

  • fix macOS build
  • fix tclreadline's availability

- update release CI to build wheels instead of tarballs
@donn
donn marked this pull request as draft August 31, 2026 12:19
@greptile-apps

greptile-apps Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR replaces native release tarballs with platform-specific Python wheels and adds a custom PEP 517 backend that packages the Silisizer executable and Tcl runtime.

  • Builds and smoke-tests Linux x86_64 and macOS arm64 wheels through cibuildwheel.
  • Adds wheel metadata, console-script integration, native dependency preparation, and release publishing.
  • Updates CMake and Homebrew configuration for Tcl readline discovery across supported platforms.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains.

No blocking failure remains.

Important Files Changed

Filename Overview
.github/workflows/release.yml Replaces tarball publication with cibuildwheel-based Linux and macOS wheel builds, an installed-wheel smoke test, and wheel publishing.
wheel_build/init.py Implements the PEP 517 backend, native build orchestration, Tcl runtime packaging, metadata generation, and checksum-verified CUDD fallback.
wheel_build/silisizer/main.py Adds the installed console entry point that configures the bundled Tcl runtime and executes the packaged native binary.
CMakeLists.txt Moves Tcl readline discovery into a dedicated CMake module and uses the repository-level module directory.
cmake/FindTclReadline.cmake Encapsulates Tcl readline library and header discovery for native and wheel builds.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Source[Silisizer source] --> Backend[Custom PEP 517 backend]
  Backend --> Native[CMake native build]
  Backend --> Tcl[Tcl runtime files]
  Native --> Wheel[Platform wheel]
  Tcl --> Wheel
  Wheel --> Test[Isolated cibuildwheel smoke test]
  Test --> Artifact[Uploaded wheel artifact]
  Artifact --> Release[GitHub release and download server]
Loading

Reviews (4): Last reviewed commit: "bugfix: integrity check if wheel_build i..." | Re-trigger Greptile

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Comment thread wheel_build/before_all.sh Outdated
@donn
donn force-pushed the donn/py3_none_wheel branch 5 times, most recently from 7271fbf to 1051c05 Compare September 1, 2026 10:09
- ci: install darwin dependencies via homebrew (+ tap for tcl-readline)
- cmake: fix module path, symlink missing module, and isolate tcl-readline finding behavior so it can be used standalone
- wheel_build: build cudd from source if cannot be found by cmake
@donn
donn force-pushed the donn/py3_none_wheel branch from 1051c05 to 1ee56b3 Compare September 1, 2026 10:17
- add brewfile
- unify how the macos setup works across ci.yml and release.yml
@donn
donn marked this pull request as ready for review September 2, 2026 04:24
Comment thread wheel_build/__init__.py Outdated
@donn

donn commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

@greptile-apps re-review. ignore the release race for now- only one branch does releases

Comment thread Brewfile Outdated
@donn
donn requested a review from akashlevy September 3, 2026 06:47
@akashlevy
akashlevy merged commit e6d6ec1 into main Sep 3, 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