Skip to content

Add version-family consistency checks for plugins, adapters, and tools#9

Merged
ethanj merged 1 commit into
mainfrom
sync/monorepo-0e2aaa2
May 21, 2026
Merged

Add version-family consistency checks for plugins, adapters, and tools#9
ethanj merged 1 commit into
mainfrom
sync/monorepo-0e2aaa2

Conversation

@ethanj
Copy link
Copy Markdown
Contributor

@ethanj ethanj commented May 21, 2026

Summary

Introduce scripts/version-families.mjs and wire it into CI to enforce lockstep versioning within each release family: host plugins, framework adapters, and the CLI/MCP server tool pair. The check fails fast when any member of a family drifts from the rest.

Changes

  • Add scripts/version-families.mjs — reads version fields from package.json, plugin manifests, pyproject.toml, YAML, and TOML files for each family and fails if they are not aligned.
  • Add check:plugin-versions, check:adapter-versions, check:tool-versions, and check:version-families scripts to the root package.json.
  • Extend scripts/ci/package-metadata.mjs to run all three family checks as part of package metadata validation, surfacing failures alongside manifest errors.
  • Document the version-family model and the pnpm check:version-families guard in README.md.

Why

AtomicMemory uses intentionally independent versions for @atomicmemory/core and @atomicmemory/sdk, but tightly coupled release groups (all host plugins, all framework adapters, CLI + MCP server) must move together. Without an automated guard, members of a family can drift silently, causing a partially-updated release to ship with mismatched version fields across manifests, plugin descriptors, and skill metadata.

Validation

pnpm run check:version-families   # all three family checks
pnpm run package-metadata          # includes version-family checks

## Summary

Introduce `scripts/version-families.mjs` and wire it into CI to enforce lockstep versioning within each release family: host plugins, framework adapters, and the CLI/MCP server tool pair. The check fails fast when any member of a family drifts from the rest.

## Changes

- Add `scripts/version-families.mjs` — reads version fields from `package.json`, plugin manifests, `pyproject.toml`, YAML, and TOML files for each family and fails if they are not aligned.
- Add `check:plugin-versions`, `check:adapter-versions`, `check:tool-versions`, and `check:version-families` scripts to the root `package.json`.
- Extend `scripts/ci/package-metadata.mjs` to run all three family checks as part of package metadata validation, surfacing failures alongside manifest errors.
- Document the version-family model and the `pnpm check:version-families` guard in `README.md`.

## Why

AtomicMemory uses intentionally independent versions for `@atomicmemory/core` and `@atomicmemory/sdk`, but tightly coupled release groups (all host plugins, all framework adapters, CLI + MCP server) must move together. Without an automated guard, members of a family can drift silently, causing a partially-updated release to ship with mismatched version fields across manifests, plugin descriptors, and skill metadata.

## Validation

```bash
pnpm run check:version-families   # all three family checks
pnpm run package-metadata          # includes version-family checks
```
@ethanj ethanj merged commit 66154ed into main May 21, 2026
9 checks passed
@ethanj ethanj deleted the sync/monorepo-0e2aaa2 branch May 21, 2026 04:22
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