Repository navigation
docs(corpus): refresh stale ledger metadata - #501
Conversation
Hygiene for #475. The tidyverse source_sha256 flagged in the issue (d9d1fca1 vs actual 27c0c289) was already superseded on main by the RY106 regeneration (bb16403) and the superassignment recompute (c636b6b); the recorded 21661fef verified to reproduce from the committed 32 non-posit root reports concatenated in filename order, so no digest change was needed. ecosystem/posit-packages.txt carried audit-era (ry 0.8.0) per-package counts that never tracked the regenerated reports: all 36 stale comments are refreshed to the current committed posit.*.root.txt / ledger counts, including the issue's lintr 12 -> 9 and testthat 9 -> 2. Tier membership is deliberately untouched (roxygen2/recipes/corrr/ bigrquery now read clean inside the fast tier; rmarkdown/tidyr/learnr/ dtplyr/bslib carry counts inside the full tier) because re-tiering changes what --tier fast clones and reconciles. docs/corpus/README.md's digest-recipe paragraph said six ungated reports hold 46 unowned findings with only fs and withr empty; the current reports hold 44 across three (cli, rlang, testthat) and five are empty (scales since #460, curl and jsonlite since #374). The tidyverse ledger pins the two duplicated dbplyr RY091 identities (test-backend-.R:110:36, test-translate-sql-string.R:13:36) with a note: the hermetic report emits each twice at the same span and reconcile.R compares multisets, so both copies are load-bearing. docs/rules.md's RY093 row drops abs() from the parenthetical: the pinned test (comparison_inside_selected_scalar_calls_is_diagnosed) asserts abs fires RY100, not RY093. One-time commit audit: all 86 package pins across both ledgers plus the upstream-fix note references (dbe32a6 dtplyr, 6fec3ad hms) resolve in their upstream repos via the GitHub API, and both ledgers' ry_commit 1dc5998 and the fd48562 baseline note resolve in this repository. No rewritten-away references remain.
|
Warning Review limit reachedNext included review available in 15 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (4)
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.
ℹ️ No blocking issues — one stale PR reference inline, plus a follow-up note on the tier markers.
Reviewed changes
ecosystem/posit-packages.txtcomment refresh (36 entries) — recounted all 62 manifest entries against theirposit.*.root.txtreports: every new count matches exactly (0 mismatches;cleancorresponds to a 0-byte report). Pins, stars, and ordering are untouched, andecosystem/run.shscopes tiers by marker position, so the edits are inert to CI behavior.docs/corpus/README.mdunowned-findings paragraph — verified the arithmetic from the eight no-block reports: cli 14 + rlang 15 + testthat 15 = 44 unowned, and curl/fs/jsonlite/scales/withr are all 0 bytes; exactly those eight manifest packages lack a ledger packages-block entry. One provenance nit inline.docs/corpus/tidyverse-0.7.1.jsondbplyr-duplicate note — the hermetic report does emit each identity twice at the same span, the ledger'spr195-nse-stubsgroup holds all 6, and the described calls match the pinned upstream source atf478e207(ifelse(x, 1L)intest-backend-.R,substr("test", 0)attest-translate-sql-string.R:13, both inside the NSE-capturingexpect_translation_snapshot).ry_commitand bothsource_sha256values are unchanged and still reproduce from the README recipes.docs/rules.mdRY093 summary — droppingabs()is correct: the pinned testcomparison_inside_selected_scalar_calls_is_diagnosedassertsabs(x != y)fires RY100 while onlylength/ncharfire RY093. Thereadme_rule_tabletest pins only code/name/severity plus a non-empty summary, so the wording change can't break it, and no other doc describes RY093 withabs().- Ran
check-ledger.py(410/88, OK),test-check-ledger.py(6/6),test-posit-messages.py(3/3), and recomputed both digest recipes locally.
ℹ️ Tier header comments now contradict the refreshed counts
After this refresh, four fast-tier packages read clean (roxygen2, recipes, corrr, bigrquery) while five full-tier "clean" packages carry counts (rmarkdown 2, tidyr 8, learnr 1, dtplyr 3, bslib 5), so both tier headers' stated invariants — >=1 ry diagnostic / 0 ry diagnostics; clean — are now wrong for the file as committed. The deferral is the right call here (moving entries across the # === full tier marker changes what --tier fast clones and reconciles on every PR, which deserves its own PR with a CI run), but nothing currently tracks it — worth a follow-up issue so the marker migration doesn't get lost now that the comments advertise the inconsistency.
Technical details
# Tier markers lag the refreshed per-package counts
## Affected sites
- ecosystem/posit-packages.txt:18 — `# === fast tier (>=1 ry diagnostic) ===` now contains 4 entries whose comments read `clean`: roxygen2, recipes, corrr, bigrquery.
- ecosystem/posit-packages.txt:54 — `# === full tier (0 ry diagnostics; clean) ===` now contains 5 entries with nonzero counts: rmarkdown (2), tidyr (8), learnr (1), dtplyr (3), bslib (5).
## Required outcome
- Either move the 9 packages across the marker so tier membership matches the counts, or track that migration in a follow-up issue; do not leave the headers' stated invariants silently false.
## Open questions for the human
- Moving the 5 counted full-tier packages into the fast tier grows PR CI reconcile scope (5 extra clones per PR run); moving the 4 clean ones out shrinks it. Both are behavior changes and belong in a dedicated PR with a green `posit` lane, which is why deferring here is reasonable.openai-compatible/glm-5.3 | 𝕏
Review of #501: 6d4ba4f, the commit that took ecosystem/reports/scales.root.txt from 62 bytes to empty, landed via #459, not #460 (the 0.10.0 release-prep PR merged a few hours later, none of whose commits touch the file). The README attribution now names the PR that actually emptied it; the curl/jsonlite -> #374 attribution on the same line is verified correct and unchanged.
There was a problem hiding this comment.
✅ No new issues found — the follow-up fix is exactly right.
Reviewed changes
Since the prior review, one commit landed: the sole prior inline finding (the scales provenance reference) is corrected, and nothing else moved.
- Corrected the scales provenance reference in
docs/corpus/README.md— the unowned-findings paragraph now credits PR #459 for emptyingecosystem/reports/scales.root.txtinstead of the release-prep PR #460, matching the commit history verified in the prior review (6d4ba4f, which landed via #459, took the report from 62 bytes to empty while none of #460's commits touch it). The thread is resolved; no other file, count, or digest changed in this delta.
| View workflow run | Using openai-compatible/glm-5.3 | 𝕏
openai-compatible/glm-5.3 | 𝕏

Closes #475
What was stale, and what was done
1. tidyverse
source_sha256— verified current, no change needed.The staleness recorded in the issue (
d9d1fca1vs actual27c0c289) was already superseded on main: the RY106 regeneration (bb164033) replaced the digest and the superassignment recompute (c636b6b7) recomputed it again. Following the corpus README recipe (concatenated bytes of all 32 non-posit*.root.txtreports, sorted by filename), the recorded value reproduces exactly:The posit digest (
e10dd488…) was also re-derived from its 62 reports and matches.2.
ecosystem/posit-packages.txtcomment counts — refreshed (36 entries).The header comments still carried audit-era (ry 0.8.0) counts that never tracked the regenerated reports. All stale counts now match the committed
posit.*.root.txtreports and the check-ledger-validated per-package ledger counts — including the issue's lintr 12 → 9 (a 9th, the cp1252RY000, was owned after the issue was filed by250498eb) and testthat 9 → 2. Stars, refs, and ordering untouched.3. One-time commit-reference audit — no dead references found.
repos/{repo}/commits/{sha}, one 404 would have flagged).dbe32a6(dtplyr upstream fix),6fec3ad(hms upstream fix) upstream;fd48562(posit baseline note) and both ledgers'ry_commit1dc59989resolve in this repository.posit-messages-0.9.jsoncarries no commit hashes.Folded-in nits from the issue comments
dbplyr.root.txtemits each oftest-backend-.R:110:36andtest-translate-sql-string.R:13:36twice at the same span, andecosystem/reconcile.R'smultiset_deltarequires both copies. Pinned with an explanatory ledger note rather than deduped (dedup would break--check).docs/rules.mdRY093 row: droppedabs()from the parenthetical — the pinned testcomparison_inside_selected_scalar_calls_is_diagnosedassertsabs(x != y)fires RY100.Deliberately not changed (reviewer attention)
cleanand five full-tier "clean" packages (rmarkdown, tidyr, learnr, dtplyr, bslib) now carry counts. Moving them across the# === full tiermarker would make the tiers self-consistent again but changes what--tier fastclones/reconciles — left as a possible follow-up.Verification
python3 ecosystem/check-ledger.py docs/corpus/posit-0.9.0.json docs/corpus/tidyverse-0.7.1.json— OK (410 / 88 findings)python3 ecosystem/test-check-ledger.py— 6/6 OKpython3 ecosystem/test-posit-messages.py— 3/3 OKRscript ecosystem/test-reconciliation.R— all passecosystem/test-manifest-isolation.sh,ecosystem/test-drift-detection.sh— PASScargo test -p ry-checker --test readme_rule_table— 2/2 OK (couples to the rules.md edit)# namespace: positdirective, not file content hashing, selects report naming).