[No QA] Automate PR checklist batch 2: callback naming, prop docs, file headers#95546
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
…headers Add reviewer rules CONSISTENCY-12/13/14 and trim the matching author + reviewer checklist items, plus remove reviewer lines now dead-covered by existing rules (CONSISTENCY-9, CLEAN-REACT-5, CLEAN-REACT-8). Issue: Expensify#92599
…NCY-14 - Restore reviewer checkboxes 'All props are defined accurately' and 'only data in state necessary for rendering' - not covered by rules (13/10 cover only prop-doc presence; CLEAN-REACT-5/PERF-6 don't fully cover render-only state). - Broaden CONSISTENCY-14 from src/libs+src/hooks to all src/** so the removed 'any new file' checklist item is genuinely covered.
f4181c4 to
29b555c
Compare
|
CC @marcaaron |
That checklist line is removed by this same PR; state the rationale directly.
|
Woah Melvin, hold you horses! I don't think this PR is so complex it needs three reviewers 😄 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 29b555c7f4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
|
||
| Flag ONLY when ALL of these are true: | ||
|
|
||
| - The change **adds a new file** (not a modification of an existing one) under `src/**` |
There was a problem hiding this comment.
Preserve header checks for non-src files
Because the manual “any new file” checklist item was removed from both PR checklists, limiting the replacement rule to src/** drops coverage for non-trivial new files elsewhere, such as .github/actions/javascript/**, scripts, or config helpers. The Claude code-review workflow is also path-filtered to src/**, so a PR adding one of those files without a top-of-file description will no longer be prompted by either automation or the human checklist; either keep a checklist item for non-src files or expand the rule/workflow scope.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
While it is a valid concern, it looks like it's mostly a theoretical one as after looking through the files under .github/actions/javascript/** none of them were actually compliant with the checklist rule ever before.
Across all 28 authored .ts files in .github/actions/javascript/**:
- 0 have a genuine file-description header.
- 27 open directly with an import (or a type).
- The lone "comment" match — markPullRequestsAsDeployed.ts — is just an /* eslint-disable ... */ directive, not a description.
The reviewer is currently scoped for files under src only and extending this might bring more overhead than gain actually. With that said, looping in @marcaaron not to decide on my own 🤜 🤛
There was a problem hiding this comment.
Agree completely that it is not a concern.
|
@kacper-mikolajczak Could you take a look at Codex's comment? |
|
429: Too Many Requests |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
@kacper-mikolajczak Could you please update the PR Author Checklist? |
Commented on, curious what Marc think of it.
Done ✅ |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
LGTM as well. 👍 |
|
🚀 Deployed to staging by https://github.com/marcaaron in version: 9.4.32-0 🚀
|
|
🚀 Deployed to production by https://github.com/grgia in version: 9.4.32-3 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Phase 2 (batch 2) of automating the deterministic PR-checklist items behind the
code-inline-reviewer, following the merged Phase 1 (#92926). Converts three more checklist items into auto-discovered reviewer rules and trims the checklists accordingly.New reviewer rules (
.claude/skills/coding-standards/rules/, also registered inSKILL.md):CONSISTENCY-12toggleReportnotonIconClick)CONSISTENCY-13/** */block (presence check; complementsCONSISTENCY-10which owns style + mixed cases, so no double-flag)/** comment above it */" (comment clause only - see caveats)CONSISTENCY-14src/**start with a header description commentChecklist trims
PULL_REQUEST_TEMPLATE.mdandREVIEWER_CHECKLIST.md.CONSISTENCY-9), and the three Class Componentthis-binding / render-method items (moot underCLEAN-REACT-8, which bans class components).Coverage caveats (intentional, reviewed)
Not every removed line was fully automatable. To avoid losing coverage, the following were kept as human reviewer checkboxes rather than removed:
/** */comment presence half of the original prop line; semantic accuracy of prop definitions stays human.CLEAN-REACT-5targets grouping of unrelated concerns in a state provider, andPERF-6only the derived-from-props subset; neither captures general "render-only state", so this stays human.Other intentional scoping:
CONSISTENCY-14fires on new files undersrc/**. The reviewer workflow is itselfsrc/**-scoped for now, so non-srcfiles are intentionally out of scope in this batch.CLEAN-REACT-8allows error-boundary classes as an exception; such a class would not get the (removed)this-binding guidance. Negligible in practice.Trimming
REVIEWER_CHECKLIST.mdshortens it, which re-triggers the regression fixed by #94161 (the reviewer-checklist action caps completed items atcount + 2). #94161 must merge before this PR or in-flight reviewer checklists written against the longer template will fail.Fixed Issues
$ #92599
Tests
Offline tests
QA Steps
[No QA]
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.