Skip to content

chore: pin oxlint and oxlint-tsgolint to exact versions - #340

Open
sroussey wants to merge 1 commit into
mainfrom
claude/amazing-fermat-zd517e-pin-oxlint
Open

chore: pin oxlint and oxlint-tsgolint to exact versions#340
sroussey wants to merge 1 commit into
mainfrom
claude/amazing-fermat-zd517e-pin-oxlint

Conversation

@sroussey

@sroussey sroussey commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Why

lint runs oxlint with --deny-warnings, and CI runs lint (.github/workflows/test.yml). With oxlint declared as ^1.81.0, a minor oxlint release that adds a rule to its correctness set turns CI red on a day nobody touched the code.

This is exactly the hazard the repo already pins against elsewhere: oxfmt is 0.66.0 (the Formatting section of .claude/CLAUDE.md spells out the reasoning), and typescript is held to ~7.0.2. oxlint was the one tool in the trio still floating.

What changed

  • oxlint: ^1.81.01.81.0
  • oxlint-tsgolint: ^7.0.20017.0.2001
  • .claude/CLAUDE.md, Linting section: two sentences recording the pin and why, matching the wording style already used for oxfmt.

oxlint-tsgolint is pinned for the same reason — it supplies the type-aware rules, so a minor release of it can also add findings — and because oxlint declares it as a peer (oxlint-tsgolint: ">=7.0.2001"), the two are bumped together as one deliberate change.

Deliberately left alone: oxfmt (already exact), typescript (~7.0.2 is patch-only and an existing deliberate constraint), and the non-lint devDependencies (vitest, concurrently, better-sqlite3, @types/*) — none of them gate CI on a rule set.

No lint rule was changed, no staged-off rule flipped on, and .oxlintrc.json is untouched.

Freezing today's state, not upgrading

Both versions were read from bun.lock, which already resolved oxlint@1.81.0 and oxlint-tsgolint@7.0.2001. After bun install the lockfile diff is only the two range strings in the workspace devDependencies block — no resolution moved:

-        "oxlint": "^1.81.0",
-        "oxlint-tsgolint": "^7.0.2001",
+        "oxlint": "1.81.0",
+        "oxlint-tsgolint": "7.0.2001",

Installed binaries confirm the same versions (oxlint --version1.81.0; node_modules/oxlint-tsgolint/package.json7.0.2001).

Verification

bun install, then the first three CI steps:

  • bun run format-check — "All matched files use the correct format." (1143 files)
  • bun run lint — exit 0, no findings
  • bun run build — bundle, both bin transpiles, and tsc all clean, exit 0

🤖 Generated with Claude Code

https://claude.ai/code/session_01DdZebeeuQjgQTUszAjJDLb


Generated by Claude Code

`lint` runs oxlint with `--deny-warnings` and CI runs `lint`, so a floating
caret range picks up a rule added to oxlint's `correctness` set on a minor
release and turns CI red on a day nobody touched the code. This is the hazard
oxfmt is already pinned exactly against, and that `typescript` is held to
`~7.0.2` for.

Pinned to the versions the lockfile already resolved — oxlint 1.81.0 and
oxlint-tsgolint 7.0.2001 — so nothing upgrades here; the lockfile diff is the
two range strings and no resolution change. tsgolint is pinned too because it
supplies the type-aware rules and is oxlint's peer, so the pair moves together.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DdZebeeuQjgQTUszAjJDLb
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