diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 173dc47f3..bd8f033f8 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ - + ### Overall Checklist - [ ] I agree to the project's [Developer Certificate of Origin](https://github.com/apple/password-manager-resources/blob/main/DEVELOPER_CERTIFICATE_OF_ORIGIN.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 922c3a091..4d80beaab 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,6 +12,24 @@ When adding a data item to a top-level JSON object, please keep keys alphabetize One more point to consider is to keep your pull requests small and limited in scope to a specific change. (For example, it's best to submit a "Password Rule" for a single website or group of related websites in one pull request and not conflate unrelated changes that can prevent other from being merged.) +### Filling Out the Pull Request Template + +When you open a pull request, its description starts out with the [pull request template](.github/PULL_REQUEST_TEMPLATE.md). The template has an "Overall Checklist" section and a "for " section for each file in [`quirks/`](quirks/). Each section lists statements that you agree to by checking their checkboxes (`[ ]` -> `[x]`). + +Your pull request cannot be merged until the pull request template is properly filled out. This is enforced by a "Pull Request Template" check that runs against every pull request. + +Specifically: + +* Keep the "Overall Checklist" section, and the "for " section for each file in [`quirks/`](quirks/) that your pull request adds to. You should remove the sections for files you aren't changing. +* For each checkbox, reason about the included statement and ensure that it is true by reviewing your change or gathering additional documentation. Once you're sure that a statement is true, check the statement's checkbox by putting an `x` between its brackets (do: `[x]`, don't: `[x ]` or `[ x]`). +* Where checkboxes are grouped under "One or more of the following:", check at least one that applies. +* Fill in each blank field, like "Web browser name:", on the same line as its label. +* Do not reword or remove the checkboxes in the sections you keep. + +If the check fails, its output explains what's missing. Edit the pull request's description to fix it, and the check will run again. + +These requirements apply to every pull request, including ones prepared or opened by AI agents and other tools. If you use one of these tools, make sure it starts the description from the template and preserves the template's sections, checkboxes, and fields, rather than replacing them with its own summary, and make sure that each checked box is accurate. Humans are accountable for the changes made in this project, and by checking the checkboxes in the pull request template, a human is asserting the accuracy of each statement. If a contributor checks a box for a statement that isn't true, or tries to bypass or abuse this check, they may be banned from the project. + ### Contributing Password Rules Contributing a password rule is appropriate if a service doesn't accept a password generated by your password manager with its default settings or with a reasonable configuration. Contributing a rule involves writing a rule, testing it, documenting your investigation, and submitting a pull request. diff --git a/README.md b/README.md index 8fe262b8e..0d6e5008c 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,8 @@ A password manager may wish to not offer to save a new password submitted in suc Please review [how to contribute](CONTRIBUTING.md) if you would like to submit a pull request. +Pull request descriptions must preserve the [pull request template](.github/PULL_REQUEST_TEMPLATE.md) and have its checkboxes checked off. This applies to pull requests prepared by AI agents and other tools, too. See [Filling Out the Pull Request Template](CONTRIBUTING.md#filling-out-the-pull-request-template) for details. + ## Asking Questions and Discussing Ideas If you have any questions you'd like to ask publicly, or ideas you'd like to discuss, please [raise a GitHub issue](https://github.com/apple/password-manager-resources/issues) or send a message in the project's [Slack instance](https://pw-manager-resources.slack.com). Anyone participating in the project is welcome to join the Slack instance by [emailing the project's maintainers at Apple](mailto:password-manager-resources-maintainers@apple.com) and asking for an invitation. Please include your GitHub user name when you do this.