Skip to content

fix(oxlint): turn off import/prefer-default-export, unicorn/number-literal-case and eslint/id-length (v0.1.4) - #7

Merged
akellbl4 merged 5 commits into
mainfrom
release/v0.1.4
Oct 8, 2026
Merged

akellbl4 merged 5 commits into
mainfrom
release/v0.1.4

Conversation

@akellbl4

@akellbl4 akellbl4 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Turns three rules off in both shared Oxlint presets and releases the packages as 0.1.4.

  • import/prefer-default-export. Named exports are the convention. The presets don't enable the import plugin, but a config that adds it (sousvide does, for no-cycle) gets this rule from the plugin's categories. sousvide turned it off locally; it moves here, as Paul asked.
  • unicorn/number-literal-case. It wants uppercase hex digits (0xFEFF), but oxfmt and Prettier both write them in lowercase (0xfeff), checked with each formatter. oxlint's version of the rule takes no options (rejected as invalid config on 1.87.0, the latest), so it can only fight the formatter. Running the original ESLint rule through jsPlugins would work but adds a peer dependency, so the rule stays off.
  • eslint/id-length. Short names (loop indices, callback params, a/b comparators, math names) read better than padded ones. sousvide carried ~400 per-line suppressions for it (crutchcrew/sousevide-alpha#390); Paul asked to disable it here.

Validation:

  • bun run check, bun run version:check (all manifests at 0.1.4), bunx tsc --noEmit and bun run publish:packages --dry-run pass. Nothing was published locally.
  • In sousvide: with this lint.ts in place of the installed 0.1.3 preset, and both local lines removed (prefer-default-export off, and the number-literal-case debt line), oxlint --deny-warnings is clean. Without the local prefer-default-export line, the 0.1.3 preset reports 47 violations.

Merging this release/v* branch tags v0.1.4 and triggers the publish workflow. A follow-up sousvide PR then bumps @configg/bases to ^0.1.4 and drops both local lines.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Updated linting presets to disable two rules that conflict with the project’s formatting conventions.
  • Documentation
    • Clarified which rules are disabled in both linting presets.
  • Chores
    • Released updated versions of the packages.

…(v0.1.4)

Named exports are the convention, so configs that add the import plugin
shouldn't be pushed toward default exports. sousvide disabled it locally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 588fc5ba-1d7d-468d-8a53-504cb02c62d1
📥 Commits

Reviewing files that changed from the base of the PR and between 5968acc and 54ece19.

📒 Files selected for processing (2)
  • packages/oxc/README.md
  • packages/oxc/src/lint.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/oxc/README.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

The shared lint configuration now disables eslint/id-length, import/prefer-default-export, and unicorn/number-literal-case. The README documents these settings. The root package and the @configg/oxc and @configg/tsconfig packages now use version 0.1.4.

Changes

Oxlint rule and package release

Layer / File(s) Summary
Update lint rules and package versions
packages/oxc/src/lint.ts, packages/oxc/README.md, package.json, packages/oxc/package.json, packages/tsconfig/package.json
The shared lint configuration disables eslint/id-length, import/prefer-default-export, and unicorn/number-literal-case. The README documents these settings. The root package and both workspace packages change from version 0.1.3 to 0.1.4.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 54ece

The release changes lint enforcement consistently in both presets and does not alter runtime behavior. The package versions align at 0.1.4, with no material merge risk identified.

Architecture Summary

Architecture risk: 🔵 Low · up to 54ece

The change affects 3 systems.

Changed systems: packages/oxc, package.json, packages/tsconfig

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — packages/oxc (library) was modified; 3 changed files map to changed impact.
  • observed — package.json (service) was modified; 1 changed file maps to changed impact.
  • observed — packages/tsconfig (library) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in package.json: The package version was updated from 0.1.3 to 0.1.4.
  • observed — Modified behavior in packages/oxc/package.json: The package version changes from 0.1.3 to 0.1.4.
  • observed — Modified behavior in packages/tsconfig/package.json: The package version is updated from 0.1.3 to 0.1.4.
  • observed — Modified behavior in packages/oxc/README.md: The documentation adds that short identifiers are allowed because eslint/id-length is off, import/prefer-default-export is off, and unicorn/number-literal-case is off. The existing reduce() and process.exit() allowances and template-expression description remain.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary lint-rule changes and the 0.1.4 release.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

… formatters)

oxfmt and Prettier write hex digits in lowercase, the rule wants uppercase,
and oxlint's version takes no option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@akellbl4 akellbl4 changed the title fix(oxlint): turn off import/prefer-default-export in shared presets (v0.1.4) fix(oxlint): turn off import/prefer-default-export and unicorn/number-literal-case (v0.1.4) Oct 7, 2026
Short names (loop indices, callback params, math names) read better than
padded ones; sousvide suppressed ~400 of them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@akellbl4 akellbl4 changed the title fix(oxlint): turn off import/prefer-default-export and unicorn/number-literal-case (v0.1.4) fix(oxlint): turn off import/prefer-default-export, unicorn/number-literal-case and eslint/id-length (v0.1.4) Oct 8, 2026
Comment thread packages/oxc/src/lint.ts
Comment on lines +18 to +19
// Oxfmt and Prettier write hex digits in lowercase; this rule wants uppercase and takes no option.
'unicorn/number-literal-case': 'off',

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enable the rule and require lower case

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 6d0f2d6. oxlint's own unicorn/number-literal-case can't do this: it takes no options ("This rule does not accept configuration options" on 1.87.0, the latest) and wants uppercase. So both presets turn it off and run the original rule from eslint-plugin-unicorn 77 through jsPlugins as unicorn-js/number-literal-case with hexadecimalValue: 'lowercase'. Checked: 0xFEFF, 0XFF and 1E5 are flagged, 0xfeff passes. eslint-plugin-unicorn is a new optional peer.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted in bc91b2f: oxlint can't require lowercase hex digits (its rule takes no options), so unicorn/number-literal-case stays off and eslint-plugin-unicorn is gone again.

oxlint's unicorn/number-literal-case wants uppercase hex digits and takes no
options, so both presets turn it off and run the original rule as the
unicorn-js jsPlugin with hexadecimalValue: 'lowercase', matching oxfmt and
Prettier. eslint-plugin-unicorn becomes an optional peer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@akellbl4 akellbl4 changed the title fix(oxlint): turn off import/prefer-default-export, unicorn/number-literal-case and eslint/id-length (v0.1.4) fix(oxlint): import/prefer-default-export and eslint/id-length off, lowercase hex literals (v0.1.4) Oct 8, 2026
oxlint's rule can't require lowercase hex digits, so it stays off instead of
pulling in the ESLint plugin.

This reverts commit 6d0f2d6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@akellbl4 akellbl4 changed the title fix(oxlint): import/prefer-default-export and eslint/id-length off, lowercase hex literals (v0.1.4) fix(oxlint): turn off import/prefer-default-export, unicorn/number-literal-case and eslint/id-length (v0.1.4) Oct 8, 2026
@akellbl4
akellbl4 merged commit 946389f into main Oct 8, 2026
1 check passed
@akellbl4
akellbl4 deleted the release/v0.1.4 branch October 8, 2026 14:19
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