Skip to content

rc5 fixes - #6588

Open
Sukairo-02 wants to merge 84 commits into
betafrom
rc6
Open

Sukairo-02 wants to merge 84 commits into
betafrom
rc6

Conversation

@Sukairo-02

@Sukairo-02 Sukairo-02 commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

v1.0.0-rc.6

… codecs; column type fixes: `enum` from objects, wrong `dataType` of certain columns, `is` casting columns to `never`; fixed codecs for empty array in `effect-postgres`
ShreeBohara and others added 19 commits October 26, 2026 19:02
…acks keep their types

Without a default, calling createSchemaFactory() without a `coerce` option
left TCoerce at its CoerceOptions constraint, which distributes through the
refine field types into a union of incompatible callbacks, so
`(schema) => ...` refines became implicit any. Default to `undefined`,
matching the top-level createSelectSchema/createInsertSchema exports.

Fixes #5968
…`, `number` value cases for `bun-sql/postgres`, `postgres-js`, `node-postgres` driver; extended `all types` tests with JSON suites
…`JSON.stringify(value) json codec for `node-postgres` (same functionality)
PgPolicy, PgRole, CockroachPolicy and CockroachRole declared
`implements <X>Config` while typing their fields as `<X>Config['field']`,
which includes `undefined`. Consumers that type-check the published
declarations with `exactOptionalPropertyTypes: true` and
`skipLibCheck: false` get TS2420 for each class, because a present
`undefined` is not assignable to an exact optional property.

The clauses only asserted a structural relationship; removing them keeps
every public field type unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Remove the external-database guard from the PostgreSQL shard in both feature workflows. Hosted providers remain excluded by the test script and Vitest configuration.
The `created_at` checks compared the stored time with `Date.now()` from
before the insert and allowed 300 ms. The tests run concurrently, so
an insert can wait for another test. On CI the aurora test failed with
a difference of about 1.5 s in most runs. `expectRecentTime` checks
that the time lies between the start of the statement and now, with
the same margin for clocks that differ. It replaces the 16 checks
with a 300 ms or 1 s margin in the shared pg, cockroach, mysql and
sqlite test bodies.

The sweep over all 793 entry points in `exports-resolution.test.ts`
takes 55 to 77 s on CI and took 153 s on a slow runner. Its limit
goes from 120 s to 300 s.
The skip list named the test without its `test ` prefix. The test
runner compares whole names, so the test still ran and failed when
the database answered slowly.
Sukairo-02 and others added 7 commits October 29, 2026 23:20
Parallel CI runs of different pull requests used the same Neon,
Netlify DB, PlanetScale, SQLite Cloud and Turso databases. One run
dropped a table while another created it, and the tests failed with
"no such table" and "table already exists".

`integration-tests/scripts/ci-databases.ts` now creates databases for
one job and drops them at the end:

- Neon and Netlify DB get `CREATE DATABASE` with a per-job prefix,
  which the test setup reads from `CI_DATABASE_PREFIX`.
- SQLite Cloud gets `CREATE DATABASE` for each server in
  `SQLITE_MANY_CLOUD_CONNECTION_STRING`.
- PlanetScale gets a branch with its own password.
- Turso gets a database and a token from the Platform API for each
  entry of `TURSODATABASE_REMOTE_URL`.

The test step sources the new connection strings from
`$RUNNER_TEMP/ci-databases.env`. The drop step runs even when the job
fails or is canceled. A daily workflow deletes what a job left behind
after one day.

PlanetScale and Turso need the new secrets `PLANETSCALE_ORG`,
`PLANETSCALE_SERVICE_TOKEN_ID`, `PLANETSCALE_SERVICE_TOKEN`,
`TURSO_ORG` and `TURSO_API_TOKEN`. Without them, these providers keep
the shared database and the job logs a warning.

The test jobs start after `prepare`. They used to start early and poll
for the build artifact for at most 10 minutes. With at most 20 jobs at
once in the organization, waiting test jobs held runners that `prepare`
needed, and the polling used up the repository's API limit.

`router.yaml` gets a concurrency group per PR with
`cancel-in-progress`, so a new push cancels the run of the previous
head before any job starts. The organization runs at most 20 jobs at
once, and runs for replaced heads used to hold those slots until the
new run's first job got a runner.

Every `setup-bun` step pins Bun 1.4.4. Without an exact version the
action lists Bun's tags through the GitHub API, which fails with 403
when concurrent runs have used up the repository's API limit.
Decoding of `date`, `timestamp` and `timestamptz` now goes through one
parser in `postgres/src/temporal.ts`. The fix covers text and binary
scalars, array elements and `Json()` shape leaves on both mappers:

- February 29 of 1 BC no longer decodes as March 1.
- Values near the end of the `Date` range no longer decode as
  `Invalid Date` when the session time zone has a positive offset.
- Binary timestamps outside 1714-2285 are exact to the millisecond.
- JSON leaves with years of 5 or more digits and with a ` BC` suffix
  decode correctly.

Port of drizzle-team/minipg#14.
The npm package is `@drizzle-team/postgres`. The package name,
workspace dependencies, import paths, pnpm filters and CI workflows
now use it. `@drizzle/postgres` stays only in internal labels: the
`Symbol.for` keys, the Effect service keys, the tracer name and the
prefix of error messages.

This also fixes the workerd test in `cf-starttls.test.ts`. The test
expects the `@drizzle-team/postgres/cf` import path in the error
message.
…res-name

Publish Drizzle Postgres as `@drizzle-team/postgres` again
@pkg-pr-new

pkg-pr-new Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

bun add https://pkg.pr.new/@drizzle-team/postgres@6588
npm i https://pkg.pr.new/@drizzle-team/postgres@6588

commit: f4225dc

- updated mssql introspect to match pg-like - introspect all and only then apply entity filters so fks do not crash
dankochetov and others added 21 commits November 4, 2026 15:16
The CommonJS checks ran as concurrent tests, so about 50 node
processes ran at once. On a 4-vCPU runner, healthy imports then hit
the 5s limit. A pool now runs one process per CPU, and each process is
started with `execFile` and an inline script, with no shell and no
temporary files. Failures list every import that failed or timed out.
Imports:
- Use default imports for `pluralize` and `glob` instead of named imports.
  Both are CommonJS only packages and named imports from them crash when kit runs as ESM under tsx (local development)
- Bundle size: default import only adds 88 bytes (31 for glob and 57 for pluralize)

Pull errors:
- Add `options` to DatabaseDriverCliError and pass `{ cause: e }` from all pull catch blocks, including the --init migrate step
- Text mode: print `e.cause` with console.error after the human message
- JSON mode: add `error.cause` using `inspect` from node:util
JSON.stringify drops an Error's message, stack and cause, whilst inspect gives the same text as console.error

Tests:
- Skip the credential leak test in cli-json.test.ts, as pull now passes the full error
…level`; `pipeline`, `parallel` support for `minipg` drivers, extended config for `batch`
Branch protection can require this one job instead of each pipeline
job. The gate waits for every job in the called workflows, so a new
job there is covered without a settings change. A skipped job counts
as a pass, because the router always skips one pipeline and skips
stacked PRs below the top one.
Add a `ci-passed` gate job to the release router
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.

8 participants