Skip to content

infra: publish canopy-cli to PyPI on tag#27

Merged
ashmitb95 merged 1 commit into
mainfrom
publish-canopy-cli-to-pypi
May 31, 2026
Merged

infra: publish canopy-cli to PyPI on tag#27
ashmitb95 merged 1 commit into
mainfrom
publish-canopy-cli-to-pypi

Conversation

@ashmitb95

Copy link
Copy Markdown
Owner

Summary

  • Rename distribution to canopy-cli (the name canopy is already taken on PyPI by an unrelated project). Executable names (canopy, canopy-mcp) are unchanged.
  • Add [project.urls] + PyPI classifiers so the PyPI listing has the right metadata.
  • Add .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 unlocks pipx 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

  1. PyPI account + pending publisher for project canopy-cli are configured (done).
  2. git tag v3.1.0 && git push origin v3.1.0 → workflow builds sdist + wheel, OIDC-authenticates, publishes.
  3. PyPI creates the project on first successful publish.

Test plan

  • python -m build runs cleanly locally → canopy_cli-3.1.0.tar.gz + canopy_cli-3.1.0-py3-none-any.whl
  • python -m twine check dist/* → both PASSED
  • After merge: push v3.1.0 tag and verify workflow publishes to PyPI
  • Verify pipx install canopy-cli works from a clean machine and canopy --version returns 3.1.0

- 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
@ashmitb95 ashmitb95 merged commit 06b2b7e into main May 31, 2026
4 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.

1 participant