Thank you for your interest in contributing to Monoco! We welcome contributions from everyone.
- Fork the repository on GitHub.
- Clone your fork locally.
- Install dependencies:
pip install -e .
Monoco follows an Issue-Driven Development process.
- Find or Create an Issue:
- Use the CLI:
monoco issue create feature -t "My Feature" - Or browse existing issues in
Issues/.
- Use the CLI:
- Create a Branch:
git checkout -b feat/my-feature
- Implement:
- Follow the "Task as Code" philosophy.
- Keep changes atomic.
- Verify:
- Run tests:
pytest - Lint issues:
monoco issue lint
- Run tests:
- Submit a Pull Request:
- Reference the Issue ID (e.g.,
Fixes FEAT-0123) in your PR description.
- Reference the Issue ID (e.g.,
- Python: Follow PEP 8. Use
rufforblackif available. - Commit Messages: Clear and concise. Prefer "Why" over "What".
- Join our discussions on GitHub.
- Be respectful and follow our Code of Conduct.
Monoco uses automated publishing to PyPI via GitHub Actions.
Edit pyproject.toml:
[project]
version = "0.2.0" # Bump versiongit add pyproject.toml
git commit -m "chore: bump version to 0.2.0"
git push
# Create and push tag
git tag v0.2.0
git push origin v0.2.0GitHub Actions will automatically:
- ✅ Run tests (
pytest) - ✅ Lint issues (
monoco issue lint --recursive) - ✅ Build distribution (
uv build) - ✅ Publish to PyPI (via Trusted Publishing)
pip install --upgrade monoco-toolkit
monoco --versionWe follow Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
For alpha/beta releases:
# Update version to "0.2.0-alpha.1"
git tag v0.2.0-alpha.1
git push origin v0.2.0-alpha.1If the release fails, check:
- PyPI Trusted Publisher is configured correctly (see
docs/pypi-trusted-publishing.md) - All tests pass locally
- GitHub Actions has
id-token: writepermission