mirror of
https://github.com/apache/thrift.git
synced 2026-10-28 08:24:58 +08:00
Let prose-only commits skip CI
AGENTS.md now asks for the skip-ci marker at the end of the subject line of a commit that only edits the text of existing documentation files, and in the PR title. The subject is the one place both CI systems look: GitHub Actions accepts the marker anywhere in the message, AppVeyor reads the first line only. PR #3520 had it on the second line, and AppVeyor built it anyway. The rule lists what does not count as prose, and why. It also covers the reverse case: GitHub matches the marker even inside quotes, and a squash message built from a PR description takes in the template's checklist line. That is howab178fbf2and3f6d8a57c, both code changes, reached master without a CI run. The marker also skips the tool-internal links check, which runs on pull_request, so the rule asks for a manual look at the message and the PR text. The pre-PR checklist in section 8 gains the matching line. pypi.yml no longer runs on changes to doc/ReleaseManagement.md. The workflow builds and checks the Python sdist and wheels and never reads that file, so the path only pulled wording changes to the release guide into a full CI run. This commit changes a workflow, so it is not prose-only and carries no marker. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
12dcbffd5c
commit
1f9ebe6d9a
2 files changed
+24
-1
No files matched your search
@@ -27,7 +27,6 @@ on:
|
||||
- master
|
||||
paths:
|
||||
- ".github/workflows/pypi.yml"
|
||||
- "doc/ReleaseManagement.md"
|
||||
- "lib/py/MANIFEST.in"
|
||||
- "lib/py/pyproject.toml"
|
||||
- "lib/py/setup.cfg"
|
||||
|
||||
@@ -120,6 +120,29 @@ authentication, serialization bounds, or anything flagged by the project's secur
|
||||
or mix fixes into existing/unrelated work unless told otherwise.
|
||||
- Follow a strict test-first workflow: write or update tests demonstrating the bug BEFORE applying the fix,
|
||||
and inspect any generated code before changing it.
|
||||
- **Prose-only changes skip CI.** A commit that only edits the text of existing documentation
|
||||
files ends its subject line with `[skip ci]`, and the PR title carries it too:
|
||||
```
|
||||
THRIFT-9999: Clarify the TLS options in lib/cpp/README.md [skip ci]
|
||||
```
|
||||
GitHub then runs none of the `push` and `pull_request` workflows for it, and AppVeyor skips
|
||||
the build.
|
||||
- Only the subject line works for both: AppVeyor ignores the rest of the message. A squash
|
||||
merge of several commits takes its subject from the PR title.
|
||||
- Not prose-only, so no marker: source code, comments and doc comments included; build,
|
||||
packaging and CI files; tests and test data (`compiler/cpp/test/compiler/DocTest.md` is a
|
||||
golden file, not documentation); adding, removing or renaming a file. `EXTRA_DIST` in the
|
||||
`Makefile.am` files lists documentation files by name: a removed or renamed one breaks the
|
||||
`make dist` job, and a new one needs an entry of its own, which no CI job asks for. Several
|
||||
package manifests name a README, too. When in doubt, leave the marker out.
|
||||
- The marker can skip CI for everything pushed along with it, so push a marked commit on its
|
||||
own. When a review round adds anything but prose, drop the marker as you amend.
|
||||
- GitHub also matches the marker when it is quoted. A commit that is not prose-only must not
|
||||
contain it, or GitHub's variants `[ci skip]`, `[no ci]`, `[skip actions]` and
|
||||
`[actions skip]`, anywhere in its message. A squash message built from a PR description
|
||||
picks it up from the checklist in the PR template.
|
||||
- The marker also stops the tool-internal links check (§4) from running, so check the commit
|
||||
message (`git log --format=%B`) and the PR text yourself before pushing.
|
||||
|
||||
---
|
||||
|
||||
@@ -131,6 +154,7 @@ authentication, serialization bounds, or anything flagged by the project's secur
|
||||
- [ ] PR title starts with `THRIFT-NNNN:` (if ticket exists)
|
||||
- [ ] Commit message includes affected `Client:` languages
|
||||
- [ ] Single squashed commit
|
||||
- [ ] Prose-only change: `[skip ci]` ends the commit subject and the PR title; any other change: no such marker anywhere in the commit message
|
||||
- [ ] Tests added or updated
|
||||
- [ ] `make style` passes
|
||||
- [ ] AI authorship labelled with `Co-Authored-By:` / `Generated-by:` where applicable
|
||||
|
||||
Reference in new issue
Block a user