From a71d970290e8fd8f45b6bc37558f8e974be9dd7a Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 5 Nov 2025 11:42:41 +0200 Subject: [PATCH] Why do I need to sign the CLA again? --- getting-started/pull-request-lifecycle.rst | 36 +++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/getting-started/pull-request-lifecycle.rst b/getting-started/pull-request-lifecycle.rst index fe810e90f..4d79f09a5 100644 --- a/getting-started/pull-request-lifecycle.rst +++ b/getting-started/pull-request-lifecycle.rst @@ -368,6 +368,40 @@ Here are the steps needed in order to sign the CLA: .. _contributor form: https://www.python.org/psf/contrib/contrib-form/ .. _Python Software Foundation: https://www.python.org/psf-landing/ +Why do I need to sign the CLA again? +------------------------------------ + +Sometimes the CLA bot asks you to sign the CLA for a backport PR, +when you've already signed it for the original PR. +This is because you need to sign the CLA for all the email addresses you commit +with. + +This can happen when you've `configured your Git client +`__ +with one email address, and signed the CLA with this, but have +`configured your GitHub account `__ +with another primary email +(often this is the private ``id+username@users.noreply.github.com`` address). + +1. In the original PR, the CLA bot verifies all the emails in the commits have + signed the CLA. + +2. We then squash merge the PR, which creates a single new commit using the + author's primary email. This can be different from the one you originally + committed with. + +3. Backports often only have this new single commit. + The CLA bot then checks if the primary email has signed the CLA. + +4. The solution is to click the :guilabel:`CLA not signed -- click to sign` + button in the backport PR. + +.. tip:: Run ``git config user.email`` to see your Git client config, + and append ``.patch`` to a PR URL to see the emails used for its commits: + + * https://github.com/python/cpython/pull/1 + * https://github.com/python/cpython/pull/1.patch + Submitting ========== @@ -547,7 +581,7 @@ affects other PRs. If you still don't see where the failure originates from, check for a "This branch is out-of-date with the base branch" sign next to the -list of executed checks. Clicking "Update branch" next to this message +list of executed checks. Clicking :guilabel:`Update branch` next to this message will merge in the latest changes from the base branch into the PR. If this still doesn't help with the failure on the PR, you can try