Skip to content

Rename to cam2mcp, add MIT license, bump CI actions - #2

Merged
impuls42 merged 1 commit into
mainfrom
claude/cam2mcp-repo-migration-pdorwm
Jul 30, 2026
Merged

impuls42 merged 1 commit into
mainfrom
claude/cam2mcp-repo-migration-pdorwm

Conversation

@impuls42

@impuls42 impuls42 commented Jul 30, 2026 •

Copy link
Copy Markdown
Owner

Follows the cam2ip-mcp → cam2mcp repository rename through the tree, adds a license, and bumps the two actions.

Rename

Everything carrying the old project name moves:

before after
Published image ghcr.io/impuls42/cam2ip-mcp ghcr.io/impuls42/cam2mcp
Local/CI image tags cam2ip-mcp:ci, cam2ip-mcp:dev cam2mcp:ci, cam2mcp:dev
Compose service + container cam2ip-mcp cam2mcp
MCP server name / logger cam2ip-mcp cam2mcp
Server module cam2ip_mcp_server.py cam2mcp_server.py
Image smoke-test env var CAM2IP_MCP_IMAGE CAM2MCP_IMAGE

What deliberately does not move

  • CAM2IP_* runtime variables. cam2ip derives that prefix from its own binary name, so CAM2IP_WIDTH, CAM2IP_INDEX, CAM2IP_LAZY and the rest physically cannot be renamed. Renaming only the handful this project reads itself (CAM2IP_BASE_URL, CAM2IP_ENABLED, CAM2IP_HTTP_TIMEOUT_S) would break existing .env files to produce a confusing half-renamed set, so they stay.
  • cam2ip_probe.py. Named for what it probes, not for this project.
  • Every bare cam2ip reference in the docs. Those are the upstream project, which is unchanged.

MCP_SERVER_PATH's default moves with the module (/app/cam2mcp_server.py); an explicit override is unaffected.

License

MIT for the server, entrypoint, tests and packaging (LICENSE, copyright impuls42).

The bundled cam2ip is GPL-3.0 and stays that way. It is built from an unmodified upstream submodule into its own binary and spoken to over HTTP as a separate process, so the two are aggregated rather than combined and the MIT code links nothing GPL. Because the published image conveys a GPL-3.0 binary, both licenses are now copied into it under /usr/share/licenses/, and the README says where the corresponding source is (the .gitmodules pin identifies the exact revision built). The old README paragraph saying the repo carried no license of its own is replaced.

Action bumps

  • docker/build-push-action v5 → v6 — checked every input used here (context, file, push, load, tags, labels, platforms, cache-from, cache-to, build-args) against v6's action.yml; all still present. v6 generates a build summary by default, which is the one new behavior; DOCKER_BUILD_SUMMARY=false disables it if it turns out to be noise.
  • actions/attest-build-provenance v1 → v2 — subject-name, subject-digest and push-to-registry are all still defined in v2, and the job already grants id-token: write and attestations: write.

Also

.gitignore now covers .venv/, which the README's own setup instructions create.

Testing

  • python -m pytest — 110 passed, 5 skipped (the skips are test_image.py, which needs a built image and a Docker daemon).
  • Workflow YAML parses; docker compose config validates; sh -n entrypoint.sh and py_compile clean.
  • Not verified locally: the image build. No Docker daemon in this environment, so the two new COPY lines for the license files are unexercised. The image-smoke job builds and runs the image before anything publishes, so CI covers it.

The repository is now impuls42/cam2mcp, so everything carrying the old
project name follows it: the published image, the local image tags, the
compose service and container, the advertised MCP server name, the logger,
and cam2ip_mcp_server.py -> cam2mcp_server.py.

The CAM2IP_* runtime variables deliberately do not move. cam2ip derives that
prefix from its own binary name, so CAM2IP_WIDTH and friends cannot be renamed
at all, and renaming the handful this project reads itself (CAM2IP_BASE_URL,
CAM2IP_ENABLED, CAM2IP_HTTP_TIMEOUT_S) would break existing .env files to
produce a confusing half-renamed set. cam2ip_probe.py stays too: it is named
for what it probes, not for this project. The one exception is the test-only
CAM2IP_MCP_IMAGE, which named the old project rather than cam2ip and is now
CAM2MCP_IMAGE.

Licensing: MIT for the server, entrypoint, tests and packaging. The bundled
cam2ip is GPL-3.0 and stays that way -- it is built from an unmodified
upstream submodule into its own binary and spoken to over HTTP, so the two are
aggregated rather than combined. Both licenses are now copied into the image,
since conveying a GPL-3.0 binary means conveying its terms with it, and the
README says where the corresponding source is.

Action bumps: docker/build-push-action v5 -> v6 (adds a build summary by
default; every input used here is unchanged) and actions/attest-build-provenance
v1 -> v2 (push-to-registry and the subject-* inputs are unchanged, and the
job already grants id-token: write and attestations: write).

Also gitignores .venv/, which the README's own instructions create.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FQbVrtqo9pcKcba9bFBfJG
@impuls42
impuls42 marked this pull request as ready for review July 30, 2026 16:57
@impuls42
impuls42 merged commit 70e3819 into main Jul 30, 2026
3 checks passed
@impuls42
impuls42 deleted the claude/cam2mcp-repo-migration-pdorwm branch July 30, 2026 16:57
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