Skip to content

Declare the versioned surface and cut 2.0.0 - #21

Open
anderslindho wants to merge 2 commits into
masterfrom
release/2.0.0
Open

Declare the versioned surface and cut 2.0.0#21
anderslindho wants to merge 2 commits into
masterfrom
release/2.0.0

Conversation

@anderslindho

Copy link
Copy Markdown
Contributor

recsync's integration tests pull ghcr.io/channelfinder/reccaster:master, which is republished on every push to the default branch, and there is no version-tagged image to pin instead. The tags migrated in #3 could not produce one: docker.yml was added in 8770192, a tag push resolves workflows from the tagged commit, and every migrated tag predates it, so the registry carries only branch tags. That leaves ChannelFinder/recsync#173 with a digest pin as its only option today.

The cost of the floating tag is already on record. Republishing :master on 2026-08-03 carried the /recsync to /reccaster path rename from 7d12820, which stopped recsync's integration IOC from initialising. Nothing on their side had changed.

This cuts the accumulated [Unreleased] entries as 2.0.0 and adds the compare links. 2.0.0 will be the first tag to trigger docker.yml, so docker/metadata-action's default tag set publishes both 2.0.0 and latest. That is what #173 needs in order to pin a version instead of a digest.

The rename is backwards incompatible for anyone addressing files in the published image by absolute path, and that is what the major version records. Moving the repository is not itself a versioned change; the objection to a 2.0.0 tag in #3 was against exactly that reading, and it still stands.

5ff76af adopted Semantic Versioning by linking the spec, but never said what the public interface is (clause 1). Without that, the image published by docker.yml is not covered, and a path rename inside it does not look like a breaking change. This PR takes the versioned surface to be the module together with the image. The wire protocol is left out: it is shared with other implementations, and this repository cannot version it alone. If the image is not part of the surface, the release should be 1.10.0 instead — that needs a decision before the tag is pushed.

`5ff76af` adopted Semantic Versioning by linking the spec, but never said
what the public interface is (clause 1). Without that, the image published
by `docker.yml` is not covered, and a path rename inside it does not look
like a breaking change.

The surface declared here is the module together with the image. The wire
protocol is left out: it is shared with other implementations, and this
repository cannot version it alone.
Nothing has been tagged since the split, so
`ghcr.io/channelfinder/reccaster` publishes only branch tags and downstream
consumers can reference nothing but a floating `:master`. Republishing that
tag on 2026-08-03 carried the `/recsync` to `/reccaster` path rename from
`7d12820` and stopped recsync's integration IOC from initialising. Nothing
on their side had changed.

The rename is backwards incompatible for image consumers, hence 2.0.0 rather
than a minor release.

Refs: ChannelFinder/recsync#173
@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

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