| name | mlops-collaboration |
| description | Guide to prepare MLOps projects for sharing, collaboration, and community engagement. |
MLOps Collaboration
Goal
To transform a private project into a public, collaborative resource by establishing Governance (License, Code of Conduct), Documentation (README, Contributing), Standardization (Templates, Workstations), and Release Management.
Prerequisites
- Language: Python
- Platform: GitHub
- Context: Open sourcing or team collaboration.
Instructions
1. Repository Governance
Set the rules of engagement.
- Code of Conduct: Add
CODE_OF_CONDUCT.md to foster a safe community.
- Protection: Protect the
main branch (require PRs, status checks).
- Review: Automate preliminary reviews with tools like Gemini Code Assist (
.gemini/config.yaml).
- Ignore: Comprehensive
.gitignore (exclude secrets, data, venvs).
2. Comprehensive Documentation
Make the project usable and understandable.
- README.md: The landing page (Badges, Hook, Quickstart).
- MkDocs: Use for full documentation sites (API ref, tutorials) when
README.md gets too long.
- CONTRIBUTING.md: Guide for developers (env setup, PR process, testing standards).
- CHANGELOG.md: Generate from Conventional Commits with
git-cliff (replaces Commitizen); commit the rendered file.
3. Standardization & Workstations
Eliminate "it works on my machine".
- Templates: Use
cookiecutter for scaffolding and cruft update to keep projects synced.
- Workstations: Add
.devcontainer/devcontainer.json.
- Define Docker image, extensions, and settings.
- Enable GitHub Codespaces support.
4. Release Management
Ship with confidence.
- Versioning: Follow SemVer (MAJOR.MINOR.PATCH) driven by Conventional Commits.
- Changelog: Generate with
git-cliff from the commit history (replaces Commitizen/Keep-a-Changelog by hand).
- Workflows:
- GitHub Flow: Small teams, continuous delivery (
main is stable).
- Git Flow: Scheduled releases (
develop + release branches).
- Forking: Open source, distributed contributors.
- Process: Bump version ->
git-cliff changelog -> annotated vX.Y.Z tag (git tag -a vX.Y.Z) -> gh release create vX.Y.Z.
Self-Correction Checklist