Repository navigation
Rename to cam2mcp, add MIT license, bump CI actions - #2
Merged
Merged
Conversation
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
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.
Follows the
cam2ip-mcp→cam2mcprepository rename through the tree, adds a license, and bumps the two actions.Rename
Everything carrying the old project name moves:
ghcr.io/impuls42/cam2ip-mcpghcr.io/impuls42/cam2mcpcam2ip-mcp:ci,cam2ip-mcp:devcam2mcp:ci,cam2mcp:devcam2ip-mcpcam2mcpcam2ip-mcpcam2mcpcam2ip_mcp_server.pycam2mcp_server.pyCAM2IP_MCP_IMAGECAM2MCP_IMAGEWhat deliberately does not move
CAM2IP_*runtime variables. cam2ip derives that prefix from its own binary name, soCAM2IP_WIDTH,CAM2IP_INDEX,CAM2IP_LAZYand 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.envfiles to produce a confusing half-renamed set, so they stay.cam2ip_probe.py. Named for what it probes, not for this project.cam2ipreference 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.gitmodulespin 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-actionv5 → v6 — checked every input used here (context,file,push,load,tags,labels,platforms,cache-from,cache-to,build-args) against v6'saction.yml; all still present. v6 generates a build summary by default, which is the one new behavior;DOCKER_BUILD_SUMMARY=falsedisables it if it turns out to be noise.actions/attest-build-provenancev1 → v2 —subject-name,subject-digestandpush-to-registryare all still defined in v2, and the job already grantsid-token: writeandattestations: write.Also
.gitignorenow covers.venv/, which the README's own setup instructions create.Testing
python -m pytest— 110 passed, 5 skipped (the skips aretest_image.py, which needs a built image and a Docker daemon).docker compose configvalidates;sh -n entrypoint.shandpy_compileclean.COPYlines for the license files are unexercised. Theimage-smokejob builds and runs the image before anything publishes, so CI covers it.