Release Process - robwhite4/claude-memory GitHub Wiki

Release Process

This guide covers how Claude Memory releases are created and published.

Overview

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

Release Types

Patch Release (x.x.X)

For bug fixes and minor improvements:

  • Bug fixes
  • Documentation updates
  • Performance improvements
  • Security patches
  • Small non-breaking changes

Minor Release (x.X.0)

For new features and enhancements:

  • New commands or subcommands
  • New configuration options
  • Significant improvements
  • New integrations
  • Backward-compatible API changes

Major Release (X.0.0)

For breaking changes:

  • Removed features
  • Changed command syntax
  • Modified file formats
  • Architectural changes
  • Breaking API changes

Automated Release Process

1. Prepare Release

# 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

2. Create Version Tag

# 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"

3. Push to Trigger Release

# Push commits and tags
git push origin main --follow-tags

4. Monitor Release

  • Check GitHub Actions
  • Verify NPM publication
  • Check GitHub release creation

Manual Release Process

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"

Pre-release Checklist

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

Release Workflow

1. Development Phase

  • Work on feature/fix branches
  • Create PRs to develop branch
  • Merge when ready

2. Release Preparation

  • Merge develop to main
  • Update CHANGELOG.md
  • Review documentation
  • Final testing

3. Release Creation

  • Create version tag
  • Push to trigger automation
  • Monitor release process

4. Post-release

  • Verify NPM package
  • Test installation
  • Update wiki if needed
  • Announce if major release

Troubleshooting Releases

Release Workflow Fails

Check workflow logs:

gh run view <run-id> --log-failed

Common issues:

  • NPM token expired
  • Test failures
  • Network issues

NPM Publish Fails

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

Manual NPM Publish

If automation completely fails:

# Ensure logged in to NPM
npm login

# Publish with OTP if required
npm publish --otp=123456

Version Guidelines

Version Numbering

When to Release

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

Release Notes

Good release notes include:

Format

## [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

Guidelines

  • Link to issues/PRs
  • Credit contributors
  • Explain breaking changes
  • Include migration guides

GitHub Release

The automated workflow creates releases with:

  • Version tag
  • Release notes from CHANGELOG
  • Source code archives
  • NPM package link

Security Releases

For security issues:

  1. Don't disclose details in public PR
  2. Fix in private branch
  3. Release immediately
  4. Disclose after users update

Release Schedule

  • Patches: As needed for critical fixes
  • Minor: Monthly or when features ready
  • Major: Yearly or for breaking changes

Environment Setup

Required for releases:

  • NPM_TOKEN: GitHub secret for NPM publish
  • GITHUB_TOKEN: Automatic for workflows
  • Maintainer: NPM publish permissions

Post-release Tasks

  1. Verify Installation

    npm install -g claude-memory@latest
    cmem --version
  2. Test Basic Commands

    cmem init
    cmem stats
  3. Update Documentation

    • Wiki updates
    • Example updates
    • Tutorial updates
  4. Announce Release

    • GitHub discussions
    • Social media
    • User notifications

See also:

⚠️ **GitHub.com Fallback** ⚠️