From 991371944e556c2879eac3443abb1832a522e054 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 8 Apr 2026 07:39:50 +0000 Subject: [PATCH 1/2] docs: add spam policy and saved reply Introduces a new spam policy in CONTRIBUTING.md limiting community contributors to no more than 3 open PRs simultaneously to better manage team resources and triage efforts. Also adds a corresponding saved reply for closing excessive issues/PRs. --- .github/SAVED_REPLIES.md | 10 ++++++++++ CONTRIBUTING.md | 15 ++++++++++++++- docs/DEVELOPER.md | 2 +- scripts/templates/contributing.ejs | 15 ++++++++++++++- scripts/validate.mts | 2 +- 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/.github/SAVED_REPLIES.md b/.github/SAVED_REPLIES.md index 1237bc279e11..cd32456d8dfd 100644 --- a/.github/SAVED_REPLIES.md +++ b/.github/SAVED_REPLIES.md @@ -99,3 +99,13 @@ I'd like to remind everyone that **you only have reproducible installs if you us **It is your responsibility as a library consumer to use lockfiles**. No one wants to do a release with bugs but it sometimes happens, and the best we can do is to fix it as fast as possible with a new release. When you have a couple of thousand total dependencies it is only a matter of time until one of them has a bad release. ``` + +## Angular CLI: Spam (v1) + +``` +Woah, looks like you've opened a lot of issues/PRs recently. While we appreciate contributions from the community, triaging and reviewing a large influx of content in a short time period takes time away from other ongoing projects. As a result, we're closing these issues/PRs to maintain the team's focus. + +Note that this is not necessarily a rejection of the goals or direction of any of these contributions in particular, so much as a reflection of the team's current capacity and priorities. + +You are welcome to open a smaller subset of issues/PRs in accordance with [our policy](https://github.com/angular/angular-cli/blob/main/CONTRIBUTING.md#spam-policy) focused on the most important and impactful contributions and we will do our best to prioritize a response as soon as possible. +``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e3b2d4fe1bb2..0229df0c5552 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ to follow: - [Coding Rules](#rules) - [Commit Message Guidelines](#commit) - [Signing the CLA](#cla) - - [Updating the Public API](#public-api) + - [Spam Policy](#spam-policy) ## Code of Conduct Help us keep Angular open and inclusive. Please read and follow our [Code of Conduct][coc]. @@ -289,6 +289,19 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise * For corporations we'll need you to [print, sign and one of scan+email, fax or mail the form][corporate-cla]. +## Spam Policy + +Users who create excessive amounts of issues or PRs in a short time frame, particularly low-quality or low-value contributions, may see those contributions automatically closed without consideration. + +Community contributors should limit themselves to no more than 3 open PRs at a single time. + +### Why? + +Reviewing and shepherding PRs as well as managing large issue counts takes time and energy from the core team. Triaging a PR well enough to understand its goals and implementation takes a significant amount of time, regardless of whether the PR is ultimately accepted. This policy ensures the team is able to balance its limited resources across all contributors and projects. + +### Exceptions + +If you plan to undertake more significant work that you anticipate will generate many individual PRs, please reach out to the team in a Github issue first to validate that Angular will be able to support and accept your contributions. [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# diff --git a/docs/DEVELOPER.md b/docs/DEVELOPER.md index 075ddbcf9ca3..35b07adf1e89 100644 --- a/docs/DEVELOPER.md +++ b/docs/DEVELOPER.md @@ -168,7 +168,7 @@ Adding a package to this repository means running two separate commands: 1. `schematics devkit:package PACKAGE_NAME`. This will update the `.monorepo` file, and create the base files for the new package (package.json, src/index, etc). -1. `devkit-admin templates`. This will update the README and all other template files that might +1. `pnpm admin templates`. This will update the README and all other template files that might have changed when adding a new package. For private packages, you will need to add a `"private": true` key to your package.json manually. diff --git a/scripts/templates/contributing.ejs b/scripts/templates/contributing.ejs index d0eb7a59cee2..af7fc2cbcda0 100644 --- a/scripts/templates/contributing.ejs +++ b/scripts/templates/contributing.ejs @@ -12,7 +12,7 @@ to follow: - [Coding Rules](#rules) - [Commit Message Guidelines](#commit) - [Signing the CLA](#cla) - - [Updating the Public API](#public-api) + - [Spam Policy](#spam-policy) ## Code of Conduct Help us keep Angular open and inclusive. Please read and follow our [Code of Conduct][coc]. @@ -280,6 +280,19 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise * For corporations we'll need you to [print, sign and one of scan+email, fax or mail the form][corporate-cla]. +## Spam Policy + +Users who create excessive amounts of issues or PRs in a short time frame, particularly low-quality or low-value contributions, may see those contributions automatically closed without consideration. + +Community contributors should limit themselves to no more than 3 open PRs at a single time. + +### Why? + +Reviewing and shepherding PRs as well as managing large issue counts takes time and energy from the core team. Triaging a PR well enough to understand its goals and implementation takes a significant amount of time, regardless of whether the PR is ultimately accepted. This policy ensures the team is able to balance its limited resources across all contributors and projects. + +### Exceptions + +If you plan to undertake more significant work that you anticipate will generate many individual PRs, please reach out to the team in a Github issue first to validate that Angular will be able to support and accept your contributions. [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# diff --git a/scripts/validate.mts b/scripts/validate.mts index 70d0f27a31d1..a62ffa16f682 100644 --- a/scripts/validate.mts +++ b/scripts/validate.mts @@ -27,7 +27,7 @@ export default async function (options: { verbose: boolean }) { await templates(); if (execSync(`git status --porcelain`).toString()) { console.error( - 'Running templates updated files... Please run "devkit-admin templates" before submitting a PR.', + 'Running templates updated files... Please run "pnpm admin templates" before submitting a PR.', ); if (!options.verbose) { process.exit(2); From fdaab42532f927d2010f3b1c4abe1712f111f467 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 8 Apr 2026 16:10:20 +0000 Subject: [PATCH 2/2] fixup! docs: add spam policy and saved reply --- .github/SAVED_REPLIES.md | 2 +- CONTRIBUTING.md | 12 +----------- scripts/templates/contributing.ejs | 12 +----------- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/.github/SAVED_REPLIES.md b/.github/SAVED_REPLIES.md index cd32456d8dfd..dfce61802c0e 100644 --- a/.github/SAVED_REPLIES.md +++ b/.github/SAVED_REPLIES.md @@ -107,5 +107,5 @@ Woah, looks like you've opened a lot of issues/PRs recently. While we appreciate Note that this is not necessarily a rejection of the goals or direction of any of these contributions in particular, so much as a reflection of the team's current capacity and priorities. -You are welcome to open a smaller subset of issues/PRs in accordance with [our policy](https://github.com/angular/angular-cli/blob/main/CONTRIBUTING.md#spam-policy) focused on the most important and impactful contributions and we will do our best to prioritize a response as soon as possible. +You are welcome to open a smaller subset of issues/PRs in accordance with [our policy](https://github.com/angular/angular/blob/main/contributing-docs/spam.md) focused on the most important and impactful contributions and we will do our best to prioritize a response as soon as possible. ``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0229df0c5552..8b57f53f5584 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -291,17 +291,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise ## Spam Policy -Users who create excessive amounts of issues or PRs in a short time frame, particularly low-quality or low-value contributions, may see those contributions automatically closed without consideration. - -Community contributors should limit themselves to no more than 3 open PRs at a single time. - -### Why? - -Reviewing and shepherding PRs as well as managing large issue counts takes time and energy from the core team. Triaging a PR well enough to understand its goals and implementation takes a significant amount of time, regardless of whether the PR is ultimately accepted. This policy ensures the team is able to balance its limited resources across all contributors and projects. - -### Exceptions - -If you plan to undertake more significant work that you anticipate will generate many individual PRs, please reach out to the team in a Github issue first to validate that Angular will be able to support and accept your contributions. +See [Spam Policy](https://github.com/angular/angular/blob/main/contributing-docs/spam.md) for details. [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit# diff --git a/scripts/templates/contributing.ejs b/scripts/templates/contributing.ejs index af7fc2cbcda0..9b5fefd4ae46 100644 --- a/scripts/templates/contributing.ejs +++ b/scripts/templates/contributing.ejs @@ -282,17 +282,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise ## Spam Policy -Users who create excessive amounts of issues or PRs in a short time frame, particularly low-quality or low-value contributions, may see those contributions automatically closed without consideration. - -Community contributors should limit themselves to no more than 3 open PRs at a single time. - -### Why? - -Reviewing and shepherding PRs as well as managing large issue counts takes time and energy from the core team. Triaging a PR well enough to understand its goals and implementation takes a significant amount of time, regardless of whether the PR is ultimately accepted. This policy ensures the team is able to balance its limited resources across all contributors and projects. - -### Exceptions - -If you plan to undertake more significant work that you anticipate will generate many individual PRs, please reach out to the team in a Github issue first to validate that Angular will be able to support and accept your contributions. +See [Spam Policy](https://github.com/angular/angular/blob/main/contributing-docs/spam.md) for details. [coc]: https://github.com/angular/code-of-conduct/blob/main/CODE_OF_CONDUCT.md [commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#