UNPKG

@rhofkens/mcp-quotes-server-claude-code

Version:

Model Context Protocol (MCP) server for managing and serving quotes

207 lines (158 loc) 5.18 kB
# Release Process This document outlines the release process for MCP Quotes Server. ## Pre-Release Checklist Before creating a release, ensure all items are checked: ### Code Quality - [ ] All tests pass: `npm test` - [ ] No linting errors: `npm run lint` - [ ] TypeScript compiles without errors: `npm run typecheck` - [ ] Code coverage meets minimum requirements (80%): `npm run test:coverage` - [ ] All PRs for the release have been merged - [ ] No critical security vulnerabilities in dependencies: `npm audit` ### Documentation - [ ] README.md is up to date - [ ] API documentation reflects all changes - [ ] CHANGELOG.md has been updated with all changes - [ ] Migration guide written (if breaking changes) - [ ] All new features are documented - [ ] Examples are updated and working ### Testing - [ ] Manual testing completed using [MANUAL_TEST_CHECKLIST.md](./MANUAL_TEST_CHECKLIST.md) - [ ] Integration tests pass (if applicable) - [ ] Performance benchmarks meet requirements - [ ] Tested on all supported Node.js versions - [ ] Tested on all supported operating systems ## Version Bump Process 1. **Determine version number** following [Semantic Versioning](https://semver.org/): - MAJOR (x.0.0): Breaking changes - MINOR (0.x.0): New features, backwards compatible - PATCH (0.0.x): Bug fixes, backwards compatible 2. **Update version** in multiple places: ```bash # Update package.json version npm version <major|minor|patch> ``` 3. **Prepare Release Notes**: - Review all commits since last release - Group changes by type (Added, Changed, Fixed, etc.) - Highlight breaking changes if any 4. **Commit version bump**: ```bash git add package.json package-lock.json CHANGELOG.md git commit -m "chore: bump version to vX.Y.Z" ``` ## Build and Test 1. **Clean build**: ```bash rm -rf dist/ npm run build ``` 2. **Run full test suite**: ```bash npm run test:coverage npm run lint npm run typecheck ``` 3. **Test the built package locally**: ```bash # Pack the package npm pack # Test in a separate directory cd /tmp mkdir test-mcp-quotes cd test-mcp-quotes npm init -y npm install /path/to/mcp-quotes-server-X.Y.Z.tgz # Verify it works node -e "console.log(require('mcp-quotes-server'))" ``` ## NPM Publish Steps 1. **Login to npm** (if not already): ```bash npm login ``` 2. **Publish to npm**: ```bash # For regular release npm publish # For pre-release (beta, rc, etc.) npm publish --tag beta ``` 3. **Verify publication**: ```bash npm view mcp-quotes-server ``` ## Git Release 1. **Create and push tag**: ```bash git tag -a vX.Y.Z -m "Release version X.Y.Z" git push origin vX.Y.Z ``` 2. **Create GitHub release**: - Go to GitHub releases page - Click "Create a new release" - Select the tag you just created - Use "vX.Y.Z" as release title - Copy relevant section from CHANGELOG.md to release notes - Attach any additional assets if needed - Publish release ## Post-Release Verification 1. **Verify npm package**: ```bash # Install from npm in a clean directory cd /tmp mkdir verify-release cd verify-release npm init -y npm install mcp-quotes-server@X.Y.Z # Run basic smoke test npx mcp-quotes-server --version ``` 2. **Test MCP integration**: - Install in a test MCP client - Verify tools are available - Test basic functionality 3. **Monitor for issues**: - Check GitHub issues for new reports - Monitor npm download stats - Check for any error reports ## Rollback Procedure If critical issues are found: 1. **Deprecate the broken version**: ```bash npm deprecate mcp-quotes-server@X.Y.Z "Critical bug found, please use version X.Y.Z-1" ``` 2. **Fix the issue** and create a patch release immediately 3. **Document the issue** in CHANGELOG.md ## Communication After successful release: 1. **Update project status**: - Update badges in README if needed - Update project website (if applicable) 2. **Announce the release**: - Create announcement for major/minor releases - Post in relevant communities - Update any integration documentation 3. **Thank contributors**: - Mention contributors in release notes - Thank community for bug reports and feedback ## Release Schedule - **Patch releases**: As needed for bug fixes - **Minor releases**: When new features are ready - **Major releases**: Only when necessary for breaking changes ## Security Releases For security fixes: 1. Follow the regular process but expedite testing 2. Include security notice in CHANGELOG.md 3. Use `npm publish --tag security` initially 4. Move to latest tag after verification 5. Consider notifying users directly for critical vulnerabilities ## Automation Notes Consider automating these steps in the future: - Version bumping with conventional commits - Changelog generation - GitHub release creation - NPM publishing via CI/CD - Automated testing across Node versions --- Remember: Take your time with releases. It's better to delay a release than to publish broken code.