This is an automated email from the ASF dual-hosted git repository.
terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 8162bdf1377 Calibrate release note and validation gates (#38825)
8162bdf1377 is described below
commit 8162bdf1377764c7cf4a52edd32c35f4d0a2796c
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 6 16:16:58 2026 +0800
Calibrate release note and validation gates (#38825)
Refine the PR review skill so release notes are required only when they
provide user-facing value for the current PR, while allowing split PRs to
delegate release messaging to an umbrella PR when appropriate.
Also clarify that test adequacy should be judged by behavior and
root-cause coverage, not coverage rate or environment breadth alone, and
that expensive native-image or end-to-end validation should block only
when the current PR owns that integration proof or lower-level evidence is
insufficient.
Finally, make expert review blocking only when current-PR merge safety
cannot be decided from available evidence.
---
.codex/skills/review-pr/SKILL.md | 34 ++++++++++++++++++++++++----------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git a/.codex/skills/review-pr/SKILL.md b/.codex/skills/review-pr/SKILL.md
index fa1ef47c4e1..59792dfc5c6 100644
--- a/.codex/skills/review-pr/SKILL.md
+++ b/.codex/skills/review-pr/SKILL.md
@@ -125,6 +125,10 @@ Do not turn speculative risks, personal style preferences,
or out-of-scope polis
- Bug fixes should have regression tests for the reported symptom or
root-cause path.
- New features should cover the main success path and important boundary,
disabled, or error paths.
- Existing tests may satisfy this gate only when they clearly exercise the
changed behavior.
+ - Judge tests by behavior and root-cause coverage, not by coverage-rate or
environment breadth alone.
+ - High-cost environment, native-image, distributed-system, or end-to-end
validation blocks mergeability only when lower-level public-path tests and code
evidence cannot prove the root-cause repair,
+ or when the current PR itself owns that environment integration behavior.
+ - For narrow split PRs whose code path can be proven locally, environment
validation may be delegated to the umbrella PR or integration test scope; state
that boundary in `Review Details` instead of turning it into a blocker.
- Do not require coverage-rate proof, and do not block mergeability solely
because a coverage report was not produced.
6. Code Quality Gate:
- Block only concrete maintainability problems, such as unclear
responsibility, duplicated logic, dead code, over-complex control flow, hidden
state, magic values, or hard-to-read temporary design.
@@ -134,14 +138,18 @@ Do not turn speculative risks, personal style
preferences, or out-of-scope polis
- The PR must preserve module ownership, explicit contracts, SPI/metadata
boundaries, and clear state models.
- Broken layering, bypassed owner modules, target-specific semantics in
shared code, or implicit lifecycle states block mergeability.
8. Release Note Gate:
- - Required when the PR introduces or changes user-visible behavior,
including new features, bug fixes,
API/SPI/config/protocol/metadata/security/performance/compatibility changes,
- distribution changes, or behavior users may need to notice during
upgrade, troubleshooting, configuration, or rollback.
+ - Required when the PR introduces or changes user-visible behavior that
users, DBAs, operators, or application developers need to know for upgrade,
troubleshooting, configuration,
+ migration, rollback, compatibility assessment, or meaningful release
awareness.
- Usually not required for test-only changes, pure refactoring with no
behavior change, formatter/import/typo/comment-only changes,
- or CI/build changes that do not affect released artifacts, supported
platforms, dependencies, or user-visible build behavior.
+ internal bug fixes that restore already documented behavior without new
user action, or CI/build changes that do not affect released artifacts,
supported platforms, dependencies,
+ or user-visible build behavior.
+ - For split or staging PRs, a release note may be deferred to the umbrella
PR when the umbrella PR owns the user-facing release story and the split PR is
not expected to ship independently.
+ If deferring, verify and state the delegation reason; do not require
duplicate release-note entries that would only create low-signal changelog
noise.
+ - If the split PR can be released independently and the fix has meaningful
user-facing impact, require the release note in the split PR.
- Required release notes must update `RELEASE-NOTES.md` in the proper
category and describe the user-visible outcome, affected module or feature,
and important compatibility, configuration, upgrade, or rollback impact
when applicable.
- Release notes must be understandable to users, DBAs, operators, and
application developers, not only maintainers.
- - Missing, misleading, implementation-only, wrong-category, or over-claimed
release notes block mergeability.
+ - Missing, misleading, implementation-only, wrong-category, or over-claimed
release notes block mergeability only after the gate determines that a release
note is required for the current PR.
9. User Documentation Impact Gate:
- If users need documentation to correctly use, configure, upgrade,
troubleshoot, or understand the changed behavior, check the relevant user docs.
- Missing required docs for user-facing configuration, DistSQL, SQL
support, API/SPI usage, Proxy/JDBC behavior, or upgrade flow block mergeability.
@@ -302,6 +310,9 @@ CI/check-run review is not part of this workflow unless
explicitly requested; do
- Are major branches, boundaries, and counterexamples covered?
- Are tests mapped one-to-one with fix points?
- Does new or changed production code or behavior have corresponding test
evidence, either from new/adjusted tests or existing tests that clearly cover
the changed behavior?
+ - Does the requested validation prove a real behavior branch or root-cause
path, rather than merely improving coverage percentage?
+ - If native-image, container, cluster, performance, or other expensive
environment validation is missing, decide whether the current PR truly owns
that integration proof,
+ or whether public-path tests plus code evidence are enough for this split
PR and the environment proof belongs to a broader umbrella PR.
- Do not require coverage-rate proof as part of this review.
- For SQL parser family scans, check whether each related dialect with the
same root cause has direct validation or explicit evidence for non-applicability
- Distinguish fixture-assisted validation from production-path validation;
if tests bypass the real assembly chain,
@@ -314,7 +325,8 @@ CI/check-run review is not part of this workflow unless
explicitly requested; do
7. Unrelated-change screening: identify substantive code/config/refactor
changes not directly tied to PR goal; require removal, rollback, or scope
narrowing.
Ignore non-behavioral import-only, whitespace-only, and formatter-only
churn for mergeability unless it meets the Non-Behavioral Churn Rule escalation
conditions.
8. User-facing impact screening:
- - Decide whether `RELEASE-NOTES.md` is required, not required, missing,
misleading, or over-claimed.
+ - Decide whether `RELEASE-NOTES.md` is valuable and required for the
current PR, not required with reason, delegated to an umbrella PR, missing,
misleading, or over-claimed.
+ - Do not require low-signal release-note entries for narrow internal fixes
that only restore already documented behavior and do not change what users must
do.
- Decide whether user docs, migration notes, compatibility notes, or
rollback guidance are required for the changed behavior.
9. Version baseline control:
- Base conclusion only on PR latest code version
@@ -415,7 +427,7 @@ If target-specific semantics leak into shared code, or if
implicit state is used
- Functional degradation risk: old-scenario regression, boundary input
behavior changes, error-code/exception semantic drift.
- Cross-dialect/shared-path risk: a target-specific fix changing generic
behavior for other databases or features.
- SQL parser family risk: the target dialect is fixed but branch dialects or
copied parser variants still retain the same defect or become inconsistent.
-- Documentation risk: user-visible behavior changes without matching
official-doc support, ShardingSphere docs/examples, or required release notes.
+- Documentation risk: user-visible behavior changes without matching
official-doc support, ShardingSphere docs/examples, or release notes that are
valuable and required for the current PR.
- Migration risk: breaking behavior, config, API/SPI, protocol, metadata
storage, SQL semantic, distribution, or rollback impact without clear
user-facing guidance.
- Diagnostics risk: error messages, error codes, logs, or troubleshooting
output that is misleading, unactionable, regressed, or unsafe.
- Operational risk: config migration complexity, gray-release and rollback
complexity.
@@ -439,12 +451,14 @@ Each review must include a `Review Details` section with:
- `Reviewed Scope`: files/modules actually reviewed this round, plus the
latest PR head SHA, local merge-base SHA when local git is used, and whether
the local file list matched GitHub `/pulls/{number}/files`.
- `Not Reviewed Scope`: unreviewed or only superficially reviewed areas.
- `Verification`: reviewer-run commands and exit codes, or a short reason why
local verification was not run.
-- `Release Note / User Docs`: required and verified, missing, not required
with reason, or not reviewed.
+- `Release Note / User Docs`: required and verified, delegated to an umbrella
PR with reason, missing, not required with reason, or not reviewed.
- For SQL parser reviews, `Reviewed Scope` must explicitly name the target
dialect, any related trunk / branch dialects checked, and the documentation
pages / repo doc paths used to validate syntax behavior.
If a required domain expert review is still needed, include `Expert Review
Needed` in `Summary`; omit it when no expert review is required.
-Treat required expert review as blocking unless the evidence proves the
remaining review is advisory only.
-Require expert review when merge safety depends on specialized domains such as
security, parser grammar or dialect semantics, Proxy
protocol/authentication/packet behavior,
+Treat expert review as blocking only when the current PR's merge safety cannot
be decided from available code, tests, docs, and authoritative evidence.
+Do not mark expert review as blocking merely because the PR is adjacent to a
specialized domain, or because broader umbrella/integration validation remains
outside this PR's scope.
+When the remaining specialized review is advisory, delegated to an umbrella
PR, or only needed before a larger feature release, state that boundary in
`Review Details` instead of blocking mergeability.
+Require blocking expert review when merge safety for the current PR depends on
specialized domains such as security, parser grammar or dialect semantics,
Proxy protocol/authentication/packet behavior,
high-concurrency or high-frequency performance paths,
transaction/pipeline/data consistency, shared
metadata/binder/routing/default-schema behavior, dependency/license changes,
or any area the reviewer cannot confidently validate from available evidence.
@@ -565,7 +579,7 @@ When required, add `- **Expert Review Needed:** ...` under
`Summary`; omit this
- **Reviewed Scope:** ...
- **Not Reviewed Scope:** ...
- **Verification:** Reviewer-run local verification and exit codes, or why
local verification was not run.
-- **Release Note / User Docs:** Required and verified, missing, not required
with reason, or not reviewed.
+- **Release Note / User Docs:** Required and verified, delegated to an
umbrella PR with reason, missing, not required with reason, or not reviewed.
```
## Change Request Tone Guidelines