Git Workflow#
Branching conventions, commit format, and merge request process for the RTX Remix Toolkit.
Branch Naming#
Type |
Pattern |
Example |
|---|---|---|
Feature branch |
|
|
Dev sub-task |
|
|
Bug fix |
|
|
Dependency update |
|
|
Derive <username> from git config user.name - lowercase, replace spaces with hyphens.
One branch per change#
Keep each branch focused on a single logical change. This keeps MRs small, easy to review, and atomic.
Everything that belongs to the same change - implementation, tests, documentation - stays on the same branch. The goal is one logical change per branch, not one file per branch.
If you spot an unrelated bug or come up with another feature idea while working on something, resist bundling it into the same branch. Create a separate branch and MR for it instead.
Base branch#
Your branch |
Typical base |
|---|---|
|
|
|
A |
Commit Format#
Match the commit-subject style already used by the current Git user in this repository.
<subject line matching recent history>
Before choosing a message:
Identify the current author from
git config user.nameandgit config user.email.Inspect that user’s recent non-merge commits in this repo.
Match the dominant subject format, capitalization, and ticket-prefix usage from that history.
If that user has no meaningful local history yet, fall back to recent non-merge commits in the repo.
Use conventional-commit prefixes only if they are already the dominant style in the inspected history or the user explicitly asks for them.
Common patterns you may see in history:
<TICKET>: <summary><Short summary without a type prefix>
Rules:
Summary: one line, max 72 characters, no trailing period
Prefer the same tone and capitalization as the inspected history for that Git user
Body is optional - use for context that the diff doesn’t explain
Merge Request Process#
Before creating the MR#
Format:
.\format_code.batLint:
.\lint_code.bat allBump versions: for each modified extension, bump
config/extension.tomland add a changelog entry at the end of the appropriate section indocs/CHANGELOG.mdRoot changelog: add a one-liner at the end of the appropriate section under
## [Unreleased]in the rootCHANGELOG.md. Prefix with Jira ticket:REMIX-XXXX: <summary>. Omit the prefix only if no ticket exists.Draft by default: open the MR as Draft first, complete your self-review, then mark it ready.
Repo-local GitLab defaults#
The canonical GitLab MR template lives in
.gitlab/merge_request_templates/Default.md.If the repo-local template and the GitLab project-level default template ever conflict, prefer the repo-local file.
When creating GitLab MRs with
glab, pass--draft --remove-source-branch=true --squash-before-merge=trueexplicitly so the MR creation behavior matches the repo-local workflow.
MR description#
Include:
Start from
.gitlab/merge_request_templates/Default.mdSummary of changes (from the root CHANGELOG entry)
List of modified extensions
Known issues or follow-up work
Target branch#
dev/*branches -> target their parentfeature/*branchfeature/*branches -> targetmainIf unclear, specify the target explicitly when creating the MR