This monorepo uses commitizen for version management with independent versioning for two components:
| Component | Scope | Bump Command | Tag Example |
|---|---|---|---|
| MCP Server | mcp or none |
./scripts/bump-mcp.sh |
v0.54.0 |
| Helm Chart | helm |
./scripts/bump-helm.sh |
nextcloud-mcp-server-0.54.0 |
Note: The Astrolabe Nextcloud app has been moved to its own repository at cbcoutinho/astrolabe.
Use conventional commits with scopes to target specific components:
# MCP server changes
feat(mcp): add calendar sync API
fix(mcp): resolve authentication bug
# Helm chart changes
feat(helm): add resource limits
docs(helm): update values documentationUnscoped commits default to the MCP server:
feat: add new feature # → MCP server (v0.54.0)git commit -m "feat(helm): add ingress annotations"
git commit -m "feat(mcp): add calendar sync"# Bump MCP server (reads commits with scope=mcp or unscoped)
./scripts/bump-mcp.sh
# → Creates tag: v0.54.0
# → Updates: pyproject.toml, Chart.yaml:appVersion
# Bump Helm chart (reads commits with scope=helm)
./scripts/bump-helm.sh
# → Creates tag: nextcloud-mcp-server-0.54.0
# → Updates: Chart.yaml:version
git push --follow-tagsEach component maintains its own CHANGELOG.md:
- MCP Server:
CHANGELOG.md(root) - includesfeat(mcp):and unscoped commits - Helm Chart:
charts/nextcloud-mcp-server/CHANGELOG.md- includesfeat(helm):only
For specific increments:
# Patch bump (0.53.0 → 0.53.1)
uv run cz bump --increment PATCH
# Minor bump (0.53.0 → 0.54.0)
uv run cz bump --increment MINOR
# Major bump (0.53.0 → 1.0.0)
uv run cz bump --increment MAJOR
# For non-MCP components, use --config
cd charts/nextcloud-mcp-server
uv run cz --config .cz.toml bump --increment MINOR- MCP Server: Follows PEP 440,
major_version_zero = true(0.x.x for pre-1.0) - Helm Chart: Follows PEP 440, starts at 0.53.0 (continues from current)
The Helm chart has TWO version fields:
-
version: Chart packaging version (bumped byfeat(helm):)- Example:
0.53.0→0.54.0when adding resource limits
- Example:
-
appVersion: MCP server version being deployed (bumped byfeat(mcp):)- Example:
"0.53.0"→"0.54.0"when MCP server releases
- Example:
This allows the chart to evolve independently from the application.