ci: Publish the CLI to PyPI as flagsmith-cli - #99
Conversation
Wheels ship the GoReleaser binary in .data/scripts, so uv/pip/pipx put flagsmith on PATH with no Python shim. Published from a separate job via PyPI trusted publishing, keeping third-party code out of the attesting job.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds a Python wheel builder for GoReleaser binaries. It converts release tags to PEP 440 versions, maps supported targets to platform tags, embeds executables, and creates deterministic wheel metadata. Pull-request CI validates snapshot wheels. Release CI uploads wheels and publishes them to PyPI with trusted publishing. The README documents installation with Estimated code review effort: 3 (Moderate) | ~30 minutes Merge Risk: 🔵 Low · up to The release packaging may advertise macOS compatibility beyond what the built binary supports, which could cause installation or execution failures for some users; mergeable with explicit owner follow-up to align the Darwin wheel tags with supported macOS versions. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 152e9871-568f-4159-9e60-00f47cee5952
📒 Files selected for processing (5)
.github/workflows/pull-request.yml.github/workflows/release.yml.gitignoreREADME.mdpackaging/pypi/build_wheels.py
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.
Go 1.26, which go.mod pins and the release job builds with, requires macOS 12. A macOS wheel tag is a minimum, so 10.13/11 tags let pip install onto systems the binary cannot run on.
Ships the release binaries as PyPI wheels, so
uv tool install flagsmith-cliputsflagsmithon PATH.The wheels carry no Python code. Each one holds the GoReleaser binary in
flagsmith_cli-<version>.data/scripts/flagsmith, which every installer (uv, pip, pipx) copies straight into the environment'sbindirectory.This will enable:
uv tool install flagsmith-cliuvx --from flagsmith-cli flagsmithpip install flagsmith-cliI've added a trusted publisher on PyPI for
flagsmith-cli: