Repository navigation
docs: how to sync skeleton changes into a derived module - #6
Conversation
The prompt covered the first-time bring-up and never said so, so a task that was really 'forward one skeleton improvement' landed in an eight-phase, eight-PR document. Splits the two: README gains a sync checklist, the prompt gains a scope header naming the tell (ci/ layout, ci.yml as sole pull_request entry, ci/linter/) and pointing at the README for the smaller job. Phase 2 also gained the port-band rule. It was absent, which is how modules ended up running prove on Test::Nginx's unarbitrated default 1984 against builder02's six slots; the collision surfaces as a bind() failure that reads as a module regression.
|
Warning Review limit reached
Next review available in: 53 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
WalkthroughThe changes distinguish first-time module standardization from later skeleton synchronization. They add synchronization procedures and require unique, verified Test::Nginx port bands for ChangesModule standardization and synchronization
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: d39e7eaf-c2e6-4147-af72-a422f5ca9696
📒 Files selected for processing (2)
README.mdci/PROMPT-standardize-module.md
Both from CodeRabbit on #6, both confirmed against the code. max-port.sh runs AFTER prove in build-test.yml and guards the runtime fixture, so the earlier text was wrong to describe the band as verified before binding. The prompt now states where the check belongs, says the reference does not do that for ci/t/, and tells a target to put it earlier rather than copy the order. The reference's own reorder is filed as a follow-up, not done here. The gcovr condition is the runner's gcovr major, not whether a pin exists: --gcov-object-directory arrived in 7.0, --object-directory is accepted by both.
|
Both confirmed against the code, both fixed in Port-band contract. Correct, and the error was mine in the doc rather than a The prompt now states where the check belongs, records that the reference does Reordering the reference's own step is a workflow change and this PR is gcovr. Also right, and the sharper condition is the useful one: the runner's |
TL;DR
A module gets cloned from here once and then drifts. There was no written procedure for forwarding a later skeleton fix into it — only
ci/PROMPT-standardize-module.md, which is the eight-phase, eight-PR first-time bring-up and never said so. So the small job ("port this one improvement") had only the large document to land in.What changed
## Syncing skeleton changes into a derived module: establish an anchor, select one concern per PR, re-derive rather than copy, check the four drift classes, verify the gate red, record the anchor in the memory mirror, send improvements back.## Scope — is this the right document?header naming the tell for an already-standardised target —ci/layout,ci.ymlas solepull_requestentry point,ci/linter/— and pointing at the README for the smaller job.TEST_NGINX_PORT, default 1984, unarbitrated;builder02runs six slots against one network. Two jobs on the default collide and the loser dies withbind() to 127.0.0.1:1984 failed (98: Address already in use), which reads as a module regression. Documents the reference shape: per-workflowTEST_BASE_PORT(build-test.yml19200,ci-deep.yml19400) passed asTEST_NGINX_PORT, band proven free byci/tools/max-port.sh.The drift list is narrower than the earlier carry-note claimed:
versions.envvalidation and theworkflow_policy.pyregex bypasses only apply to a module that already carries those files, which no sibling does. That correction is stated in the README rather than left implicit.Testing
ci/linter/run-all.shclean on the working tree, and again in--stagedmode at commit.lint-docs-driftreports 10 workflows, all documented in README.md — the check that the badge row and CI table stay in lockstep with reality, and the one this diff could plausibly have broken. No behaviour change to test: no.c,.sh,.pyor workflow file is touched.