From d06d1c8d22fcab99483065b0be0967cab6c4fcf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Thu, 15 Oct 2026 21:03:08 +0200 Subject: [PATCH 1/3] Cap concurrent open PRs from non-committers at 7 Use the new ASF .asf.yaml pull_requests.creation_cap setting to limit how many pull requests a contributor without write access may have open at one time. Committers and solrbot have write access and are unaffected. Drafts are counted toward the cap as well; GitHub excludes them by default, which would let the cap be sidestepped by opening drafts. The intent is to keep the inflow of pull requests closer to our review capacity, and to nudge contributors toward getting existing submissions over the line before opening new ones. --- .asf.yaml | 9 +++++++++ dev-docs/how-to-contribute.adoc | 1 + 2 files changed, 10 insertions(+) diff --git a/.asf.yaml b/.asf.yaml index 9037d8ca2854..48b1845e33bd 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -18,6 +18,15 @@ github: merge: false rebase: false + # Cap how many pull requests a contributor without write access may have open at once. + # TODO: Need to excempt user 'solrbot' + # See https://github.com/apache/infrastructure-asfyaml#pr_creation_cap + pull_requests: + creation_cap: + enabled: true + max_open_pull_requests: 7 + include_drafts: true + # TODO: Add to this list for each new minor release protected_branches: main: {} diff --git a/dev-docs/how-to-contribute.adoc b/dev-docs/how-to-contribute.adoc index 4ff6edeaae5e..508825d82a6c 100644 --- a/dev-docs/how-to-contribute.adoc +++ b/dev-docs/how-to-contribute.adoc @@ -40,6 +40,7 @@ In order to make a new contribution to Solr you will use the fork you have creat * The PR will run a gradle pre-commit task that will do some basic checks of your changes. This is run as a Github Action and the results can be viewed from your PR. * If you properly named your PR you will see it automatically linked to your Jira issue when you view the issue. * If your PR is still a work in progress, you can use the https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests[PR Draft feature] of Github to denote draft status. +* Contributors without write access to the repository can have at most seven pull requests open at a time, drafts included. GitHub will refuse to create further PRs until one of your open ones is merged or closed. If you hit the limit, please help your earlier contributions over the line before starting something new. Committers are not subject to this limit. 5. At this point, you will need a Solr committer to review your change and help to get it merged upstream. You can use the https://solr.apache.org/community.html[Solr Developers Mailing List] to get attention to your issue. ## PR Do-s and Don't-s From 1772c0e94e68011618fdf21005be1dc9bf0b735a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Thu, 15 Oct 2026 21:03:08 +0200 Subject: [PATCH 2/3] Cap concurrent open PRs from non-committers at 7 Use the new ASF .asf.yaml pull_requests.creation_cap setting to limit how many pull requests a contributor without write access may have open at one time. Only write access exempts a user, so committers are exempt, but solrbot is not: the collaborators stanza grants the triage role, and Renovate pushes from its own fork. Its prConcurrentLimit is therefore lowered from 300 to 7 to match, so it does not keep attempting PRs that GitHub would refuse. Drafts are counted toward the cap as well; GitHub excludes them by default, which would let the cap be sidestepped by opening drafts. The intent is to keep the inflow of pull requests closer to our review capacity, and to nudge contributors toward getting existing submissions over the line before opening new ones. --- .github/renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index b2b71b6ff813..8ed2c997d575 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -208,7 +208,7 @@ } ], "schedule": ["before 9am on the first day of the month"], - "prConcurrentLimit": 300, + "prConcurrentLimit": 7, "prHourlyLimit": 20, "minimumReleaseAge": "5 days" } From 6f6410a5dda61b0ff10d572ad687d81f14371b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Thu, 15 Oct 2026 21:45:51 +0200 Subject: [PATCH 3/3] Remove TODO line --- .asf.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.asf.yaml b/.asf.yaml index 48b1845e33bd..30e73f451527 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -19,7 +19,6 @@ github: rebase: false # Cap how many pull requests a contributor without write access may have open at once. - # TODO: Need to excempt user 'solrbot' # See https://github.com/apache/infrastructure-asfyaml#pr_creation_cap pull_requests: creation_cap: