Description
Is your feature request related to a problem? Please describe.
This proposal suggests that Apache Polaris adopt the Conventional Commits v1.0.0 standard for commit messages.
Structured commit messages offer significant benefits, particularly for a modern open-source project like Polaris, which is positioned at the intersection of search, data, and developer productivity.
Motivation
Adopting Conventional Commits provides the following advantages:
- Improved readability of commit history, making it easier to understand the intent of changes.
- Automated changelog generation with tools like semantic-release or standard-version.
- Better release management via semantic versioning based on commit types (e.g.,
fix:
= patch,feat:
= minor,BREAKING CHANGE:
= major). - Standardized workflow for both core contributors and external collaborators.
- Enables CI/CD optimizations such as impact-based testing, change classification, and conditional deploys.
Inspiration from Other Apache Projects
Several Apache Software Foundation (ASF) projects have adopted structured commit messaging patterns, inspired by or aligned with Conventional Commits:
-
- Uses prefixes such as
feat
,fix
,docs
,test
,chore
, andrefactor
. - Enforces commit format for PR merges. See: Airflow Commit Message Guidelines
- Uses prefixes such as
-
- Actively encourages Conventional Commits in its contributing guide.
- Uses changelog automation based on commit metadata.
-
- Also encourages meaningful, structured commit messages.
Adopting this in Apache Polaris aligns with best practices adopted across the foundation and supports long-term project maintainability and automation.
Compatibility
This is a non-breaking workflow enhancement and can be adopted incrementally. No impact on runtime behavior or existing APIs.
References
- https://www.conventionalcommits.org/en/v1.0.0/
- https://github.com/conventional-changelog/commitlint
- Apache Airflow Commit Guidelines
- Apache Superset Commit Guidelines
Describe the solution you'd like
Proposed Format (with Examples)
Following the Conventional Commits] specification:
feat(parser): add support for query metadata filtering
fix(ui): correct tab rendering when resizing sidebar
docs: update README with configuration examples
refactor(core): simplify planner interface logic
chore: upgrade dependencies and clean up types
Example with a breaking change:
feat(api): refactor search API response format
BREAKING CHANGE: search API now returns a flattened result instead of nested hits
Describe alternatives you've considered
Implementation Plan
- Add commit message guidelines to
CONTRIBUTING.md
. - Optionally add a commit hook using [commitlint](https://github.com/conventional-changelog/commitlint).
- Integrate changelog generation and semantic versioning into the release process (e.g., via GitHub Actions).
- Encourage consistent commit messages via pull request templates and documentation.
Additional context
No response