infra: publish canopy-cli to PyPI on tag#27
Merged
Conversation
- pyproject.toml: name=canopy-cli (canopy is taken on PyPI), add classifiers + project.urls - .github/workflows/publish.yml: tag-triggered build + OIDC publish via trusted publisher - CLI command names (canopy, canopy-mcp) unchanged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
canopy-cli(the namecanopyis already taken on PyPI by an unrelated project). Executable names (canopy,canopy-mcp) are unchanged.[project.urls]+ PyPI classifiers so the PyPI listing has the right metadata..github/workflows/publish.yml— tag-triggered (v*) build + OIDC publish via PyPI trusted publishing. Workflow guards against tag/version mismatch.Why
Currently the only install path is cloning the repo and running
pip install -e .. Publishing to PyPI unlockspipx install canopy-cli, which is the cross-platform single-command install we need before doing the VSCode extension install-decoupling work.Release flow once merged
canopy-cliare configured (done).git tag v3.1.0 && git push origin v3.1.0→ workflow builds sdist + wheel, OIDC-authenticates, publishes.Test plan
python -m buildruns cleanly locally →canopy_cli-3.1.0.tar.gz+canopy_cli-3.1.0-py3-none-any.whlpython -m twine check dist/*→ both PASSEDv3.1.0tag and verify workflow publishes to PyPIpipx install canopy-cliworks from a clean machine andcanopy --versionreturns 3.1.0