This repository contains guidelines, templates, configurations, etc for MDAI that will help us format everything properly so that our changelog generator will function as expected. In addition to that, this repository will also contain the changelog that outlines changes across different MDAI components that makes up an release.
Changes can only be Squashed & Merged to main of any repositories of MDAI via a pull request. The pull request must follow the format outlined in this section to both give reviewer an easier time to understand context of the pull request and also to ensure our changelog generator can parse the changes properly.
Title of a pull request must follow the conventional commit format (without optional body and footer), meaning the title must following the following structure:
<type>(<optional scope>): <subject>
Must be one of the following:
feat: Add or change a featurefix: Fixes issue with the codebase (e.g., bug, business logic error, typo, etc)security: A type of fixes that resolve security concernsstyle: A type of fixes address code style (e.g., white-space, formatting, missing semi-colons, etc) and do not affect application behavior
doc: Documentation only changesrefactor: Rewrite or restructure code without altering behaviorperf: A type of refactor that specifically improves performance
test: Adding missing tests or correcting existing testsrevert: Reverts a previous commit- Note: For revert type,
<subject>must be the commit message of the commit its reverting (e.g.,revert: fix: fix container/service builder).
- Note: For revert type,
build: Affect build-related components (e.g., build tools, dependencies, project version, CI/CD pipelines, etc)chore: Miscellaneous commits (e.g., modifying.gitignore)
The scope is optional and provides additional contextual information.
Important
Do NOT use issue identifiers as scopes.
TODO: Additional instructions will be added once we figure out how we'll be combining changelogs across multiple repositories to form MDAI changelog.
A commit that introduce breaking changes must be indicated by an ! before the : in the subject line (e.g. feat(scope)!: remove deprecated).
The subject contains a succinct description of the change:
- Use the imperative, present tense: "change" not "changed" nor "changes"
- Do not capitalize the first letter
- Do not end the description with a period (.)
- In case of breaking changes, see Breaking Changes Indicator
fix: fix container/service builder
feat(mdai-event-hub): add generic webhook action support
refactor!: update labels for managed ConfigMaps
Make sure you followed the instruction outlined in the PULL_REQUEST_TEMPLATE.md of the repository you are working in.
If the repository you are working in does not have a pull request template yet, please copy PULL_REQUEST_TEMPLATE.md and paste it in the .github folder.
Tip
PULL_REQUEST_TEMPLATE.md find in this repository is only meant to be used as a baseline, it can and should be modified to fit the specific need of each repositories.
This repository provides a reusable workflow that can be used to generate (using git-cliff) and commit the changelog in the caller repository.
ref: The branch, tag or SHA used to generate changelog (default:main)config-url: URL of the git cliff configuration file (default:https://raw.githubusercontent.com/DecisiveAI/changelogs/refs/heads/main/cliff.toml)dry-run: True to generate changelog without committing (default:false)
changelog: Content of the generated changelog
This example showcase how to use the workflow with default values:
jobs:
changelog:
uses: DecisiveAI/changelogs/.github/workflows/reusable-changelog-gen.yaml@main
secrets: inherit # pass all secretsThis example showcase how to run the workflow without making any commits:
jobs:
changelog:
uses: DecisiveAI/changelogs/.github/workflows/reusable-changelog-gen.yaml@main
with:
dry-run: true
secrets: inherit # pass all secretsThis repository provides a reusable workflow that can be used to lint (using action-semantic-pull-request) the PR title according to conventional commits.
The workflow will comment on the PR if there are any errors and subsequently delete the comment if the check passes.
name: PR Title Validate
on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize # as a required action
permissions:
pull-requests: write
jobs:
reusable:
uses: DecisiveAI/changelogs/.github/workflows/reusable-semantic-pr-title.yaml@main
secrets: inherit # pass all secretsAdd a branch ruleset targeting all branches, then check the Require status checks to pass checkbox, and select the reusable/Validate PR title check.

Then, it will require a passing check before merging like the below screenshot.
Refer to the WIP documentation for the action if bypassing the lint is desired.
