| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor(api): cover the generator scripts with effect lint (CLI-2842) (#7310) ## TL;DR brings the `packages/api` generator scripts and their tests under the effect lint, which completes the package ## whats introduced? - the allow list entry widens to `packages/api/**` - `download-openapi.ts` and `generate.ts` run as effect programs on `FileSystem`, `HttpClient`, `Config` and `Console`, with the same requests, console output, generated files and exit codes - a failed run still prints the original error and exits 1, with effect frames in the stack, and an empty `SUPABASE_API_URL` now reports effect's `UrlError` - the scripts tests move to effect, spawning turbo and oxfmt through `ChildProcess`, and the `openapi.json` sync test now checks the generator's own serializer ## ref - closes: CLI-2842 - closes: CLI-2840 | 3 天前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
refactor(repo): cover `tools`, `apps/docs` and `cli-test-helpers` with effect lint (CLI-2881) (#7348) ## TL;DR brings `tools`, `apps/docs` and `packages/cli-test-helpers` under the effect lint ## whats introduced? - `apps/docs/**`, `packages/cli-test-helpers/**` and `tools/**` join the allow list - the release and config tools run as effect programs on `FileSystem` and `HttpClient`, with the same requests, console output, files written and exit codes, so the root gains `effect` and `@effect/platform-bun` dev dependencies - the test harness runs on effect too, so `cli-test-helpers` gains the same two as dependencies, and `makeTempDir` returns a promise of an async disposable dir, so its two `apps/cli-e2e` call sites await it - the docs page swaps its `async` functions for promise chains and renders the same pages - `local-registry.ts` adds one `oxlint-disable` for the `openSync` log descriptor Verdaccio shares across stdout and stderr, which effect's `ChildProcess` cannot hand over - a failed run prints the same error, with effect frames in the stack ## ref - closes: CLI-2881 | 2 天前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
chore(repo): move oxlint and oxfmt to native root configs (#6311) ## What Replaces the per-package nx-inferred lint/format targets with tool-native configuration at the repo root, so oxlint and oxfmt work standalone (`pnpm exec oxlint`, `pnpm exec oxfmt`) and the oxc VSCode extension sees the exact rules CI enforces. Three commits, meant to be reviewed separately: 1. **`chore: fix type-aware oxlint findings across the monorepo`** — the ~30 findings that block enabling type-aware linting repo-wide (`no-floating-promises`, `no-base-to-string`, redundant union constituents, `= undefined` optional params, …), plus two TS7 modernizations tsgolint forced in `tools/nx-plugins` (drop `node10` module resolution; replace the `Function('return import(...)')` transpile workaround with a plain `import()`, obsolete under Node 24 type stripping). 2. **`chore: format the full repo surface with oxfmt`** — mechanical one-time pass over surface the per-package targets never covered: docs markdown, workflow YAML, root/wrapper manifests, `tools/`, `apps/docs`. Generated docs outputs are excluded so they stay byte-identical with their generator. 3. **`chore: move oxlint and oxfmt to native root configs`** — the actual restructuring (details below). ## Why - Tool configuration lived in nx plugin code (`--deny-warnings`, `--type-aware` via a package.json side-channel) where only nx could see it; the oxlint VSCode extension had no config to discover at all. - Type-aware linting was scoped to `packages/api` only. Repo-wide it costs ~3.5s and immediately caught real issues (e.g. floating promises) — it is now on everywhere via `options.typeAware`/`options.denyWarnings` in `.oxlintrc.json`. - Spawning 7 per-package processes through nx for millisecond-fast Rust tools cost more than one whole-repo pass (~1s fmt, ~3.5s type-aware lint). ## Key changes - Root `.oxlintrc.json`: type-aware + deny-warnings, ignore list (`.repos`, `apps/cli-go`, fixtures, generated output), Effect-idiom rule exclusions (`no-misused-spread`, `unbound-method` — both false-positive on `Data.Class` copy-with-update and `.pipe(sem.withPermit)` patterns), and a legacy-scoped `no-base-to-string` override. - Root `.oxfmtrc.json`: ignore list only (style defaults unchanged); replaces `apps/cli-e2e/.prettierignore`, which only worked when oxfmt ran from that cwd. - `lint:*`/`fmt:*` are now plain command targets on `@supabase/root` (declared in the root package.json `nx` field); `oxlint.plugin.ts` and `oxfmt.plugin.ts` are deleted. Root `pnpm check:all`/`fix:all` and CI entrypoints are unchanged; per-package `check:all`/`fix:all` add `@supabase/root` to their `--projects` list. - The oxc devDependencies, knip ignores for them, and the `oxlint.typeAware` package.json channel are removed from every package — the tools are root devDependencies only. - Lint/format now also cover previously unchecked surface: `tools/`, `apps/docs`, root scripts, docs markdown, and workflow YAML. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julien Goux <hi@jgoux.dev> | 2 个月前 | |
feat(config): accept env() on number, boolean, enum and list fields in the config schema (#7333) ## Summary The config loader resolves `env(VAR)` on any field and then coerces it to the field's type, but the published `config.schema.json` typed number, integer, boolean, enum and string-list fields strictly. So `max_rows = "env(MAX_ROWS)"` loads fine but shows as an error in the editor. Those fields now accept either their usual value or a string matching the loader's `env()` syntax. A mistyped literal like `max_rows = "1000"` or `pool_mode = "statement"` still fails. - `toPublishedJsonSchemaDocument` takes an `acceptEnvReferences` option, and the CLI config schema turns it on. Each affected field becomes an `anyOf` of its original type and an `env()` string, with `description`, `default` and `examples` kept on the outer node so hover docs look the same - String lists such as `auth.additional_redirect_urls` accept an `env()` string in place of the whole list, since the CLI splits the resolved value on commas. Lists of enums don't, as the loader doesn't split those - Fields that are already a union (e.g. `storage.file_size_limit`) get one extra `env()` branch rather than a nested one - `project-config.schema.json` doesn't change, since it describes values after `env()` has been resolved - `apps/docs/public/cli/config.schema.json` is regenerated - `ajv` is added as a dev dependency of `@supabase/config` so tests can check the published schema against what the loader accepts ## Schema shape change If you generate types or other tooling from `config.schema.json`, the affected fields now read as a union: their `type` moves from the field itself into the first `anyOf` branch, next to the `env()` branch. Configs that validated before still validate. ## Linked issue Closes CLI-2857 | 2 天前 | |
chore(stack): bump storage to v1.84.32-r0 (#7356) This bumps storage from v1.84.30-r0 to v1.84.32-r0. https://github.com/supabase/slim-services/releases/tag/storage-v1.84.32-r0 Planned after supabase/slim-services published v1.84.31-r0. This branch is rewritten from develop whenever a newer relevant release arrives. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 1 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 天前 | ||
| 1 天前 |