rc.5 - #5966
Draft
Sukairo-02 wants to merge 92 commits into
Draft
Conversation
…ard with directory-index re-export shims, and merge the colliding `cockroach-core/utils` leaf into its directory index Replace the per-source-file `exports` enumeration in `updateAndCopyPackageJson()` with a fixed two-key map (`"."` + `"./*"`, `import`/`require` × `types`/`default`, no redundant top-level fallback), shrinking the generated `dist/package.json` `exports` block from 246,108 B to 356 B; emit a glob-derived re-export-shim quad per `x/index.ts` so the wildcard resolves directory-index subpaths, with a fail-loud guard that throws rather than overwrite a source-emitted artifact, and guard the top-level build behind `import.meta.main`. Merge the `cockroach-core/utils.ts` leaf into `cockroach-core/utils/index.ts` and drop the colliding barrel line so `./cockroach-core/utils` and `./cockroach-core/utils/array` both keep resolving with no new public key. Add a real-build resolution test driving `attw` across node16-cjs/esm/bundler plus import smoke, size budget, future-proofing, no-dropped-subpath, and the shim guard.
…e latest and feature-branch release workflows Drop `node10` from the `attw-orm` matrix in both `release-latest.yaml` and `release-feature-branch.yaml` — the `"./*"` wildcard `exports` pattern is node10-unresolvable by design and node10 is off the support floor; `node16-cjs` / `node16-esm` / `bundler` stay in the matrix and stay gating. Add a `publint` job guarding the published `drizzle-orm` tarball in each workflow (build → pack → `npx -y publint@0.3.21 package.tgz` in the latest pipeline; download the built artifact → `publint` in the feature pipeline) and wire it into each `release.needs` so every release gates on it as the packaging-correctness / `exports`-resolvability guard for the wildcard + re-export-shim output.
…test `EffectDrizzleSQLiteD1Config` is `Omit<EffectDrizzleSQLiteConfig, 'jit'>` — D1 does not support the `jit` mapper option — so the test's `createDB` helper must not accept or forward it. The helper keeps a two-arg signature, which stays assignable to the common runner's optional-`jit` `createDB` type.
…ndant `attw` probes Provision the packed `drizzle-orm` tarball to the orm test shard in both release workflows — download the `packages` artifact in the feature pipeline, `npm run pack` in the latest pipeline — so `drizzle-orm/tests/exports-resolution.test.ts` runs its artifact-backed suites in CI. The bare `attw-orm` shard only checks the two wildcard-map keys (`.` + `./*`) and is blind to the ~718 real subpaths; the driven sweep is the comprehensive no-dropped-subpath proof. Merge the redundant `import smoke` and `driven attw probe` suites into one driven probe across all three resolution modes.
…rts-resolution` suite The published `exports` map is now a fixed two-key shape (root + `"./*"`), so declare it directly in `drizzle-orm/package.json` instead of generating it in `scripts/build.ts`; the build just copies package.json into the packed dist and keeps only the genuinely dynamic piece — the glob-derived directory-index shim emitter. Drop the `exports`-map shape/byte-budget and future-proofing meta-suites from `tests/exports-resolution.test.ts`: with the map a reviewed static declaration, asserting its exact shape and byte size is redundant, and the comprehensive per-subpath sweep already proves no public subpath is dropped. Make the suite fail (not silently skip) when the packed tarball is missing under CI, where the orm shard always provisions it; keep the local skip for `pnpm test` without a prior build + pack.
# Conflicts: # integration-tests/tests/sqlite/effect-d1.test.ts
…ess instead of spawning `tsx` or reading `dist`, and prune dead test cruft
Replace the `cli-json` `spawnSync('pnpm exec tsx')` driver: the `check --output`
block now calls the in-process `check()` SDK and asserts the returned envelope,
and the `--version`/`skills version`/missing-schema subprocess cases are dropped
(presence checks, or already covered in-process by `sdk-no-stdout`). Slim the dead
module-unmock list to the only modules still mocked (`utils`, `views`) and drop the
stale real-host `:5432` URL.
Collapse `sdk-public-surface` from a `dist` + `spawnSync` CJS/ESM presence matrix to
one in-process export-surface assertion; packaging stays guarded by attw/publint.
Drop the byte-identical `generate #6` and rename the colliding second `generate #9`
to `#10`. Remove dead `vi` imports, the unused `check-fixtures` snapshot stagers, a
commented-out `bin` test, and defensive `toBeDefined()` calls that precede the real
assertion.
# Conflicts: # drizzle-kit/tests/other/sdk-public-surface.test.ts
…ectly instead of spawning `bun`
`scripts/build.ts` statically imports `bun`, so it can't be imported under the Node vitest runner; the collision-guard test worked around this by driving the emitter through a generated `drive.mjs` in a `bun` child process. Move `emitDirIndexShims` (and its `moduleHasDefaultExport` helper) into `scripts/emit-dir-index-shims.ts`, depending only on `node:fs`, and have both `build.ts` and the test import it. The test collapses to a direct `rejects.toThrow` assertion. Emitted shim bytes are unchanged; the require-argument is assembled indirectly so a CommonJS-interop scanner doesn't resolve the shim's literal `require('…')`.
…typed config (fixes #5972)
…g nullification; [WIP] deeply nested selection nullification (joined view or subquery); fixed geometry, geography & box array types data getting reduced to one element due to wrong delimiter used during `pgArray` construction\parsing; Added delimiter customization to `makePgArray`, `parsePgArray`; Relational query shape generator for `minipg`
…n config related errors on empty but present config; supported transaction config in pg effect drivers; cached query result shape for `minipg` driver
…for `tursodatabase` drivers; fixed `mysql` transaction options being joined on wrong separator; better transaction test coverage
…o lack of support; explicit error throws on unsupported transaction behavior; partial transaction config support for `libsql`, `tidb` drivers
moved all sql`begin` in transactions in session.ts for all dialects where try-catch-finally construction used
Closed
new issues
…n build for select, returning, rqb; optimized default query mappers; improved mapper tests; further default mapper optimizations
…ken query executors (fixes #5936), bumped to v17 (fixes #5928); fixed `expo-sqlite` not finalizing prepared statements; added `expo-sqlite/async` for async querying (fixes #5240); added local `sha256` hash function as fallback for cache query hashing in environments without `globalThis.crypto` available
…gnment after applying nullable joins by defaulting to `not-null` behavior to not yet joined column groups in selection (fixes #4232)
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.
eqfilter (fixes [BUG]: Relational query where clause incompatible with branded/nominal types via$type<>()#5298)$onUpdateFnbeing executed without need (fixes [BUG]:$onUpdatecallback invoked eagerly inbuildUpdateSeteven when column is explicitly provided in set (regression in 0.45.x) #5780)$onUpdateFnpotentially overriding explicitnullszodschema generator returningunknown-templated coerced types (fixes [BUG]: unknown type for coerced fields in drizzle-zod in zod 4 #5659)mysql2constructor setting param in potentially undefined mistyped config (fixes [BUG]: RC4 introduces new bug by settingsupportBigNumberstotruewith themysql2driver #5972)sqlfields in selection when non-current table's column is referenced (fixes [BUG]: sql`` selected fields strip table qualifiers inside correlated subqueries #5734)buildSelectionquery building utilityorderBy,extras,RAWof relational queries_field inRelationsHelperStaticundefinedvalue passed to fields inwhere- now throws an error upon encounteringundefinedin filters, addedEmptyFiltersymbol that can be used as an explicit replacement ofundefinedwhere possibly absent filter is desired by design rather than possible bug (fixes [BUG]: Relational queries v2 skippingundefinedvalues can lead to security vulnerabilities #5636)isReversedtoisFilterReversedinRelationobjects,arraysdb.executemodes forpg,mysql(bypasses [BUG]: execute differs in pg and bun sql #4464)postgrescodecs: now generic codecs contain only in-json codecs (mirroringmysql), contents of drivers' codecs remain unchangedSQLfield data during nullificationgeometry,geography&boxarray types data getting reduced to one item due to wrong delimiter used duringpgArrayconstruction\parsingmakePgArray,parsePgArrayutilitiesdb.insert(workaround for [BUG]: INSERT automatically includes ALL schema columns, even when not provided in .values() Drizzle #5001, fix(sqlite): only insert columns with values or defaults (#5001) #5309)pgdialectpgtransaction config related errors on empty but present configpgdriverstursodatabaselibrary versionstursodatabasedriversmysqltransaction options being joined on wrong separatorisolationLevelinbun-sql/mysqltransactionseffect-sqlite,effect-mysqldue to lack of support in driverslibsql,tidbdriversop-sqlitetransaction being handled as synchronousop-sqlitequery executors (fixes [BUG]: RQBv2 not working with op-sqlite #5936)op-sqliteto v17 (fixes [BUG]: op-sqlite 17 breaks drizzle integration #5928)expo-sqlitenot finalizing prepared statementsexpo-sqlite/asyncfor async querying (fixes [BUG]: drizzle-orm/expo-sqlite API is not real async. Always block UI thread. #5240)sha256hash function as a fallback for cache query hashing in environments withoutglobalThis.cryptoavailablenot-nullbehavior on not yet joined column groups in selection (fixes [BUG]: qb.leftJoin results in `Type null is not assignable to type ...' #4232)