Repository navigation
Replace standalone quality tools with Bun native commands - #240
Merged
Merged
Conversation
### What does this PR do? Closes #239. Replace the standalone oxfmt and oxlint development dependencies with Bun 1.4.4 native commands: - `bun run format` runs `bun fmt .`; `bun run format:check` runs `bun fmt --check .`. - `bun run typecheck` runs `bun check`; `bun run lint` remains a compatibility alias. - Remove the old tool configurations and their platform bindings from the lockfile without upgrading unrelated dependencies. Keep the existing 100-column formatting in `bunfig.toml`; unchanged files require no formatting migration. - Pin all seven Bun setup steps across CI, CD and docs/browser workflows through `.bun-version`. Add native quality gates to releases and make docs audits react to runtime/dependency changes. Preserve the existing required CI status-check name. - Resolve errors exposed by the newly enabled strict checker: complete test fixtures, type-safe shared fetch mocks preserving Bun's `preconnect`, browser/Web API declarations, a discriminated `Row` type, boolean header visibility and a string annotation for keyboard input. No strictness relaxation or project-file exclusions. - Update README, contributor/installation docs, AGENTS.md, task instructions and repository skills. No repository custom agents exist to update. Historical release posts are unchanged. - Tell knip that `fmt` and `check` are native Bun subcommands, not missing external binaries. **Intentional coverage change:** `bun check` is a TypeScript checker, not a linter. The old oxlint correctness/suspicious rules are intentionally retired with the user's approval; this is not equivalent lint coverage. Vue templates remain outside native TypeScript checking and are processed by the documentation build. There is no CLI interface or compiled-binary runtime requirement change. ### How did you verify your code works? - `bun test --reporter=dots` — passed: 1,025 tests, 0 failures (baseline: 1,024 tests). Added a fetch-mock regression check. - `bun run typecheck` — passed: 55 TypeScript files, zero type errors. - `bun run lint` — passed: compatibility alias runs the same native type checker. - `bun run format:check` — passed: all 146 matched files formatted. - `bun run knip` — passed. - `bun install --frozen-lockfile --quiet` — passed without lockfile changes. - `bun run build.ts` — passed; standalone macOS arm64 binary built and ad-hoc signed. - `dist/github-code-search --version` — passed: `2.0.0` with the build's commit/platform metadata. - `bun run docs:build` — passed, no dead-link errors; existing bundle-size advisory remains. - `actionlint .github/workflows/*.yaml` — passed using actionlint 1.7.12 downloaded only into session artifacts (no project dependency added). - Migration assertions — passed: removed dependencies/bindings absent, native scripts exact, all seven Bun setup steps read `.bun-version`. - Negative fixtures — passed: an intentional TS2322 error and unformatted code each exit 1; `bun fmt --check` leaves input unchanged. Aikido scanning could not run because its MCP server is unavailable in this session. Setup: https://help.aikido.dev/ide-plugins/aikido-mcp. Browser accessibility/responsive suites are left to their updated PR workflows; no Vue, CSS or page-layout changes are included here. No release tag was created. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
|
Coverage after merging shouze-bun-native-tooling into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contributor
🔦 Lighthouse Report
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
|
Coverage after merging shouze-bun-native-tooling into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Closes #239.
Replace standalone oxfmt and oxlint development dependencies with Bun 1.4.4 native commands:
bun run formatrunsbun fmt .;bun run format:checkrunsbun fmt --check ..bun run typecheckrunsbun check;bun run lintremains a compatibility alias.bunfig.toml; unchanged files require no formatting migration..bun-version. Add native release quality gates and make docs audits react to runtime/dependency changes. Preserve the existing required CI status-check name.preconnect, browser/Web API declarations, a discriminatedRowtype, boolean header visibility and a string annotation for keyboard input. No strictness relaxation or project-file exclusions.fmtandcheckare native Bun subcommands, not missing external binaries.Intentional coverage change:
bun checkis a TypeScript checker, not a linter. The old oxlint correctness/suspicious rules are intentionally retired with the user's approval; this is not equivalent lint coverage. Vue templates remain outside native TypeScript checking and are processed by the documentation build. There is no CLI interface or compiled-binary runtime requirement change.How did you verify your code works?
bun test --reporter=dots— passed: 1,025 tests, 0 failures (baseline: 1,024). Added a fetch-mock regression check.bun run typecheck— passed: 55 TypeScript files, zero type errors.bun run lint— passed: compatibility alias runs the same native checker.bun run format:check— passed: all 146 matched files formatted.bun run knip— passed.bun install --frozen-lockfile --quiet— passed without lockfile changes.bun run build.ts— passed; standalone macOS arm64 binary built and ad-hoc signed.dist/github-code-search --version— passed:2.0.0with build commit/platform metadata.bun run docs:build— passed, no dead-link errors; existing bundle-size advisory remains.actionlint .github/workflows/*.yaml— passed using actionlint 1.7.12 downloaded only into session artifacts, then removed (no project dependency added)..bun-version.bun fmt --checkleaves input unchanged.Remote checks: all passed on commit
11eca83.Aikido scanning could not run because its MCP server is unavailable in this session. Setup: https://help.aikido.dev/ide-plugins/aikido-mcp.
No Vue, CSS or page-layout changes are included. CD was updated and statically validated, but its release-tag workflow was not triggered; no release tag was created.