Skip to content

ci: add conventional commit check and release please#1356

Merged
vincentsarago merged 12 commits intomainfrom
ci/add-conventional-commit-check-and-release-please
Mar 31, 2026
Merged

ci: add conventional commit check and release please#1356
vincentsarago merged 12 commits intomainfrom
ci/add-conventional-commit-check-and-release-please

Conversation

@lhoupert
Copy link
Copy Markdown
Contributor

@lhoupert lhoupert commented Mar 30, 2026

Summary

This branch tightens release automation on `main` with Release Please, adds enforced conventional commits in CI and optionally via pre-commit (commit-msg), and documents the workflow for contributors. It also includes follow-up CI fixes, chart/version alignment for release automation, and dependency lock updates.

What changed

Conventional commits

  • New workflow .github/workflows/commitlint.yml runs on every push (all branches) and validates commits in the pushed range with Commitizen (cz check), using uv run with a pinned commitizen==4.13.9.
  • .pre-commit-config.yaml: commitizen hook on the commit-msg stage so invalid messages can be blocked locally after developers run pre-commit install --hook-type commit-msg.

Release Please + PyPI

  • .github/workflows/release.yml: on push to main, Release Please opens/manages release PRs (uses release-please-config.json and .release-please-manifest.json). On release: published, the workflow builds artifacts and publishes to PyPI with OIDC trusted publishing (pypa/gh-action-pypi-publish).
  • New Release Please config wires changelog (CHANGES.md, GitHub style), version bumps for root pyproject.toml, all subpackage __init__.py / pyproject.toml extras, Lambda Dockerfile, and Helm Chart.yaml (appVersion).

Helm chart independent versioning

  • release-please-config.json: the Helm chart (deployment/k8s/charts/) is registered as a separate release-please package (release-type: helm). Its version: field in Chart.yaml is bumped independently from the Python package, driven by conventional commits that touch files under deployment/k8s/charts/. Helm releases are tagged helm-vX.Y.Z.
  • deployment/k8s/charts/CHANGELOG.md: created as the changelog file required by the helm release type.
  • .release-please-manifest.json: tracks the chart version (2.1.1) separately from the Python package version (2.0.0).

Docs & housekeeping

  • RELEASING.md: fully rewritten to reflect the automated release process; replaces the old manual checklist with a description of the release-please flow, the independent helm chart release flow, and the commit convention table.
  • CONTRIBUTING.md: guidance updated for the new commit/release expectations.
  • pyproject.toml / package versions and chart/lambda metadata adjusted so Release Please can keep them in sync; uv.lock refreshed.
  • Minor tweak in .github/workflows/check_charts.yaml.

Notes for reviewers

  • Local enforcement: Commit message checks only run in Git hooks if pre-commit (including commit-msg) is installed; CI still enforces on push.
  • After merge to main, confirm Release Please app/permissions and PyPI trusted publisher settings match this workflow.
  • The Helm chart version: and the Python package version are intentionally independent: the chart only gets a new release when commits touch deployment/k8s/charts/. The appVersion: in Chart.yaml (which controls the default image tag) continues to track the Python package version automatically.

Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'TiTiler performance Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.30.

Benchmark suite Current: f21acad Previous: 4b5f858 Ratio
WebMercator response_time 0.03 s 0.02 s 1.50
WGS1984Quad response_time 0.04 s 0.03 s 1.33

This comment was automatically generated by workflow using github-action-benchmark.

The Helm chart (`deployment/k8s/charts/`) is versioned independently from the Python package. release-please opens a separate helm release PR when commits touch files under `deployment/k8s/charts/`. That PR bumps `version:` in `Chart.yaml` and updates `deployment/k8s/charts/CHANGELOG.md`. The resulting GitHub release is tagged `helm-vX.Y.Z`.

5. Push your release branch, create a PR, and get approval
**Commit messages matter for chart releases.** A chart version bump only happens when a commit both:
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vincentsarago see explanation

@vincentsarago vincentsarago merged commit 319ab8b into main Mar 31, 2026
10 checks passed
@vincentsarago vincentsarago deleted the ci/add-conventional-commit-check-and-release-please branch March 31, 2026 05:59
@github-actions github-actions bot mentioned this pull request Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants