source-command-unifi-mcp-release-prep
Use this skill when the user asks to run the migrated source command unifi-mcp-release-prep.
Command Template
Prepare a new release for the UniFi MCP Server with comprehensive quality checks.
This command orchestrates the complete release preparation process including version bumping, changelog generation, testing, and validation.
Steps to execute:
Ask user for release details:
- Version number (e.g., "0.2.0") or type (major/minor/patch)
- Release type: major, minor, patch, or custom
- Brief release description
Verify current state:
- Check git status (must be clean or on release branch)
- Verify on main branch or create release branch
- Check for uncommitted changes
- Ensure all tests pass
Run comprehensive quality checks:
- Code formatting:
black --check src/ tests/ - Import sorting:
isort --check-only src/ tests/ - Linting:
ruff check src/ tests/ - Type checking:
mypy src/ - Security scan:
bandit -r src/ -ll - Dependency check:
safety check
- Code formatting:
Run full test suite with coverage:
- Execute:
pytest --cov=src --cov-report=term-missing -v - Verify coverage meets 80% minimum threshold
- Check that all tests pass
- If coverage < 80%, warn user and ask to proceed
- Execute:
Update version numbers:
- Update
pyproject.tomlversion field - Update
src/__init__.pyversion - Update version in README.md badges
- Update Docker image tags in documentation
- Update
Generate changelog:
- Get commits since last tag:
git log $(git describe --tags --abbrev=0)..HEAD --oneline - Categorize commits:
- Features (feat:)
- Bug fixes (fix:)
- Documentation (docs:)
- Refactoring (refactor:)
- Tests (test:)
- Other changes
- Update CHANGELOG.md with new version section
- Get commits since last tag:
Update documentation:
- Run /unifi-mcp-update-docs to sync API.md
- Verify README.md is current
- Check that examples still work
- Update compatibility matrix if needed
Create release summary:
- Version number
- Release date
- Highlights (top 3-5 features/fixes)
- Breaking changes (if any)
- Contributors
- Full changelog
Prepare release artifacts:
- Tag format:
v{version}(e.g., v0.2.0) - Release branch:
release/v{version}(if not on main) - Draft GitHub release notes
- Tag format:
Report back with:
Pre-release checklist status:
- All tests passing
- Coverage >= 80%
- No linting errors
- No type errors
- No security vulnerabilities
- Documentation updated
- Changelog generated
- Version bumped
Release summary
Next steps:
- Review changes
- Create release tag
- Push to GitHub
- Create GitHub release
- Publish to PyPI (optional)
- Build and push Docker images
Example workflow:
User: "Prepare release 0.2.0"
Assistant checks:
✓ Git status clean
✓ On main branch
✓ All tests pass (179/179)
✗ Coverage: 34.10% (below 80% target)
✓ No linting errors
✓ No type errors
✓ No security issues
Release Summary:
Version: 0.2.0
Date: 2025-01-15
Type: Minor release
Highlights:
- Zone-Based Firewall implementation (60% complete)
- Traffic Flows integration (100% complete)
- 22 new tool modules
- Comprehensive CI/CD pipeline
Breaking Changes: None
Warning: Test coverage (34.10%) is below 80% target.
Proceed with release? (y/n)
Safety checks:
- Never release with failing tests
- Warn if coverage < 80%
- Verify no uncommitted changes
- Check for security vulnerabilities
- Confirm version number doesn't already exist