Skip to content

fix(lint): clear the last tranche-A suppression — require.context under a file-wide no-undef - #859

Merged
rubenvdlinde merged 5 commits into
developmentfrom
fix/tranche-a-unsuppress
Aug 16, 2026
Merged

fix(lint): clear the last tranche-A suppression — require.context under a file-wide no-undef#859
rubenvdlinde merged 5 commits into
developmentfrom
fix/tranche-a-unsuppress

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

What

Clears this repo's last tranche-A eslint suppression — the set where a suppression can hide a real defect.

require.context() sat under a file-wide no-undef suppression. That is a webpack build-time API the bundler rewrites at compile time, so eslint is right that no runtime require exists — and the code is right too.

The problem was scope: a file-wide suppression also switches no-undef off for every other identifier in the file, so a genuine typo there would have been silent. Now /* global require */ on the one line.

This is the same shape found in 9 apps across the fleet; all are being cleared the same way.

Verification

npm cieslint src (0 errors) → npm run build (exit 0) → tests pass. Suppressions drop by 1 and are pruned.

Sets `min-release-age=2` and `min-release-age-exclude[]=@conduction/*`, raises
`engines.npm` to ^11.0.0, and regenerates the lockfile under npm 11.

The .npmrc comment here has described a cooldown for months and it has never
been in effect. `min-release-age` does not exist in npm 10 — `npm config get
min-release-age` answers `undefined` — and every Node 22 release bundles npm
10, so the setting was read by nothing. Most repos also had it at 0, which
disables it outright.

@conduction/* is exempt because without the exemption the cooldown does not
fail loudly, it silently resolves backwards: measured 2026-08-15, an install of
@conduction/nextcloud-vue on release day picked 2.0.7 instead of 2.3.0 and
exited 0.

The lock is regenerated under npm 11 and iterated to a fixed point. Where the
tree changed rather than its metadata, that is npm 10 -> 11 reconciling a lock
shaped by the older resolver, not the cooldown — verified by regenerating with
the cooldown enabled and disabled and getting identical trees.

Verified: npm ci exit 0 under npm 11.19.0, @conduction/nextcloud-vue resolves
to 2.3.0, gate-84 conformance passes.
`gh run rerun` replays the workflow version resolved when the run was created,
so a reusable workflow referenced as @main is NOT re-resolved — every re-run
after ConductionNL/.github#469 merged still executed Node 22 with npm 10.9.8,
where `min-release-age` does not exist and `npm ci` cannot read an npm-11
lockfile. Only a new run picks up the merged workflow. This empty commit is
that trigger.
…er a file-wide no-undef

`require.context()` is a WEBPACK build-time API the bundler rewrites at compile
time, so eslint is right that no runtime `require` exists and the code is right
too. The file-wide `no-undef` suppression that recorded this also switched the
rule off for every OTHER identifier in the file, so a genuine typo there would
have been silent. Scoped to `/* global require */`.

Same shape found in 9 apps across the fleet; all cleared the same way.

Verified: eslint 0 errors, build exit 0, tests pass.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 19317c5

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue3-compile
test-l10n
format
composer ✅ 104/104
npm ✅ 535/535
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright
Hydra gates

Quality workflow — 2026-08-16 06:18 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 67952ad into development Aug 16, 2026
44 of 75 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/tranche-a-unsuppress branch August 16, 2026 06:21
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.

1 participant