Open Source Release Checklist
This document provides a comprehensive checklist for preparing the Gopher MCP Server for open source release.
โ Pre-Release Checklist
๐ Repository Setup
- GitHub Pages Documentation: Automated deployment configured
- PyPI Publishing: OIDC trusted publishing workflow created
- Release Management: Comprehensive release workflow implemented
- Issue Templates: Bug reports, feature requests, and questions
- PR Template: Standardized pull request template
- Branch Protection: Documentation for recommended settings
- Dependabot: Automated dependency updates configured
- CODEOWNERS: Code ownership defined
๐ Security & Compliance
- LICENSE: MIT license present and properly formatted
- SECURITY.md: Security policy documented
- Sensitive Data: No secrets, API keys, or sensitive information in repository
- Dependencies: All dependencies reviewed for security vulnerabilities
- Security Scanning: Bandit and safety checks in CI/CD
๐ Documentation
- README.md: Comprehensive, public-ready documentation
- CONTRIBUTING.md: Clear contribution guidelines
- CHANGELOG.md: Version history documented
- API Documentation: Complete API reference
- Installation Guide: Multiple installation methods documented
- GitHub Pages: Documentation site configured and building
๐งช Quality Assurance
- Test Coverage: Comprehensive test suite with good coverage
- CI/CD Pipeline: All tests passing on multiple platforms
- Code Quality: Linting, formatting, and type checking
- External Contributors: CI/CD works for forks and external PRs
- Documentation Build: MkDocs builds without errors
๐ฆ Package Management
- pyproject.toml: Properly configured with all metadata
- Version Management: Semantic versioning strategy
- Build System: Package builds correctly
- Distribution: Both wheel and source distributions created
๐ Release Process
1. Pre-Release Preparation
# Run comprehensive checks
python scripts/prepare-release.py --version 1.0.0
# Review and commit changes
git add .
git commit -m "Prepare release 1.0.0"
2. Repository Configuration
GitHub Repository Settings
- General Settings:
- โ Enable Issues, Wikis, Discussions
- โ Configure default branch protection
-
โ Set up merge strategies
-
Security Settings:
- โ Enable Dependabot alerts and updates
- โ Enable secret scanning
-
โ Configure security advisories
-
Pages Settings:
- โ Source: GitHub Actions
- โ Custom domain (optional)
- โ Enforce HTTPS
Branch Protection Rules
Configure for main
branch:
- โ
Require pull request reviews (1 reviewer)
- โ
Require status checks:
- test
(all Python versions and platforms)
- lint
(code quality checks)
- security
(security scans)
- docs
(documentation build)
- โ
Require branches to be up to date
- โ
Include administrators
- โ
Restrict force pushes and deletions
3. PyPI Setup
Trusted Publishing Configuration
- PyPI Account:
- Go to PyPI โ Account Settings โ Publishing
-
Add trusted publisher:
- PyPI Project Name:
gopher-mcp
- Owner:
cameronrye
- Repository:
gopher-mcp
- Workflow:
release.yml
- Environment:
pypi
- PyPI Project Name:
-
TestPyPI (for testing):
- Repeat above for TestPyPI
- Environment:
testpypi
4. Environment Setup
GitHub Environments
- Create
pypi
environment: - Protection rules: Require reviewer
-
Deployment branches: Protected branches only
-
Create
testpypi
environment: - Protection rules: Require reviewer
- Deployment branches: All branches
5. Release Execution
Create Release
# Create and push tag (triggers release workflow)
git tag -a v1.0.0 -m "Release 1.0.0"
git push origin v1.0.0
Monitor Release
- GitHub Actions: Verify all workflows pass
- PyPI: Confirm package is published
- Documentation: Verify docs are deployed
- GitHub Release: Check release notes and assets
๐ Post-Release Verification
Package Installation
Documentation Access
- โ GitHub Pages site loads correctly
- โ All documentation links work
- โ API reference is complete
- โ Installation instructions are accurate
Community Features
- โ Issue templates work correctly
- โ PR template appears for new PRs
- โ Discussions are enabled
- โ Security policy is accessible
๐ Success Metrics
Technical Metrics
- โ All CI/CD workflows passing
- โ Test coverage > 80%
- โ Documentation builds without warnings
- โ Package installs successfully
- โ Security scans pass
Community Metrics
- โ Clear contribution guidelines
- โ Responsive issue templates
- โ Professional README
- โ Comprehensive documentation
- โ Active maintenance signals
๐ ๏ธ Maintenance Tasks
Regular Tasks (Weekly)
- Review and merge Dependabot PRs
- Monitor security alerts
- Review community contributions
- Update documentation as needed
Periodic Tasks (Monthly)
- Review and update dependencies
- Analyze usage metrics
- Update documentation
- Plan feature roadmap
Release Tasks (As Needed)
- Update version numbers
- Update changelog
- Create release notes
- Announce releases
๐ Troubleshooting
Common Issues
CI/CD Failures
- Check workflow logs in GitHub Actions
- Verify all required secrets are set
- Ensure branch protection rules are correct
PyPI Publishing Issues
- Verify trusted publishing is configured
- Check environment protection rules
- Ensure package metadata is correct
Documentation Issues
- Verify MkDocs configuration
- Check for broken links
- Ensure all files are included in navigation
Getting Help
- Check GitHub Discussions
- Review existing issues
- Contact maintainers via issue tracker
๐ Notes
- This checklist should be updated as the project evolves
- All team members should be familiar with the release process
- Regular reviews of security and quality practices are essential
- Community feedback should be incorporated into future releases