- Use
merge-dev2-to-masteras the working base for CI and PRs.
All PR titles are automatically converted to follow Conventional Commits specification for automated releases.
When you create or update a PR, a GitHub workflow automatically:
- Detects if your title follows conventional commits format
- If not, intelligently determines the correct type based on:
- Title keywords (
fix,add,implement,update, etc.) - Files changed (documentation, tests, CI, source code)
- Title keywords (
- Automatically updates your PR title
- Posts a comment explaining the change
<type>(<optional scope>): <description>
feat:- New feature (triggers MINOR version bump, e.g., 0.1.0 → 0.2.0)fix:- Bug fix (triggers MINOR version bump)docs:- Documentation changes (triggers MINOR version bump)refactor:- Code refactoring (triggers MINOR version bump)perf:- Performance improvement (triggers MINOR version bump)test:- Test additions/changes (no release)chore:- Build/tooling changes (no release)ci:- CI/CD changes (no release)style:- Code formatting (no release)
Add ! after type or BREAKING CHANGE: in commit body to trigger MAJOR version bump (e.g., 0.1.0 → 1.0.0):
feat!: redesign public API
Before auto-fix → After auto-fix:
Fix issue 408 in AiDotNet→fix: fix issue 408 in AiDotNetImplement autodiff backward passes→feat: implement autodiff backward passesUpdate outdated GitHub README file→docs: update outdated GitHub README file
Note: If the auto-detected type is incorrect, you can manually edit the PR title. PR titles become merge commit messages, which the automated release pipeline uses to determine version bumps and generate changelogs.
- Get the PR
headRefOid(HEAD SHA). - Retrieve review comments and filter to those where
commit_id == headRefOidand author matches "copilot". - Apply suggestions exactly (or implement an equivalent real fix).
- Commit (no force push), wait 30–60s for re-review, re-check unresolved count.
- Iterate until unresolved count = 0.
- Multi-TFM: net46, net6.0, net8.0.
- Coverage ≥ 90% for modified code paths; upload to Codecov if
CODECOV_TOKENis set. - Release workflow validates packaged TFMs before publishing.
- Only modify files relevant to the user story or bug.
- Don’t introduce unrelated refactors.
- No literal
\nin names; correct indentation; steps understeps. - Shell
ifblocks must close withfibefore next step. - Use
${{ ... }}expression syntax for job/stepifwhere supported.