Release Process - robwhite4/claude-memory GitHub Wiki
This guide covers how Claude Memory releases are created and published.
Claude Memory uses an automated release process via GitHub Actions. When a version tag is pushed, the workflow automatically:
- Runs all tests
- Checks code quality
- Publishes to NPM
- Creates GitHub release
- Updates documentation
For bug fixes and minor improvements:
- Bug fixes
- Documentation updates
- Performance improvements
- Security patches
- Small non-breaking changes
For new features and enhancements:
- New commands or subcommands
- New configuration options
- Significant improvements
- New integrations
- Backward-compatible API changes
For breaking changes:
- Removed features
- Changed command syntax
- Modified file formats
- Architectural changes
- Breaking API changes
# Ensure on main branch
git checkout main
git pull origin main
# Update CHANGELOG.md
# Move items from [Unreleased] to new version section
# Add release date
# For patch release
npm version patch -m "Release v%s"
# For minor release
npm version minor -m "Release v%s"
# For major release
npm version major -m "Release v%s"
# Push commits and tags
git push origin main --follow-tags
- Check GitHub Actions
- Verify NPM publication
- Check GitHub release creation
Only use if automation fails:
# 1. Run all checks
npm test
npm run lint
npm run test:coverage
# 2. Build if needed
npm run build
# 3. Publish to NPM
npm publish
# 4. Create GitHub release manually
gh release create v1.x.x --notes "Release notes here"
Before creating a release:
- All tests pass (
npm test
) - Linting passes (
npm run lint
) - Coverage acceptable (
npm run test:coverage
) - CHANGELOG.md updated
- Version bump makes sense
- Breaking changes documented
- README.md updated if needed
- No debug console.log statements
- Dependencies updated if needed
- Work on feature/fix branches
- Create PRs to develop branch
- Merge when ready
- Merge develop to main
- Update CHANGELOG.md
- Review documentation
- Final testing
- Create version tag
- Push to trigger automation
- Monitor release process
- Verify NPM package
- Test installation
- Update wiki if needed
- Announce if major release
Check workflow logs:
gh run view <run-id> --log-failed
Common issues:
- NPM token expired
- Test failures
- Network issues
If NPM publish fails but tag exists:
# Delete the tag
git push --delete origin v1.x.x
git tag -d v1.x.x
# Fix issue and retry
npm version patch
git push origin main --follow-tags
If automation completely fails:
# Ensure logged in to NPM
npm login
# Publish with OTP if required
npm publish --otp=123456
- Follow Semantic Versioning
- Format: MAJOR.MINOR.PATCH
- Pre-release: x.x.x-beta.1
Patch:
- Critical bug fixes
- Security updates
- Documentation fixes
Minor:
- New features ready
- Multiple improvements accumulated
- Monthly scheduled release
Major:
- Breaking changes required
- Major milestone reached
- Annual major version
Good release notes include:
## [1.9.0] - 2024-01-15
### Added
- New feature descriptions
- New commands
### Changed
- Modified behaviors
- Improved performance
### Fixed
- Bug fixes with issue numbers
### Security
- Security patches
- Link to issues/PRs
- Credit contributors
- Explain breaking changes
- Include migration guides
The automated workflow creates releases with:
- Version tag
- Release notes from CHANGELOG
- Source code archives
- NPM package link
For security issues:
- Don't disclose details in public PR
- Fix in private branch
- Release immediately
- Disclose after users update
- Patches: As needed for critical fixes
- Minor: Monthly or when features ready
- Major: Yearly or for breaking changes
Required for releases:
- NPM_TOKEN: GitHub secret for NPM publish
- GITHUB_TOKEN: Automatic for workflows
- Maintainer: NPM publish permissions
-
Verify Installation
npm install -g claude-memory@latest cmem --version
-
Test Basic Commands
cmem init cmem stats
-
Update Documentation
- Wiki updates
- Example updates
- Tutorial updates
-
Announce Release
- GitHub discussions
- Social media
- User notifications
See also:
- Development-Workflow - Development process
- Testing-Guidelines - Test requirements
- Contributing-Guidelines - How to contribute