Skip to content

chore(internal): fix mod export skips across checkouts - #7340

Open
tomas-zijdemans wants to merge 1 commit into
denoland:mainfrom
tomas-zijdemans:chore/check-mod-exports-skip-paths
Open

tomas-zijdemans wants to merge 1 commit into
denoland:mainfrom
tomas-zijdemans:chore/check-mod-exports-skip-paths

Conversation

@tomas-zijdemans

Copy link
Copy Markdown
Contributor

lint:mod-exports matched its skip list against absolute paths, so the directory you cloned std into could switch the check off. With a checkout at /private/tmp/_probe/std, the /(\/|\\)_/ pattern matches /_probe and every file gets skipped. An unexported async/planted.ts passes without a warning. A parent directory with "unstable" in its name does the same thing through /unstable/. CI runs on GitHub-hosted runners (/home/runner/work/std/std), so this only hits local runs and self-hosted runners, which check out under _work.

The patterns now run against the path relative to the repo root (uuid/v1.ts), with / separators on every platform. That also drops the (\/|\\) alternation from each entry.

Also in here:

  • /mod\.ts$/ becomes /\/mod\.ts$/. The old pattern also skipped any file whose name ends in mod.ts, so a stable fs/chmod.ts would never be checked.
  • Removes the uuid/v6.ts entry. That file doesn't exist. The v6 module is unstable_v6.ts, which /unstable/ already covers.
  • new Set<string>() instead of new Set().

Testing: deno task lint:mod-exports passes on main. I planted an unexported async/planted.ts and fs/chmod.ts in worktrees at /private/tmp/_probe/std and /private/tmp/unstable-probe/std, and both files warn in both. I also removed each named skip entry one at a time to confirm it still suppresses a real warning.

Heads-up: my #7335 (dotenv removal) edits the dotenv/load.ts line in this list, so whichever lands second needs a one-line rebase.

I used Claude Code to help investigate and write this change.

…me checkout paths

The skip list is now matched against repo-relative paths, so a parent
directory named `_something` or `*unstable*` no longer disables the check.
Also anchors the `mod.ts` pattern so it can't skip `chmod.ts`, and removes
the dead `uuid/v6.ts` entry.
@codecov

codecov Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.04%. Comparing base (f834d02) to head (3fbdeba).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7340      +/-   ##
==========================================
- Coverage   95.04%   95.04%   -0.01%     
==========================================
  Files         619      619              
  Lines       52012    52012              
  Branches     9450     9450              
==========================================
- Hits        49434    49433       -1     
  Misses       2031     2031              
- Partials      547      548       +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tomas-zijdemans
tomas-zijdemans force-pushed the chore/check-mod-exports-skip-paths branch from fc99637 to 3fbdeba Compare September 28, 2026 17:41
@tomas-zijdemans tomas-zijdemans changed the title chore: stop lint:mod-exports skipping every file under some checkout paths chore(internal): stop lint:mod-exports skipping every file under some checkout paths Sep 28, 2026
@tomas-zijdemans tomas-zijdemans changed the title chore(internal): stop lint:mod-exports skipping every file under some checkout paths chore(internal): fix mod export skips across checkouts Sep 28, 2026

This branch has not been deployed

No deployments
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