Guidelines for Contributing¶
In general, code contributions are in the form of GitHub PRs, and require review and approval from maintainers with write access.
Conventional Commits¶
Lance projects use the Conventional Commits standard for commit messages. This standard helps differentiate between:
- Breaking changes vs non-breaking changes (using
!andBREAKING CHANGE:footer) - Features (
feat:), fixes (fix:), documentation updates (docs:), and other change types
Commit messages following this standard are used to automatically generate release notes during each release.
Feature Design Proposals¶
Designs in Lance evolve naturally with community input and consensus. Major technical changes are discussed organically through the following approach:
- Start a Discussion: Create a GitHub Discussion to publish your design proposal and gather community feedback. Use discussion threads to explore different aspects and alternatives
- Iterate on Design: Engage with the community to refine the approach based on their input and expertise
- Draft PRs for Details: Once the general direction is acceptable to the community, publish draft PRs to help hash out implementation details. Draft PRs are encouraged as they facilitate concrete discussions
- Break Down Changes: Split large draft PRs into smaller, incremental PRs for easier review and to demonstrate progress
- Formal Voting: Maintainers with write access can approve code modifications related to the design. If the design requires Lance format spec changes, a separate vote will be conducted on GitHub Discussions following the voting requirements
AI Tooling Integrations¶
We encourage contributors to continuously improve integrations with AI tools, including:
- Enhancing coding agent guidelines such as
AGENTS.mdandCLAUDE.md - Providing feedback to AI code reviewers
- Developing and improving AI-driven GitHub actions
Project Specific Contributing Guidelines¶
Each project maintains its own detailed contributing guidelines in files named CONTRIBUTING.md.