Skip to content

chore(ci): pin charset-corpus-drift to gha/v1 and declare caller permissions#40

Merged
jakebromberg merged 2 commits into
mainfrom
chore/pin-reusable-workflows-gha-v1
May 20, 2026
Merged

chore(ci): pin charset-corpus-drift to gha/v1 and declare caller permissions#40
jakebromberg merged 2 commits into
mainfrom
chore/pin-reusable-workflows-gha-v1

Conversation

@jakebromberg
Copy link
Copy Markdown
Member

Summary

  • Pin WXYC/wxyc-shared/.github/workflows/check-charset-corpus-drift.yml from @main to @gha/v1 (the publisher's moving-major tag).
  • Declare workflow-level permissions: contents: read + packages: read (the publisher's documented caller-permissions floor for npm pack @wxyc/shared).

Closes #39.

Part of the org-wide hardening tracker WXYC/wiki#68; see the publisher's Caller permissions contract for the rationale.

Test plan

  • CI green (the charset-corpus-drift job in particular should run and pass on gha/v1).
  • actionlint .github/workflows/*.yml clean locally.

…issions

Pins the WXYC/wxyc-shared reusable workflow ref from @main to @gha/v1 (the moving major tag with the documented Tag Stability Policy) and declares the workflow-level permissions floor (contents: read + packages: read) that the caller-permissions contract requires.

Part of the org-wide hardening tracker WXYC/wiki#68.
Bumps the workflow's charset-corpus-drift pin from 0.10.0 to 1.6.0 (corpus sha256 75a3395bb... -> 41a18c5c...), and migrates the per-repo fixture + round-trip test accordingly.

The 1.6.0 corpus tightens storage semantics versus 0.10.0:
- NFD-form inputs (cafe + U+0301, n + U+0303) now have an NFC expected_storage; the catalog canonicalizes two byte-forms of the same visual string into one.
- Cf-class chars (LRM, RLM, RLO, PDF) are stripped from match_form per the WX-2 charter (was: undefined / null).
- U+0000 is documented as a known PG TEXT failure (SQL standard).

The round-trip test (tests/charset_torture.rs) now:
- Skips NUL-bearing inputs at the CSV-build stage with a tidy reporting comment (PG COPY rejects NUL anyway).
- Treats U+0000 as a known expected_failures entry.
- Compares actual to `*input` rather than to input.replace('\0', "") since NUL inputs are skipped upstream.

@wxyc/shared 0.10.0 is no longer fetchable from npm.pkg.github.com, which had turned the scheduled drift check red on main since 2026-05-18. This bump greens it.
@jakebromberg jakebromberg merged commit 58018ee into main May 20, 2026
4 of 6 checks passed
@jakebromberg jakebromberg deleted the chore/pin-reusable-workflows-gha-v1 branch May 20, 2026 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pin charset-corpus-drift reusable workflow to @gha/v1 and declare caller permissions

1 participant