Skip to content

Add Conventional Commit tooling #1503

@jedeen

Description

@jedeen

Context

Currently, we have guidelines for how to format commit message in general, but do not have enforced standards for how to add commit metadata (is this a breaking change, is this a bugfix, other changes adjacent to semantic versioning concerns, etc.) We stopgap some of that with Github labels, but those do not exist in the Git commit history.

Proposal

  • enforce the Conventional Commit format for all commits that are merged to the main branch
    • this will allow us to automatically determine the appropriate semantic version for post-1.0 releases of Excalibur
  • add optional linting command for developers to use locally
    • this prevents having to require that community contributors follow the strict commit message format, since we squash and rebase all pull requests when merging
  • automate changelog updates on pull request merge
    • if commit messages are required to be well-formatted and provide proper context, then the vast majority of the changelog can be automated
  • maintain the majority of our git commit message format conventions, as described in our Contributing document
  • update the Contributing document to include the new Conventional Commits formatting guidelines

Commit Format Examples

General template:

<type>[optional scope]: <Description>

[optional body]

closes #issue_number

Specific example:

fix: Prevent sounds from playing when the game is stopped

Ensure all sounds stop when the game is stopped, and Sound.play() does not play sounds when the game is stopped

closes #1476 

additional info: https://www.conventionalcommits.org

See also #777

Metadata

Metadata

Assignees

Labels

core teamThis issue should be done by an Excalibur core memberstaleThis issue or PR has not had any activity recentlytools

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions