fix: remove plugin versions from marketplace.json and fix brittle test
- Remove plugin version fields from marketplace.json -- canonical versions live in each plugin's plugin.json. Duplicating them created drift that release-please couldn't maintain. - Remove version sync logic from metadata.ts (description sync kept) - Fix release-preview test to compute expected versions dynamically from current manifests instead of hardcoding them
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
{
|
||||
"name": "compound-engineering",
|
||||
"description": "AI-powered development tools that get smarter with every use. Make each unit of engineering work easier than the last.",
|
||||
"version": "2.42.0",
|
||||
"author": {
|
||||
"name": "Kieran Klaassen",
|
||||
"url": "https://github.com/kieranklaassen",
|
||||
@@ -33,7 +32,6 @@
|
||||
{
|
||||
"name": "coding-tutor",
|
||||
"description": "Personalized coding tutorials that build on your existing knowledge and use your actual codebase for examples. Includes spaced repetition quizzes to reinforce learning. Includes 3 commands and 1 skill.",
|
||||
"version": "1.2.1",
|
||||
"author": {
|
||||
"name": "Nityesh Agarwal"
|
||||
},
|
||||
|
||||
@@ -198,20 +198,14 @@ export async function syncReleaseMetadata(options: SyncOptions = {}): Promise<Me
|
||||
|
||||
for (const plugin of marketplaceClaude.plugins) {
|
||||
if (plugin.name === "compound-engineering") {
|
||||
if (plugin.version !== expectedCompoundVersion) {
|
||||
plugin.version = expectedCompoundVersion
|
||||
changed = true
|
||||
}
|
||||
if (plugin.description !== compoundMarketplaceDescription) {
|
||||
plugin.description = compoundMarketplaceDescription
|
||||
changed = true
|
||||
}
|
||||
}
|
||||
|
||||
if (plugin.name === "coding-tutor" && plugin.version !== expectedCodingTutorVersion) {
|
||||
plugin.version = expectedCodingTutorVersion
|
||||
changed = true
|
||||
}
|
||||
// Plugin versions are not synced in marketplace.json -- the canonical
|
||||
// version lives in each plugin's own plugin.json. Duplicating versions
|
||||
// here creates drift that release-please can't maintain.
|
||||
}
|
||||
|
||||
updates.push({ path: marketplaceClaudePath, changed })
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import { buildReleasePreview } from "../src/release/components"
|
||||
import { buildReleasePreview, bumpVersion, loadCurrentVersions } from "../src/release/components"
|
||||
|
||||
describe("release preview", () => {
|
||||
test("uses changed files to determine affected components and next versions", async () => {
|
||||
const versions = await loadCurrentVersions()
|
||||
const preview = await buildReleasePreview({
|
||||
title: "fix: adjust ce:plan-beta wording",
|
||||
files: ["plugins/compound-engineering/skills/ce-plan-beta/SKILL.md"],
|
||||
@@ -11,10 +12,11 @@ describe("release preview", () => {
|
||||
expect(preview.components).toHaveLength(1)
|
||||
expect(preview.components[0].component).toBe("compound-engineering")
|
||||
expect(preview.components[0].inferredBump).toBe("patch")
|
||||
expect(preview.components[0].nextVersion).toBe("2.42.1")
|
||||
expect(preview.components[0].nextVersion).toBe(bumpVersion(versions["compound-engineering"], "patch"))
|
||||
})
|
||||
|
||||
test("supports per-component overrides without affecting unrelated components", async () => {
|
||||
const versions = await loadCurrentVersions()
|
||||
const preview = await buildReleasePreview({
|
||||
title: "fix: update coding tutor prompts",
|
||||
files: ["plugins/coding-tutor/README.md"],
|
||||
@@ -27,7 +29,7 @@ describe("release preview", () => {
|
||||
expect(preview.components[0].component).toBe("coding-tutor")
|
||||
expect(preview.components[0].inferredBump).toBe("patch")
|
||||
expect(preview.components[0].effectiveBump).toBe("minor")
|
||||
expect(preview.components[0].nextVersion).toBe("1.3.0")
|
||||
expect(preview.components[0].nextVersion).toBe(bumpVersion(versions["coding-tutor"], "minor"))
|
||||
})
|
||||
|
||||
test("docs-only changes remain non-releasable by default", async () => {
|
||||
|
||||
Reference in New Issue
Block a user