[llvm] [Doc] Add a section on CI to the GitHub documentation (PR #85376)
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 15 03:07:15 PDT 2024
https://github.com/joker-eph updated https://github.com/llvm/llvm-project/pull/85376
>From d315f43cf7692f5011adb31a8a6c6266571590e9 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Fri, 15 Mar 2024 02:44:34 -0700
Subject: [PATCH 1/4] [Doc] Add a section on CI to the GitHub documentation
---
llvm/docs/Contributing.rst | 21 ++++++++++++++++-----
llvm/docs/GitHub.rst | 18 ++++++++++++++++++
2 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/llvm/docs/Contributing.rst b/llvm/docs/Contributing.rst
index dc8be93463cec1..23607f4c2ea62a 100644
--- a/llvm/docs/Contributing.rst
+++ b/llvm/docs/Contributing.rst
@@ -124,12 +124,23 @@ For developers to commit changes from Git
-----------------------------------------
Once a patch is reviewed, you can select the "Squash and merge" button in the
-GitHub web interface. You might need to rebase your change before pushing
-it to the repo.
+GitHub web interface.
-LLVM currently has a linear-history policy, which means that merge commits are
-not allowed. The `llvm-project` repo on github is configured to reject pushes
-that include merges, so the `git rebase` step above is required.
+When pushing directly from the command-line to the `main`` branch, you will need
+to rebase your change. LLVM currently has a linear-history policy, which means
+that merge commits are not allowed and the `main` branch is configured to reject
+pushes that include merges.
+GitHub will display a message that looks like:
+
+.. code-block:: console
+
+ remote: Bypassed rule violations for refs/heads/main:
+ remote:
+ remote: - Required status check “buildkite/github-pull-requests” is expected.
+
+This can seem scary, but you likely did nothing wrong: it is intended as a warning
+for people merging pull-request with failing CI. We can't disable it for people
+pushing on the command-line.
Please ask for help if you're having trouble with your particular git workflow.
diff --git a/llvm/docs/GitHub.rst b/llvm/docs/GitHub.rst
index 4010958c5d3133..e663b2af5d7b3c 100644
--- a/llvm/docs/GitHub.rst
+++ b/llvm/docs/GitHub.rst
@@ -176,6 +176,24 @@ request will understand that you're rebasing just your patches, and display
this result correctly with a note that a force push did occur.
+Pre-merge Continuous Integration (CI)
+-------------------------------------
+
+Multiple checks will be applies on a pull-request, either for linting/formatting
+or some build and tests. None of these are perfect and you will encounter
+false positive, infrastructure failures (unstable or unavailable worker), or
+you will be unlucky and based your change on a broken revision of the main branch.
+
+None of the checks are strictly mandatory: these are tools to help us build a
+better codebase and be more productive (by avoiding issues found post-merge and
+possible reverts). As a developer you're empowered to exercise your judgement
+about bypassing any of the checks when merging code.
+
+The infrastructure can print message that make it seem like these are mandatory,
+but this is just an artifact of GitHub infrastructure and not a policy of the
+project.
+
+
Problems After Landing Your Change
==================================
>From cd35a3044390dbb32d55ec4d031732bc10a8ee99 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Fri, 15 Mar 2024 03:06:41 -0700
Subject: [PATCH 2/4] Update llvm/docs/Contributing.rst
Co-authored-by: Nikita Popov <github at npopov.com>
---
llvm/docs/Contributing.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/docs/Contributing.rst b/llvm/docs/Contributing.rst
index 23607f4c2ea62a..e09bdbe75c6d5f 100644
--- a/llvm/docs/Contributing.rst
+++ b/llvm/docs/Contributing.rst
@@ -127,7 +127,7 @@ Once a patch is reviewed, you can select the "Squash and merge" button in the
GitHub web interface.
When pushing directly from the command-line to the `main`` branch, you will need
-to rebase your change. LLVM currently has a linear-history policy, which means
+to rebase your change. LLVM has a linear-history policy, which means
that merge commits are not allowed and the `main` branch is configured to reject
pushes that include merges.
GitHub will display a message that looks like:
>From 358cb4612bacbaab9b789cff70a064f9a13a17b9 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Fri, 15 Mar 2024 03:07:03 -0700
Subject: [PATCH 3/4] Update llvm/docs/Contributing.rst
Co-authored-by: Nikita Popov <github at npopov.com>
---
llvm/docs/Contributing.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/docs/Contributing.rst b/llvm/docs/Contributing.rst
index e09bdbe75c6d5f..c4510058c11ef3 100644
--- a/llvm/docs/Contributing.rst
+++ b/llvm/docs/Contributing.rst
@@ -139,7 +139,7 @@ GitHub will display a message that looks like:
remote: - Required status check “buildkite/github-pull-requests” is expected.
This can seem scary, but you likely did nothing wrong: it is intended as a warning
-for people merging pull-request with failing CI. We can't disable it for people
+for people merging pull-requests with failing CI. We can't disable it for people
pushing on the command-line.
Please ask for help if you're having trouble with your particular git workflow.
>From 6194e86f106291fb8275cba9d2bc942e9e794b17 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Fri, 15 Mar 2024 03:07:08 -0700
Subject: [PATCH 4/4] Update llvm/docs/GitHub.rst
Co-authored-by: Nikita Popov <github at npopov.com>
---
llvm/docs/GitHub.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/docs/GitHub.rst b/llvm/docs/GitHub.rst
index e663b2af5d7b3c..196e9a9c05fb85 100644
--- a/llvm/docs/GitHub.rst
+++ b/llvm/docs/GitHub.rst
@@ -179,7 +179,7 @@ this result correctly with a note that a force push did occur.
Pre-merge Continuous Integration (CI)
-------------------------------------
-Multiple checks will be applies on a pull-request, either for linting/formatting
+Multiple checks will be applied on a pull-request, either for linting/formatting
or some build and tests. None of these are perfect and you will encounter
false positive, infrastructure failures (unstable or unavailable worker), or
you will be unlucky and based your change on a broken revision of the main branch.
More information about the llvm-commits
mailing list