CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
3.3 KiB
3.3 KiB
Commit Workflow
Follow this methodology precisely when creating git commits to produce clean, reviewable commits.
Workflow
1. Assess changes
Run these commands in parallel to understand the current state:
git status(never use-uallflag)git diffandgit diff --stagedto see staged and unstaged changesgit log --oneline -10to understand the repo's commit message style
2. Identify the correct files to stage
- Only stage files relevant to the logical change. Prefer
git add <file1> <file2>overgit add -Aorgit add .. - Never stage files that contain secrets (
.env, credentials, tokens, etc.). - Never stage unrelated modifications (e.g., dirty submodules, editor configs).
3. Draft the commit message and confirm with user
Draft a commit message following the repo's conventions. Present it to the user and wait for approval before proceeding. Do NOT commit without confirmation.
Commit message rules for this repo:
- First line: concise summary under 72 characters
- Body: explain the "why", not the "what" — the diff shows the what
- Separate logical points as bullet list items
- Highlight bugfixes explicitly and distinctly from feature changes
- Keep descriptions concise — one to two lines per point, no verbose paragraphs
- Do not include refactoring commentary that is obvious from the diff
- If referencing another project's code as inspiration, keep it to a one-liner
- End with:
Co-Authored-By: <AI model name or IDE name>
Tone guidelines (learned from user):
- Do not complain about previous behavior. Describe what the change does, not what was wrong before.
- Be concise. Three bullet points are better than six.
- Only highlight changes that a reviewer needs to know: bugfixes, new features, and notable design decisions.
4. Create the commit
- Use a HEREDOC to pass the commit message to avoid shell escaping issues:
git commit -m "$(cat <<'EOF'
[rocprofiler-compute] Your title here
- Bullet point one
- Bullet point two
Co-Authored-By: <AI model name or IDE name>
EOF
)"
5. Handle pre-commit hooks
- If pre-commit hooks fail (e.g., ruff, formatting), read the output to understand what was auto-fixed or what needs manual fixing.
- Re-stage the fixed files with
git add <fixed-files>. - Create a NEW commit — never use
--amendafter a hook failure, as the original commit did not succeed and amending would modify the previous commit. - Repeat until all hooks pass.
6. Verify success
- Run
git log --oneline -3to confirm the commit landed correctly. - Run
git statusto confirm a clean working tree (for staged files).
Branch safety
- Never commit directly to
developandrocprofiler-compute-develop - Always check current branch and apply commit over there, unless user specifies another branch
- If a commit was accidentally made on the wrong branch, move it:
git branch <correct-branch>(create branch at current HEAD)git reset --hard HEAD~1(reset the wrong branch back)git checkout <correct-branch>(switch to the correct branch)
What NOT to do
- Do not use
--no-verifyto bypass hooks. - Do not use
--no-gpg-signto disable commit signing to remote unless explicitly asked. - Do not use
--no-verifyor--no-gpg-signto bypass hooks. - Do not create empty commits.
- Do not batch multiple unrelated changes into one commit.