You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CI: washr API drift check and a recorded compatibility floor #77
Every washr call the skills and docs make is checked against washr by hand, when someone remembers, or when washr's release checklist remembers to notify this repository (washr #78 had that item; fill_dictionary() going internal in 1.1.0 was found by reading, not by a check). The washr floor (1.1.0 since v1.5.0) lives only inside two SKILL.md preflight lines.
Proposal
.github/workflows/washr-drift.yaml, weekly and on push: install washr from CRAN, extract every washr::name from skills/, docs/, and README.md, and fail when a name is not in getNamespaceExports("washr"), listing the offenders and the files. Also compare the CRAN version with the recorded floor and print both, so a new washr release shows up in the next run.
Record the floor once: a WASHR_FLOOR file next to VERSION (or a line in VERSION's directory) that the two preflights and the workflow read, and a compatibility table in the README (pkgreview version, washr floor).
Tasks
Workflow and the floor file; preflights read the file instead of a literal
README compatibility table (1.0.0 to 1.4.0: washr 1.0.1 with caveats; 1.5.0: washr >= 1.1.0)
Acceptance
Renaming a washr export on CRAN turns the weekly run red within a week with the file and line named
Bumping the floor is one file change
Objection window
Until 2026-09-20. Without an objection recorded here by then, the proposal stands and is implemented in the next skills release; an objection turns this into a decision issue with options.
changed the title [-]Automate the interactive fixture gate or retire it; scripted throwaway setup[/-][+]CI: washr API drift check and a recorded compatibility floor[/+]on Sep 6, 2026
Two more homes for the literal floor turned up in a 2026-09-06 read of the repository: skills/pkgreview-core/references/standards.md ("washr 1.1.0 or newer is the floor for these calls") and the Citation tooling field of both org profiles. For "bumping the floor is one file change" to hold, the standards template and the org profiles need to read the floor file too, or carry a placeholder filled at stamp time the way {{PKGREVIEW_VERSION}} is. If #78 makes the org profiles machine readable, the floor can be one field there and the workflow reads it from the profile. The same drift script is wanted in the publishing guide (Global-Health-Engineering/ghedatapublishing#12) and a scaffold check is proposed on washr (openwashdata/washr#129), so a script that takes file globs as its argument serves all three.
Activity
[-]Automate the interactive fixture gate or retire it; scripted throwaway setup[/-][+]CI: washr API drift check and a recorded compatibility floor[/+]ci(workflow): fixture gate, case suite, lint, washr drift, release ta…
larnsce commentedon Sep 6, 2026
Two more homes for the literal floor turned up in a 2026-09-06 read of the repository:
skills/pkgreview-core/references/standards.md("washr 1.1.0 or newer is the floor for these calls") and the Citation tooling field of both org profiles. For "bumping the floor is one file change" to hold, the standards template and the org profiles need to read the floor file too, or carry a placeholder filled at stamp time the way{{PKGREVIEW_VERSION}}is. If #78 makes the org profiles machine readable, the floor can be one field there and the workflow reads it from the profile. The same drift script is wanted in the publishing guide (Global-Health-Engineering/ghedatapublishing#12) and a scaffold check is proposed on washr (openwashdata/washr#129), so a script that takes file globs as its argument serves all three.