Skip to content

Commit 728c8fc

Browse files
[ci] release
1 parent 7fe9353 commit 728c8fc

8 files changed

Lines changed: 41 additions & 53 deletions

.changeset/build-publish-gate.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

.changeset/lint-public-surface.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changeset/lint-tiers-and-output.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

.changeset/max-params-rule.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changeset/skills-updates.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changeset/tsconfig-baseline.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# @bomb.sh/tools
22

3+
## 0.6.0
4+
5+
### Minor Changes
6+
7+
- 23997e5: Runs `publint` as a publish gate in `bsh build` and generates types by default
8+
9+
- After a successful build, `bsh build` now runs `publint` (strict mode) against the emitted `dist/` and fails on errors — publishing mistakes like missing declaration files or broken `exports` targets are caught at build time instead of at publish.
10+
- Type declarations (`.d.mts`) are now generated by default; pass `--no-dts` to opt out. If your `package.json` declares types but they aren't emitted, the build now fails.
11+
- Entry globs that match nothing now fail with a clear message (`No entry files matched: …`) instead of tsdown's opaque `Error: undefined Cannot find entry`.
12+
- `bsh publint` output now renders full messages (e.g. which `exports` target is broken) instead of bare rule codes.
13+
14+
- 74356f7: Scopes the `bombshell-dev/exported-function-async` and `bombshell-dev/require-export-jsdoc` lint rules to a package's public API surface
15+
16+
`bsh lint` now derives the public surface from `package.json` (`exports`, `bin`, and `main`/`module`, mapping `dist/` paths back to `src/`), including conventional `packages/*/` workspace members. These two rules no longer fire on internal modules — only on files consumers can actually import. Packages without a publish surface (apps, examples) are exempt entirely, and wildcard passthrough exports (`"./*": "./dist/*"`) don't designate surface.
17+
18+
- c276677: Restructures `bsh lint` output and tiers knip's dead-code checks behind `--strict`
19+
20+
- Errors are now always shown in full; warnings collapse to a per-rule count (pass `--warnings` to see them). Warnings never affect the exit code, so this keeps actual failures visible.
21+
- Adds `--format json` for a machine-readable report (`{ summary, violations }`). Use `pnpm -s run lint -- --format json` to keep stdout clean.
22+
- Knip's dead-code issues (unused exports, types, and files) now only run with `--strict` — they fire constantly mid-implementation and are only meaningful as a commit-time gate. Dependency hygiene issues (unused dependencies/devDependencies) still always run.
23+
- Fixes `tsgo` silently type-checking nothing: file arguments made it skip the project `tsconfig` (TS5112), so default runs reported zero type errors. Type checking now always runs in project mode and explicit targets filter the report instead. This may surface previously hidden type errors.
24+
- Widens the default oxlint target from `./src` to the whole project (gitignored paths like `dist/` are respected), matching the scope of knip and tsgo.
25+
- Turns off `unicorn/consistent-function-scoping` and `no-underscore-dangle`, which fired frequently but were never deliberately enabled.
26+
- `--fix` now only exits non-zero when errors remain (previously any warning failed the run).
27+
28+
- 83c20f7: Replaces the stock `max-params` lint rule with a Bombshell-aware version
29+
30+
The 2-parameter limit (use an options bag beyond that) now only applies to signatures we author. Functions conforming to APIs we don't control are exempt: `override` methods, members of classes that `extends` or `implements` (e.g. Node streams, platform-shaped interfaces), and inline callbacks passed to other functions.
31+
32+
- 7a80756: Updates the shared `tsconfig.json` baseline for modern Node packages
33+
34+
- `target` and `lib` move from `es2022` to `es2024`, so modern APIs like `Array.prototype.toSorted` and `Promise.withResolvers` type-check without shims.
35+
- Adds `"types": ["node"]`. Packages must now have `@types/node` installed — missing it previously surfaced as dozens of `Cannot find name 'process'/'Buffer'` (TS2591) errors; now it's a single actionable `Cannot find type definition file for 'node'` (TS2688). Remedy: `pnpm add -D @types/node`.
36+
37+
### Patch Changes
38+
39+
- 7fe9353: Updates the `lint`, `build`, and `lifecycle` skills to match current `bsh` behavior
40+
41+
The lint skill no longer claims publint runs in `pnpm run lint` (it gates `pnpm run build`), documents `--strict`, `--warnings`, and `--format json`, and adds a remedies table mapping common violations to their sanctioned fixes. The lifecycle skill moves the knip dead-code gate (`lint --strict`) to the PR handoff step.
42+
343
## 0.5.6
444

545
### Patch Changes

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@bomb.sh/tools",
3-
"version": "0.5.6",
3+
"version": "0.6.0",
44
"description": "The internal dev, build, and lint CLI for Bombshell projects",
55
"keywords": [
66
"bombshell",

0 commit comments

Comments
 (0)