Skip to content

Bump plugin manifest version and guard it against drift - #5

Merged
ericwalisko merged 1 commit into
mainfrom
ericwalisko/plugin-manifest-version
Sep 4, 2026
Merged

Bump plugin manifest version and guard it against drift#5
ericwalisko merged 1 commit into
mainfrom
ericwalisko/plugin-manifest-version

Conversation

@ericwalisko

Copy link
Copy Markdown
Owner

Problem (found on the work laptop)

The Claude Code plugin manifest version was stuck at 0.1.1 in both integrations/claude-code/.claude-plugin/plugin.json and .claude-plugin/marketplace.json — across every release from 0.1.2 onward. claude plugin update only reinstalls when the manifest version rises, so it compared 0.1.1 to 0.1.1 and correctly did nothing. Result: no plugin or hook change could reach an installed machine — including the automatic session-end backup hook (memware backup --if-stale 20 --quiet) that's been in hooks.json since 0.2.x.

The CLI version is CI-enforced against the git tag (release.yml), but the plugin manifest was a separate, unchecked string — which is exactly why it silently drifted for six releases.

Fix

  • Bump both manifests to the package version (0.2.4).
  • Add tests/test_plugin_manifest.py asserting plugin.json and the marketplace entry both equal memware.__version__, so a release that forgets the plugin bump now fails CI.
  • Document the three-place version bump (package + two manifests) in RELEASING.md.

No package code changed, so no new PyPI release is needed — the plugin is served from main. After merge, installed machines get the current hooks with:

claude plugin marketplace update memware
claude plugin update memware@memware

Full suite, ruff, ruff format, mypy green locally.

🤖 Generated with Claude Code

The Claude Code plugin manifest version sat at 0.1.1 across every release from
0.1.2 onward. `claude plugin update` only reinstalls when the manifest version
rises, so it compared 0.1.1 to 0.1.1 and did nothing — no plugin or hook change
(e.g. the 0.2.x automatic session-end backup hook, already present in
hooks.json) could ever reach an installed machine. The CLI version is CI-checked
against the git tag, but the plugin manifest was a separate string with nothing
watching it.

Bump both manifests (plugin.json and marketplace.json) to the package version,
and add tests/test_plugin_manifest.py asserting they equal __version__ so a
release that forgets the plugin bump fails CI. Document the three-place bump in
RELEASING.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnaQwZUSDRbVUNh8fsdksD
@ericwalisko
ericwalisko merged commit 3708b40 into main Sep 4, 2026
6 checks passed
@ericwalisko
ericwalisko deleted the ericwalisko/plugin-manifest-version branch September 4, 2026 00:01
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