Skip to content

Commit 620ec15

Browse files
authored
Merge pull request #4 from oposs/fix/commit-plugin-json
Commit plugin.json (0.2.0) — missed by PR #3 merge
2 parents 18bbf0c + f9a7d7b commit 620ec15

4 files changed

Lines changed: 43 additions & 0 deletions

File tree

.claude-plugin/plugin.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "cmk-oposs-plugin",
3+
"description": "A plugin for people developing checkmk plugins",
4+
"version": "0.2.0",
5+
"author": {
6+
"name": "Tobias Oetiker <tobi@oetiker.ch>"
7+
}
8+
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
!/.mkp-builder.ini.example
99
!/.clinerules
1010
!/skills
11+
!/.claude-plugin
1112
*~
1213
*.swp
1314
*.bak

CHANGES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2222
`actions/checkout` v4→v7, `actions/upload-artifact` v4→v7,
2323
`actions/download-artifact` v4→v8, `softprops/action-gh-release` v2→v3
2424
(`oposs/mkp-builder` stays `@v2`).
25+
- Commit `.claude-plugin/plugin.json` (previously gitignored) so the plugin owns its
26+
own version as the single source of truth (`0.2.0`); the marketplace entry no longer
27+
carries a `version`. See `RELEASING.md` for the plugin release process.
2528

2629
### Fixed
2730

RELEASING.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Releasing
2+
3+
This repo ships two things with **independent** version streams:
4+
5+
## 1. The `mkp-builder` GitHub Action
6+
7+
Versioned by git tags (`v2.2.0`, …) with a moving major tag (`@v2`). Cut a release by
8+
running the **Release** workflow (`workflow_dispatch`, bugfix/feature/major). It rolls
9+
`CHANGES.md`, tags, and moves `@v2`. Consumers pin `oposs/mkp-builder@v2`.
10+
11+
## 2. The `cmk-oposs-plugin` Claude Code plugin
12+
13+
The plugin's version lives **only** in `.claude-plugin/plugin.json` (`version`). It is the
14+
single source of truth — Claude Code resolves a plugin's version as
15+
`plugin.json → marketplace entry → commit SHA`, and `plugin.json` wins. The marketplace
16+
entry in [`oposs/claude-plugins`](https://github.com/oposs/claude-plugins) therefore carries
17+
**no** `version` field for this plugin (avoid setting it in two places — a stale duplicate
18+
silently masks the real one).
19+
20+
### Releasing a plugin change
21+
22+
1. Make the plugin/skill change under `skills/`.
23+
2. **Bump `version` in `.claude-plugin/plugin.json`** in the same change. Pushing new commits
24+
without bumping does nothing — Claude caches the resolved version and keeps the old copy.
25+
3. Push to `main`.
26+
4. **Push a change to the marketplace repo** (`oposs/claude-plugins`) as well — Claude
27+
re-resolves plugin versions when it re-fetches the marketplace, so the marketplace clone
28+
has to move for the bump to be noticed. A one-line edit (e.g. a note in that repo) is
29+
enough. *(This can be automated from CI later with a PAT that can push to the marketplace
30+
repo; not wired up yet.)*
31+
5. Users run `/plugin marketplace update` then `/plugin update cmk-oposs-plugin`.

0 commit comments

Comments
 (0)