Add version-family consistency checks for plugins, adapters, and tools#9
Merged
Conversation
## 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 ```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduce
scripts/version-families.mjsand 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
scripts/version-families.mjs— reads version fields frompackage.json, plugin manifests,pyproject.toml, YAML, and TOML files for each family and fails if they are not aligned.check:plugin-versions,check:adapter-versions,check:tool-versions, andcheck:version-familiesscripts to the rootpackage.json.scripts/ci/package-metadata.mjsto run all three family checks as part of package metadata validation, surfacing failures alongside manifest errors.pnpm check:version-familiesguard inREADME.md.Why
AtomicMemory uses intentionally independent versions for
@atomicmemory/coreand@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