Skip to content

rename to cacp-protocol + add release.yml workflow#7

Merged
zenprocess merged 1 commit into
mainfrom
feat/rename-to-cacp-protocol-publish
Apr 23, 2026
Merged

rename to cacp-protocol + add release.yml workflow#7
zenprocess merged 1 commit into
mainfrom
feat/rename-to-cacp-protocol-publish

Conversation

@zenprocess
Copy link
Copy Markdown
Owner

Why

PyPI's cacp slot is occupied by an unrelated project — Sylwester Czmil's "Classification Algorithms Comparison Pipeline" v1.0.4. We can't publish under that name without colliding at both the dist-name AND import level.

What

  • Distribution name: cacp-protocol
  • Import name: cacp_protocol

Pure mechanical rename — no behavioral change. 42 tests pass (run with cd cacp-python && PYTHONPATH=src pytest).

Files

  • src/cacp/{__init__,models,parser}.pysrc/cacp_protocol/...
  • All imports updated: from cacp.Xfrom cacp_protocol.X
  • pyproject.toml updates name = "cacp-protocol"
  • README install + usage examples updated; "Naming" callout explains the collision
  • .gitignore added (was missing — __pycache__ slipped into the first amend before this fix)

Release workflow added

.github/workflows/release.yml:

  • Triggers on v* tag push
  • Verifies pyproject version matches the tag (catches the v5.1.3-class drift switchyard hit)
  • Builds sdist + wheel via python -m build
  • Publishes via pypa/gh-action-pypi-publish with PyPI trusted-publisher (OIDC, no token in repo)

Operator next steps to ship v0.1.0

  1. Merge this PR
  2. One-time PyPI setup:
    • On pypi.org, register cacp-protocol (currently unclaimed — HTTP 404 on /pypi/cacp-protocol/json confirmed)
    • Add a trusted-publisher entry: owner zenprocess, repo cacp, workflow release.yml, environment pypi
  3. git tag v0.1.0 && git push --tags — workflow auto-publishes

If trusted-publisher isn't viable, fallback path documented in workflow comments — replace with: block with password: \${{ secrets.PYPI_API_TOKEN }}.

Unblocks

switchyard CACP consolidation epic (#1015), spec 110 chain. switchyard's A/B telemetry infra (#1017) already shipped in v5.4.10 and is waiting for cacp-protocol to import as the reference parser.

🤖 Generated with Claude Code

The unprefixed `cacp` slot on PyPI is occupied by an unrelated project
(Classification Algorithms Comparison Pipeline by Sylwester Czmil,
v1.0.4). To publish the reference parser without colliding:

- Distribution name: `cacp-protocol`
- Import name: `cacp_protocol`

Pure mechanical rename — no behavioral change. 42 tests pass.

Files renamed:
- src/cacp/{__init__,models,parser}.py → src/cacp_protocol/...
- All imports updated: `from cacp.X` → `from cacp_protocol.X`,
  `from cacp import` → `from cacp_protocol import`

`pyproject.toml` updates `name = "cacp-protocol"`. README install +
usage examples updated; added a "Naming" callout explaining the
collision so future readers don't wonder.

Added `.github/workflows/release.yml`:
- Triggers on `v*` tag push
- Verifies pyproject version matches the tag
- Builds sdist + wheel via `python -m build`
- Publishes via `pypa/gh-action-pypi-publish` using PyPI
  trusted-publisher (OIDC, no token needed once configured on PyPI)
- Fallback path documented in the workflow comments — operator can
  swap to `password: \${{ secrets.PYPI_API_TOKEN }}` if trusted-publisher
  isn't viable

Operator next steps to ship v0.1.0:
1. Merge this PR
2. (one-time) On pypi.org: register `cacp-protocol` project (it's
   currently unclaimed, HTTP 404 on /pypi/cacp-protocol/json) AND
   add a trusted-publisher entry pointing at owner=zenprocess,
   repo=cacp, workflow=release.yml, environment=pypi
3. Tag `git tag v0.1.0 && git push --tags` — workflow auto-publishes

Unblocks switchyard CACP consolidation epic (#1015), spec 110 chain
(#1017 A/B telemetry already shipped in switchyard v5.4.10).
@zenprocess zenprocess merged commit 5e2306e into main Apr 23, 2026
2 checks passed
@zenprocess zenprocess deleted the feat/rename-to-cacp-protocol-publish branch April 23, 2026 19:22
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