chore: support new-test PRs in the pull request template - #1105
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the repository’s pull request template to better guide contributors on PR title conventions, change categorization, and test/documentation expectations.
Changes:
- Adds a PR title guidance section (prefixes + breaking-change indicator).
- Refines the “Types of changes” checklist (splitting new test coverage vs test fixes).
- Introduces a dedicated “Tests” section and improves documentation tracking options.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| Labels and the draft release notes are generated from the PR title, so please prefix it with the matching type: | ||
| `feat:` (new feature) · `fix:` (bugfix) · `test:` · `docs:` · `build:` · `ci:` · `chore:` | ||
| Breaking changes must additionally carry `!` or `BREAKING CHANGE:` in the title. |
| - [ ] Have you proposed a file change/ PR with Appium to update documentation? | ||
| - [ ] Not applicable (no user facing behaviour change, e.g. tests, CI or maintenance only) | ||
| #### This can be done by navigating to the documentation section on http://appium.io selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example |
The template only offered "Test fix" for anything test related, so PRs that add coverage for previously untested functionality (e.g. appium#1104) had to be filed under a box describing stability fixes, and it asked whether integration tests were provided for changes that *are* the tests. - add a "New test coverage" type next to "Test fix" - replace the "Integration tests" question with a "Tests" section that distinguishes unit from integration tests, asks how they run, and allows an explained "no automated tests" - add "not applicable" to the documentation checklist - document the conventional-commit title prefixes that labeler.yml and release-drafter derive labels, release notes and semver from - add a "Related issue" line Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Co16HzbYRDPDjUh6zg1r1D
Out of scope for this change, which is about PRs adding test coverage. The title, related-issue, test and documentation sections stay. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Co16HzbYRDPDjUh6zg1r1D
The title patterns were anchored as "^chore:.*", so a scoped title such as "chore(ci): migrate release-drafter config to v7" (appium#1087) matched no rule and the PR went unlabelled -- which also drops it from every release-drafter category and from the semver resolver. Each type pattern now accepts an optional scope and an optional "!", so "feat(ios)!: ..." picks up both Enhancement and BreakingChange, and the version resolver takes the major bump. The patterns are single quoted because "\(" is not a valid escape inside a double quoted YAML scalar. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Co16HzbYRDPDjUh6zg1r1D
ed79930 to
eaabc27
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (3)
.github/PULL_REQUEST_TEMPLATE.md:5
- The title prefix guidance is missing the
github:prefix (supported by.github/labeler.yml) and the breaking-change!guidance is ambiguous; it’s safer to specify the conventional placement (type!:/type(scope)!:) to avoid accidental BreakingChange labeling from stray exclamation marks.
Labels and the draft release notes are generated from the PR title, so please prefix it with the matching type:
`feat:` (new feature) · `fix:` (bugfix) · `test:` · `docs:` · `build:` · `ci:` · `chore:`
Breaking changes must additionally carry `!` or `BREAKING CHANGE:` in the title.
.github/PULL_REQUEST_TEMPLATE.md:41
- Minor wording/grammar: “user-facing” is typically hyphenated, and “behavior” matches the spelling used elsewhere in this repo.
- [ ] Not applicable (no user facing behaviour change, e.g. tests, CI or maintenance only)
.github/PULL_REQUEST_TEMPLATE.md:37
- Spelling is inconsistent with the rest of the repo (e.g. README uses “behavior”); consider using American English here as well.
This issue also appears on line 41 of the same file.
Bugfixes, new features and new test coverage are expected to ship with tests. If the behaviour cannot be covered automatically (real device or cloud only, hardware dependent, inherently flaky), please say so here instead.
Review feedback on appium#1105: - describe the real mechanism: the title is matched by labeler.yml to apply a label, and Release Drafter derives the release-notes category and version bump from that label, rather than the notes coming from the title directly - list "github:", which labeler.yml supports but the template omitted - document breaking changes as "type!:" instead of a bare "!", so the wording does not suggest an exclamation mark anywhere in the title marks a breaking change, and mention that a scope is optional - documentation checklist: "change/ PR" -> "change/PR", hyphenate "user-facing", comma after the appium.io URL Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Co16HzbYRDPDjUh6zg1r1D
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
.github/PULL_REQUEST_TEMPLATE.md:42
- The documentation link uses
http://appium.io; this should behttps://to avoid sending contributors to an insecure URL and to match modern link hygiene.
#### This can be done by navigating to the documentation section on http://appium.io, selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example
The BreakingChange rule was "^.*BREAKING CHANGE:.*|.*!.*", whose second branch matches an exclamation mark anywhere in the title: "fix: crash when tapping fast!" was labelled BreakingChange, which blocks the merge (mergeable: false) and bumps the major version. The "!" branch is now anchored to the conventional-commit position, so "feat!:" and "feat(ios)!:" still match while prose exclamation marks do not. The "BREAKING CHANGE:" branch is unchanged. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Co16HzbYRDPDjUh6zg1r1D
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/PULL_REQUEST_TEMPLATE.md:3
- The PR title guidance implies a 1:1 mapping where a single title-derived label directly becomes both the Release Drafter category and the version bump. In this repo, Release Drafter uses labels more generally (with specific semver rules for some labels and a default), so this wording is a bit misleading.
The title is what gets labelled: `.github/labeler.yml` matches the title and applies a label, and Release Drafter turns that label into a release-notes category and the version bump. Please prefix the title with the matching type:
List of changes
This pull request updates the
.github/PULL_REQUEST_TEMPLATE.mdfile to improve clarity and guidance for contributors when submitting pull requests. The changes focus on better structuring the template, clarifying PR title conventions, and improving the way tests and documentation updates are tracked.Template improvements:
Documentation and maintenance:
Types of changes
What types of changes are you proposing/introducing to the .NET client?
Put an
xin the boxes that apply.Documentation
This can be done by navigating to the documentation section on http://appium.io, selecting the appropriate command/endpoint and clicking the 'Edit this doc' link to update the C# example.
Integration tests
Details
Please provide more details about changes if necessary. You can provide code samples showing how they work and possible use cases if there are new features. Also, you can create gists with pasted C# code samples or put them here using markdown.
About markdown, please read. Mastering markdown and writing on GitHub