Skip to content

fs-packages: re-normalize 10 publint git+ prefix regressions (PR #35 aftermath)#48

Merged
Goosterhof merged 6 commits into
mainfrom
armory-publint-git-prefix-sweep
Apr 23, 2026
Merged

fs-packages: re-normalize 10 publint git+ prefix regressions (PR #35 aftermath)#48
Goosterhof merged 6 commits into
mainfrom
armory-publint-git-prefix-sweep

Conversation

@Goosterhof
Copy link
Copy Markdown
Contributor

Summary

Root cause (not a partial fix — a stale-branch regression)

The git+ prefix wasn't deliberately removed by anyone. 4bd3115 fixed it originally; PR #35 (merged 2026-04-19) was branched BEFORE 4bd3115 landed and silently overwrote pre-fix manifest state across every file it touched on merge. `git log --all -S 'git+https'` confirms only 4bd3115 ever introduced the fix string — no explicit revert commit exists.

Scope of regression: all 10 packages, not just adapter-store (adapter-store, dialog, helpers, http, loading, router, storage, theme, toast, translation). Root package.json is "private": true with no repository field, so it's not publint-linted and was unaffected.

Why the gate didn't catch this

`publint` grades git+ as a suggestion, not an error. The current lint:pkg script returns exit 0 on suggestion-only output, so `npm run lint:pkg` went green every CI run during the 3 days of drift. Enforcement queue entry #33 (filed 2026-04-22) tracks the gate-tightening follow-up: either `publint --level=suggestion` or a wrapper that fails CI on any `Suggestions:` block.

Verification

All 8 CI gates green locally. Notable delta on gate 6 (lint:pkg):

Before After
10 packages × Suggestions: blocks 0 Suggestions: blocks
10 × No problems found 10 × No problems found
40/40 attw rows green 40/40 attw rows green

No new advisory classes surfaced.

Test plan

  • `npm audit` — 0 vulnerabilities
  • `npm run format:check` — all clean
  • `npm run lint` — 0/0
  • `npm run build` — all 10 packages
  • `npm run typecheck` — all clean
  • `npm run lint:pkg` — 0 Suggestions blocks (down from 10)
  • `npm run test:coverage` — 427/427
  • `npm run test:mutation` — all packages ≥ 90%

Goosterhof and others added 2 commits April 22, 2026 15:14
All 10 workspace packages had drifted back to the plain https:// form
after 4bd3115 introduced the git+ prefix — the merge of PR #35
(feat/adapter-store-apply-external-updates, branch cut pre-4bd3115)
carried the pre-fix state across every manifest, and no subsequent
commit re-normalised. publint 0.3.18 was emitting the "could be a full
git URL like git+https://..." suggestion for every package.

Re-applies 4bd3115's canonical form mechanically across all 10:
adapter-store, dialog, helpers, http, loading, router, storage, theme,
toast, translation. One-line change per manifest, identical to the
original patch.

Before: 10/10 packages carry the publint git+ suggestion.
After:  0/10 suggestions; lint:pkg gate clean.

Root package.json has no repository field and is private — no change.
No version bumps — metadata-only.

Closes the publint git+ class advisory surfaced by PR #45's
adapter-store Engineer execution report.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes enforcement queue #33. publint 0.3.18 CLI does not expose a
flag to fail on suggestions: --level only controls log verbosity,
--strict only promotes warnings → errors. Verified empirically with
all three flag combinations on a real git+ URL suggestion — every
invocation exits 0.

Option (a) rejected by empirical test; Option (b) chosen.

Adds scripts/lint-pkg.mjs — ESM Node wrapper that runs publint per
workspace, detects Suggestions:/Warnings:/Errors: blocks, runs attw
--pack alongside, and exits non-zero on any publint advisory OR attw
failure. Failure output names both the package and the advisory class
in a single greppable line.

Root "lint:pkg" now points at the wrapper; per-package "lint:pkg"
scripts stay as "publint && attw --pack" for developer ergonomics
during per-package iteration.

Smoke test:
  - BEFORE tightening: publint && attw on git+-stripped http/package.json → exit 0 (silent drift)
  - AFTER tightening: npm run lint:pkg on same regression → exit 1 with "fs-http: publint emitted \"Suggestions:\" block (fail-on-suggestion gate)"
  - Post-revert: npm run lint:pkg → exit 0

All 8 CI gates green on sweep-normalized base (stacked on
armory-publint-git-prefix-sweep).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ghtening

Tighten lint:pkg gate: fail CI on publint suggestions (enforcement #33)
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 23, 2026

Deploying fs-packages with  Cloudflare Pages  Cloudflare Pages

Latest commit: 05149fc
Status: ✅  Deploy successful!
Preview URL: https://1293cf8b.fs-packages.pages.dev
Branch Preview URL: https://armory-publint-git-prefix-sw.fs-packages.pages.dev

View logs

@Goosterhof Goosterhof merged commit cf6fc14 into main Apr 23, 2026
2 checks passed
@Goosterhof Goosterhof deleted the armory-publint-git-prefix-sweep branch April 23, 2026 11:27
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.

2 participants