Contributing to OrpycaMCP¶
Thank you for your interest in improving OrpycaMCP!
Before Contributing¶
- Read the architecture and the ADRs
- Review the roadmap to see what is planned
- Open an issue on GitLab describing your proposal before coding
Contribution Rules¶
- Code in English — identifiers, comments, commit messages
- Bilingual documentation — Spanish in
docs/es/, English indocs/en/ - Tests required — at least one test per new endpoint
- Annotated types — Python 3.11+ type hints in all functions
- AGPL v3 — do not include code with incompatible licenses
Workflow¶
# 1. Fork the repository
# 2. Create a branch in the format feat/name or fix/name
git checkout -b feat/document-service-radicacion-entrada
# 3. Develop with tests
cd services/document-service
pytest tests/ -v
# 4. Update the corresponding documentation
# (the CI verifies it automatically)
# 5. Commit following Conventional Commits
git commit -m "feat(document): implement entrada document registration"
# 6. Push and open a Merge Request
Commit Convention¶
| Type | When to use it |
|---|---|
feat |
New functionality |
fix |
Bug fix |
docs |
Documentation only |
refactor |
Restructuring without behavior change |
test |
Add or fix tests |
chore |
Maintenance, dependencies |
ci |
Pipeline changes |
Example: feat(archive): add expediente state machine (open → closed → transferred)
PR Checklist¶
- [ ] The code passes
ruff checkandmypy - [ ] New tests pass with
pytest - [ ]
docs/es/api.mdupdated if I changed endpoints - [ ]
CHANGELOG.mdhas an entry for this change - [ ] No hardcoded credentials
- [ ] SQLAlchemy models have Alembic migrations