This playbook defines the definitive manual and automated checks maintainers must execute before shipping any formal production versions of EasyCord.
graph LR
A[Automated Quality Gates] --> B[Manual Sanity Audits]
B --> C[Release Sign-Off]
Ensure the CI pipelines return clean slates before proceeding.
- Unit Tests: All unit tests must clear across the target Python matrix (3.10, 3.11, 3.12).
pytest tests/ python scripts/verify_plugin_tests.py
- Type Checking: Pyright must report zero errors. Dynamic decorator warnings are tracked separately.
pyright easycord/ tests/
- Linting: Ruff must return zero critical rule violations.
ruff check easycord tests --select E9,F63,F7,F82
Enforce strict matches between versions declared across the ecosystem:
pyproject.toml: Check theversionfield.easycord/__init__.py: Check the__version__string.- Documentation: Ensure any documented versions align with the targeted release.
Run the automated metadata checker to catch drift:
python scripts/check_release_metadata.pyBefore release sign-off, maintainers must perform the following manual audits:
- Changelog Review: Review automatically compiled
CHANGELOG.mddata. Explicitly check for any missing breaking change declarations. - Security & Prompt Injection: Run a targeted manual audit focusing on prompt-injection exposure vectors or access control flaws within plugin systems (specifically
ai_moderator.py). - Dependency Evaluation: Evaluate third-party dependencies in
pyproject.tomlfor outdated version pins or known vulnerabilities.
Once all gates are cleared, tag the release and publish to PyPI:
git tag v5.x.x
git push --tags
python -m build
twine upload dist/*