GraphDone uses a centralized version management system with the root package.json as the single source of truth.
- Single Source of Truth: Root
package.jsoncontains the authoritative version - Automatic Propagation: Other components import from root package or centralized utilities
- Consistent Updates: Use the automated script to update all version references
# 1. Run the simple update script
./scripts/update-version-minimal.sh 0.3.2-alpha
# 2. Regenerate lockfile
npm install
# 3. Commit changes
git add .
git commit -m "Update version to v0.3.2-alpha"
git pushThe script only updates files that cannot import from package.json:
- All package.json files in the monorepo
- Docker image tags in compose files
- Environment variable defaults
- Documentation references
package.json(root - source of truth)packages/core/package.jsonpackages/server/package.jsonpackages/web/package.jsonpackages/mcp-server/package.json
deployment/docker-compose.ymldeployment/docker-compose.http.yml
packages/web/src/utils/version.ts(imports from root package.json)packages/mcp-server/src/index.ts(uses centralized version.ts)packages/mcp-server/src/health-server.ts(uses centralized version.ts)
packages/web/.env.exampleCLAUDE.md
- Automatic Sync: Consider using a tool like Lerna or Rush for automatic version syncing
- CI/CD Integration: Automate version updates in CI/CD pipeline
- Semantic Versioning: Implement automated semantic version bumping
- Release Notes: Generate release notes from commit history
- Never hardcode versions in application code
- Always import from centralized version utilities
- Use the update script for consistent version updates
- Test after version updates to ensure all references work correctly