Fix schema versioning to preserve released versions#337
Merged
Conversation
Changes: - Development builds only rebuild dist/schemas/latest/ - Released version directories (e.g., 2.5.0/) are preserved - Release builds (--release flag) create new versioned directories - v1 symlink always points to latest/ for backward compatibility - Major/minor symlinks (v2, v2.5) point to released versions This fixes the issue where schema changes appeared in all version paths instead of only in latest/. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Ensures Docker builds create versioned schema directories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
bokelley
added a commit
that referenced
this pull request
Dec 24, 2025
Update .gitignore to: - Ignore dist/* but allow dist/schemas/ directory - Ignore dist/schemas/latest/ (rebuilt on every dev build) - Ignore dist/schemas/v*/ (symlinks, not tracked in git) - Preserve released version directories (2.5.0/, 2.5.1/, etc.) This ensures released schema versions persist across CI runs while development changes only affect the latest/ directory. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
bokelley
added a commit
that referenced
this pull request
Dec 24, 2025
* Fix release workflow to create GitHub releases Add publish command to trigger GitHub release creation. Without a publish step, createGithubReleases doesn't run. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix schema versioning to preserve released versions (#337) Update .gitignore to: - Ignore dist/* but allow dist/schemas/ directory - Ignore dist/schemas/latest/ (rebuilt on every dev build) - Ignore dist/schemas/v*/ (symlinks, not tracked in git) - Preserve released version directories (2.5.0/, 2.5.1/, etc.) This ensures released schema versions persist across CI runs while development changes only affect the latest/ directory. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix released schema directories to use actual release content The previous commit incorrectly built 2.5.0 and 2.5.1 from current source schemas. This commit rebuilds them from their actual git tags to preserve the exact schemas that were released. Key differences: - 2.5.0: No bundled/ directory (feature added later), different schema structure - 2.5.1: Has bundled/ directory with schemas as they were at release time 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add git staging to release build for CI automation When running --release, the build script now stages the new versioned schema directory (e.g., dist/schemas/2.6.0/) for git commit. This ensures the changesets workflow includes the released schemas in the "Version Packages" commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix build script to use dev mode, not release mode The regular `npm run build` (used by Docker) should use development mode to: 1. Preserve existing committed released directories (2.5.0/, 2.5.1/) 2. Only rebuild latest/ from current source 3. Create symlinks pointing to the latest released version Only `npm run version` (used during changeset releases) should use --release mode to create new versioned directories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> --------- Co-authored-by: Claude Opus 4.5 <[email protected]>
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
dist/schemas/latest/2.5.0/) are preserved across builds--releaseflag) create new versioned directoriesv1symlink always points tolatest/for backward compatibilityProblem
Previously,
npm run build:schemaswould delete the entiredist/schemas/directory and rebuild everything. This caused schema changes to appear in all version paths (v2,v2.5, etc.) instead of only inlatest/.Solution
The build script now has two modes:
Development build (default):
dist/schemas/latest/v2,v2.5) continue pointing to released versionsRelease build (via changesets):
2.6.0/)latest/to match the releaseDirectory Structure
After a release + dev build:
Test Plan
latest/🤖 Generated with Claude Code