Skip to content

build: prepare 0.2.0 release metadata - #28

Merged
netixc merged 1 commit into
mainfrom
fm/stremio-mcp-release-readiness-scout
Jul 21, 2026
Merged

build: prepare 0.2.0 release metadata#28
netixc merged 1 commit into
mainfrom
fm/stremio-mcp-release-readiness-scout

Conversation

@netixc

@netixc netixc commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Intent

Prepare the captain-approved 0.2.0 release metadata for netixc/stremio-mcp (PR phase only). The captain approved releasing 0.2.0 — superseding an earlier 0.1.1 proposal — once the ANDROID_TV_PORT guard landed, which merged as PR #27; this branch (fm/stremio-mcp-release-readiness-scout, one commit 474edae on top of main 3b453aa) synchronizes release metadata only and deliberately changes no runtime behavior, dependencies, tests, or APIs. Scope: pyproject.toml version 0.2.0; server.json server version and PyPI package version 0.2.0; uv.lock self-package regenerated via 'uv lock' (only the version line changes); README pinned install example 'uvx --from stremio-mcp-server==0.2.0'; CHANGELOG.md converts the accumulated Unreleased notes into '## [0.2.0] - 2026-07-22' (exact heading format enforced by publish.yml), adds the [0.2.0] release-tag link, and deliberately keeps an empty '## [Unreleased]' landing section per Keep a Changelog 1.1.0 even though docs/releasing.md says 'replace' — this was sanctioned; docs/releasing.md step 1 checklist now also lists the README pinned install example, a durable correction for an omission found during the release-readiness scout. Hard prohibition for this phase: no tag, no PyPI publish, no GitHub release, no MCP Registry mutation — tagging v0.2.0 happens only post-merge under a separate authorization; the eventual GitHub release stays marked prerelease per the captain. The release date 2026-07-22 is today's intended release date and is deliberate. Locally proven at 474edae: uv sync --locked; 132 unit tests OK; compileall OK; uv build produced 0.2.0 wheel+sdist whose METADATA declares exactly httpx>=0.28.1 and mcp<2,>=1.28.1 with no requests; ReleaseMetadataTests/CliTests subset OK; server.json valid against the MCP Registry /v0/validate endpoint; wheel console scripts verified; empty-env wheel startup exit 0 in the publish.yml shape; 0.2.0 confirmed absent from PyPI, GitHub tags, and the MCP Registry.

What Changed

  • Bumped the project version to 0.2.0 across pyproject.toml, server.json (server and PyPI package versions), uv.lock (self-package), and the README pinned install example (uvx --from stremio-mcp-server==0.2.0).
  • Rolled the accumulated ## [Unreleased] notes into ## [0.2.0] - 2026-07-22 in CHANGELOG.md, added the [0.2.0] release-tag link, and kept an empty ## [Unreleased] landing section per Keep a Changelog 1.1.0.
  • Extended the docs/releasing.md step 1 checklist to also cover the README pinned install example. No runtime behavior, dependencies, tests, or APIs changed; locked setup, 132 unit tests, compileall, and uv build (0.2.0 wheel + sdist) all pass.

Risk Assessment

✅ Low: The change is purely release-metadata synchronization to 0.2.0 with no runtime, dependency, test, or API changes; all version strings, the changelog heading/date, and the publish.yml-enforced format are internally consistent and match the authoritative intent.

Testing

Beyond the baseline locked sync, 132-test unit run, and compileall (all OK), I built the package and proved the release metadata as an end user/publish pipeline would experience it: the 0.2.0 wheel+sdist build, its METADATA declaring exactly httpx>=0.28.1 and mcp<2,>=1.28.1 with the two expected console scripts, an empty-env wheel startup exiting 0 in the publish.yml shape, and a simulation of publish.yml's tag/changelog gate for v0.2.0 that passes on the '## [0.2.0] - 2026-07-22' heading and tag link. Cross-file version consistency (pyproject, server.json server+package, uv.lock, README pin) is 0.2.0 everywhere, the empty Unreleased section is preserved, and the PR-phase prohibitions hold (no v0.2.0 git tag, metadata-only diff, no publish/release/registry action). This is a packaging/CLI change with no rendered UI surface, so no screenshot applies; the reviewer-visible evidence is the build artifacts and CLI transcript captured in the evidence file. I did not re-run the live MCP Registry /v0/validate call (network-dependent and outside a metadata diff's needs) — local server.json consistency is fully proven instead. All checks pass with no findings.

Evidence: 0.2.0 release-metadata verification transcript
stremio-mcp 0.2.0 release-metadata verification (branch fm/stremio-mcp-release-readiness-scout @ 474edae)

VERSION SYNC (all 0.2.0):
  pyproject.toml            = 0.2.0
  server.json server        = 0.2.0
  server.json pypi package  = 0.2.0
  README pinned install     = uvx --from stremio-mcp-server==0.2.0
  uv.lock self-package      = 0.2.0  (diff is the version line only)

CHANGELOG:
  '## [Unreleased]' landing section kept empty (Keep a Changelog 1.1.0)
  '## [0.2.0] - 2026-07-22' section present (accumulated notes moved under it)
  '[0.2.0]: https://github.com/netixc/stremio-mcp/releases/tag/v0.2.0' tag link added

publish.yml gate (simulated for GITHUB_REF_NAME=v0.2.0):
  tag==f"v{version}" OK; changelog heading regex matches; date 2026-07-22 valid ISO; tag link present -> PASS

docs/releasing.md step 1 now also lists the README pinned install example.

LOCAL VERIFICATION:
  uv sync --locked ............... OK (stremio-mcp-server==0.2.0 installed)
  132 unit tests ................. OK
  compileall src tests ........... OK
  uv build ....................... dist/stremio_mcp_server-0.2.0-py3-none-any.whl + .tar.gz
  wheel METADATA ................. Version: 0.2.0
                                   Requires-Dist: httpx>=0.28.1
                                   Requires-Dist: mcp<2,>=1.28.1
                                   (no 'requests' dependency)
  console scripts ................ stremio-mcp / stremio-mcp-server -> stremio_mcp:cli
  empty-env wheel startup ........ ANDROID_TV_HOST= TMDB_API_KEY= STREMIO_AUTH_KEY= uvx ... -> exit 0

FORBIDDEN (PR phase) -- all respected:
  no v0.2.0 git tag (git tag -l 'v0.2*' empty)
  no PyPI publish / GitHub release / MCP Registry mutation performed
  change scope = metadata only (CHANGELOG, README, docs/releasing.md, pyproject.toml, server.json, uv.lock); no src/ or tests/ touched
Evidence: Wheel METADATA + empty-env startup
Version: 0.2.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp<2,>=1.28.1
console_scripts: stremio-mcp / stremio-mcp-server -> stremio_mcp:cli

empty-env startup (ANDROID_TV_HOST= TMDB_API_KEY= STREMIO_AUTH_KEY= uvx --from <wheel> ...): exit 0
Evidence: publish.yml gate + version consistency
PASS: pyproject=0.2.0, changelog heading + date 2026-07-22 valid, [0.2.0] tag link present
pyproject 0.2.0 | server.json server 0.2.0 | server.json pypi pkg 0.2.0 | README pin 0.2.0 -> ALL CONSISTENT
git tag -l 'v0.2*': (none) | changed files: CHANGELOG.md README.md docs/releasing.md pyproject.toml server.json uv.lock

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • uv sync --locked — self-package resolves to stremio-mcp-server==0.2.0
  • uv run --locked python -m unittest discover -s tests -v — 132 tests OK
  • uv run --locked python -m compileall -q src tests — OK
  • uv build — produced dist/stremio_mcp_server-0.2.0-py3-none-any.whl and .tar.gz
  • Wheel METADATA inspection — Version: 0.2.0, Requires-Dist exactly httpx>=0.28.1 and mcp<2,>=1.28.1 (no requests), console scripts stremio-mcp / stremio-mcp-server -> stremio_mcp:cli
  • Empty-env startup in the publish.yml shape — ANDROID_TV_HOST= TMDB_API_KEY= STREMIO_AUTH_KEY= uvx --no-env-file --from &lt;wheel&gt; stremio-mcp-server &lt;/dev/null exit 0
  • Simulated publish.yml 'Verify tag and release notes' logic for GITHUB_REF_NAME=v0.2.0 — tag==v{version}, changelog heading regex matches, date 2026-07-22 valid ISO, [0.2.0] tag link present
  • Cross-file version consistency check — pyproject / server.json server / server.json pypi package / README pin all 0.2.0
  • git tag -l &#39;v0.2*&#39; empty and git diff --name-only shows metadata-only scope (no src/ or tests/)
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Synchronize the package version to 0.2.0 across pyproject.toml,
server.json (server and PyPI package coordinates), uv.lock, and the
README pinned install example. Convert the accumulated Unreleased
changelog into the dated 0.2.0 section with its release link, keeping
an empty Unreleased landing section per Keep a Changelog. Add the
README pinned install example to the release version-sync checklist,
which previously omitted it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@netixc
netixc merged commit 97682b3 into main Jul 21, 2026
6 checks passed
@netixc
netixc deleted the fm/stremio-mcp-release-readiness-scout branch July 25, 2026 14:03
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