[llvm] [Docs] Update contribution guide to remove the single-commit requirement (PR #212031)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 25 08:49:27 PDT 2026
https://github.com/Sirraide created https://github.com/llvm/llvm-project/pull/212031
This policy in the docs probably predates LLVM using github, because it’s fairly irrelevant how many commits a PR actually has as we use squash+merge anyway, and I at least find PRs easier to review if the contributor uses multiple commits as that way I have an easy way of checking what changed since my last review.
The docs also recommend building LLVM in debug mode, but this is hard to do unless you have a lot of RAM or know the right CMake flags, so I updated that part as well.
>From 0ed494061775a5b19de6bed842ba341b516e91b3 Mon Sep 17 00:00:00 2001
From: Sirraide <aeternalmail at gmail.com>
Date: Sat, 25 Jul 2026 17:45:51 +0200
Subject: [PATCH] [Docs] Update contribution guide to remove the single-commit
requirement
---
llvm/docs/Contributing.md | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/llvm/docs/Contributing.md b/llvm/docs/Contributing.md
index 3dba6cdc22fed..e6586140b723a 100644
--- a/llvm/docs/Contributing.md
+++ b/llvm/docs/Contributing.md
@@ -29,8 +29,10 @@ let people know you are working on it.
Then try to reproduce and fix the bug with upstream LLVM. Start by building
LLVM from source as described in {doc}`GettingStarted` and
use the built binaries to reproduce the failure described in the bug. Use
-a debug build (`-DCMAKE_BUILD_TYPE=Debug`) or a build with assertions
-(`-DLLVM_ENABLE_ASSERTIONS=On`, enabled for Debug builds).
+a build with assertions (`-DLLVM_ENABLE_ASSERTIONS=On`). If you want to build
+LLVM in Debug mode, consider using `LLVM_PARALLEL_LINK_JOBS` and set the linker
+to anything other than GNU `ld` (e.g. `lld` or `mold`); otherwise, you'll likely
+run out of memory unless you have a lot of RAM.
### Reporting a Security Issue
@@ -51,7 +53,12 @@ Once you have a patch ready, it is time to submit it. The patch should:
* conform to the {doc}`CodingStandards`. You can use the [clang-format-diff.py] or [git-clang-format] tools to automatically format your patch properly.
* not contain any unrelated changes
* be an isolated change. Independent changes should be submitted as separate patches as this makes reviewing easier.
-* have a single commit, up-to-date with the upstream `origin/main` branch, and don't have merges.
+
+```{note}
+It's ok for a patch to contain multiple commits; we use the 'Squash and Merge'
+button on GitHub when merging PRs, i.e. all commits will be combined into a
+single one by GitHub at merge time.
+```
(format patches)=
More information about the llvm-commits
mailing list