Skip to content

CI: washr API drift check and a recorded compatibility floor #77

Closed

Description

@larnsce

Problem

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

  1. .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.
  2. 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.

Related: #66, washr #82.

Activity

  1. 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
  2. larnsce commented on Sep 6, 2026

    @larnsce
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions