Skip to content

baukit 0.6.0

Choose a tag to compare

@PatrickKoss PatrickKoss released this 02 Oct 19:20
· 341 commits to main since this release

baukit v0.6.0

One release train for the Rust crates, TypeScript packages, and templates.

Summary

baukit 0.6.0 moves every dependency to its current release. Several of those dependencies show up in Baukit's public types and peer ranges, so this is a minor release. No product is live, so the breaks shipped without shims. Every CI job ran locally before the tag.

Breaking

  • baukit-openapi: utoipa 6. Every function that takes or returns a utoipa type uses utoipa 6, so products move to utoipa 6 with this release. Hand-built operation parameters and response headers are wrapped in RefOr::T, and HeaderBuilder::schema takes an Option. The generated documents are unchanged.
  • baukit-telemetry: OpenTelemetry 0.33 and tracing-opentelemetry 0.34. The re-exported opentelemetry crate and OpenTelemetrySpanExt come from those versions. The OTLP exporter retries a failed export up to three times, the upstream default.
  • baukit-auth, baukit-egress, baukit-push: reqwest 0.13 with rustls. HTTPS clients verify against the operating system's trust store, so a container image needs CA certificates (distroless cc ships them). The crypto provider is aws-lc-rs instead of ring.
  • @baukit/events: zod 4. The exported schemas are zod 4 schemas. Validation rules and issue messages are unchanged.
  • @baukit/ui-tokens: peers eslint ^10.11.0, so products leave ESLint 9.
  • @baukit/analytics-posthog-native: peers posthog-react-native ^4.78.3. The consent purge also clears ai_capture_queue; before this, AI events queued there survived a consent withdrawal.
  • Peer floors moved to the tested Expo SDK 57 patches (react-native ^0.86.3 and the expo-* packages) and dexie ^4.4.6.
  • Templates: generated products use ESLint 10 with defineConfig from eslint/config, Vitest 5, React 19.3 and Vite 8.3 on web, TypeScript 6.0 and MCP SDK 1.31.0 in the MCP package, pnpm 12.7.0, Debian 13 backend images (rust:1.99.0-trixie, distroless/cc-debian13), and the current GitHub Actions majors. baukit doctor requires MCP SDK 1.31.0 exactly.

Held back

  • TypeScript stays on 6.0: typescript-eslint 8.71 peers typescript <6.1.0.
  • pnpm stays on 12.7.0: 12.8.0 through 12.8.2 reject their own lockfile under --frozen-lockfile when a file: dependency has an optional peer the importer provides.
  • testcontainers stays on 0.27 for testcontainers-modules 0.15. React Native 0.86, mobile React 19.2, and jest 29 follow Expo SDK 57.

Other

  • The Expo conformance script stops Metro's whole process group, so the port is free when the gate exits.
  • The generated native workflow sets cache-provider: basic on gradle/actions/setup-gradle@v6, keeping the MIT-licensed cache.

The sections below list every change per crate and package.

Rust crates

baukit-auth

Changed

  • Moved to reqwest 0.13 with its rustls backend. HTTPS clients now verify servers against the
    operating system's trust store through rustls-platform-verifier instead of the bundled
    webpki roots, so a container image needs CA certificates (distroless cc ships them). The
    TLS crypto provider is aws-lc-rs instead of ring.

baukit-config

  • No component-specific changes in this train.

baukit-core

  • No component-specific changes in this train.

baukit-credential-vault

  • No component-specific changes in this train.

baukit-egress

Changed

  • Moved to reqwest 0.13 with its rustls backend. HTTPS clients now verify servers against the
    operating system's trust store through rustls-platform-verifier instead of the bundled
    webpki roots, so a container image needs CA certificates (distroless cc ships them). The
    TLS crypto provider is aws-lc-rs instead of ring.

baukit-events

  • No component-specific changes in this train.

baukit-http

  • No component-specific changes in this train.

baukit-integrations

  • No component-specific changes in this train.

baukit-jobs

  • No component-specific changes in this train.

baukit-openapi

Changed

  • Breaking: moved to utoipa 6. Every public function that takes or returns a utoipa type
    (OpenApi, Operation, Header, Parameter) now uses utoipa 6 types, so products must
    upgrade utoipa to 6 with this release. utoipa 6 stores operation parameters and response
    headers as RefOr<_>; document_if_match, document_etag, and header rules insert inline
    values and skip $ref entries when they look for an existing If-Match or
    Idempotency-Key parameter. The generated documents are unchanged.

baukit-ops

  • No component-specific changes in this train.

baukit-push

Changed

  • Moved to reqwest 0.13 with its rustls backend. HTTPS clients now verify servers against the
    operating system's trust store through rustls-platform-verifier instead of the bundled
    webpki roots, so a container image needs CA certificates (distroless cc ships them). The
    TLS crypto provider is aws-lc-rs instead of ring.

baukit-ratelimit

  • No component-specific changes in this train.

baukit-runtime

  • No component-specific changes in this train.

baukit-sync

  • No component-specific changes in this train.

baukit-telemetry

Changed

  • Breaking: moved to OpenTelemetry 0.33 and tracing-opentelemetry 0.34. The re-exported
    opentelemetry crate and OpenTelemetrySpanExt now come from those versions, so products
    that name OpenTelemetry types must match them. The OTLP exporter now retries a failed export
    up to three times with exponential backoff, which is the upstream default.

baukit-test

  • No component-specific changes in this train.

TypeScript packages

a11y-core

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

analytics-core

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

analytics-posthog-native

Minor Changes

  • be675db: The consent purge now also clears ai_capture_queue, the persisted queue that posthog-react-native 4.78 (through @posthog/core 1.55) added. Before this, events queued there survived a consent withdrawal. PostHogNativeClient.setPersistedProperty takes the key as the string union `${PostHogPersistedProperty}`, so fakes can pass plain strings. The posthog-react-native peer floor is now ^4.78.3.
  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/analytics-core@0.6.0

analytics-posthog-web

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/analytics-core@0.6.0

api-runtime

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

auth-native

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

auth-node

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

auth-web

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

data-contracts-dexie

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/data-contracts@0.6.0

data-contracts-expo-sqlite

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/data-contracts@0.6.0

data-contracts

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

events

Minor Changes

  • be675db: @baukit/events now depends on zod 4.6.5 instead of zod 3. EventEnvelopeSchema, EventPayloadSchema, EventPayloadValueSchema, and IngestOutcomeSchema are zod 4 schemas, so a consumer that composes them with its own schemas or reads their issue objects needs zod 4 as well. Validation rules and the issue messages (event_id_invalid, event_type_invalid, event_schema_unsupported) are unchanged.
  • Release the coordinated baukit 0.6.0 train.

integrations-client

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

localization-core

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

notifications-core

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/localization-core@0.6.0

notifications-expo

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

Patch Changes

  • Updated dependencies
    • @baukit/notifications-core@0.6.0

preferences-core

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

pwa-web

Minor Changes

  • Release the coordinated baukit 0.6.0 train.

sync-client

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

ui-tokens

Minor Changes

  • be675db: Raised peer floors to the versions Baukit now tests against. @baukit/ui-tokens takes ESLint 10 (eslint ^10.11.0), so products can leave ESLint 9. The Expo SDK 57 peers are react-native ^0.86.3, expo-auth-session ^57.0.13, expo-secure-store ^57.0.4, expo-web-browser ^57.0.3, expo-sqlite ^57.0.3, expo-notifications ^57.0.21, and expo-network ^57.0.2. @baukit/data-contracts-dexie needs dexie ^4.4.6.
  • Release the coordinated baukit 0.6.0 train.

Commits

  • docs(plan): record the 0.6.0 dependency train (ad41d19)
  • docs(matrix): record the verified 0.6.0 train (f935859)
  • chore(typescript): commit the turbo agent guidance file (707ece4)
  • chore: prepare baukit v0.6.0 (7809328)
  • docs(matrix): record utoipa 6, OpenTelemetry 0.33, and reqwest 0.13 (373588f)
  • chore: drop the unused utoipa-axum pin and render the worker flag as a TOML bool (a781bb9)
  • Merge branch 'deps-typescript' into release-060 (ef759a9)
  • fix(scripts): stop the whole Metro process group after Expo conformance (43c7dc2)
  • ci: move GitHub Actions to their current majors (c862646)
  • build(templates)!: update generated product dependencies and pnpm 12.7.0 (b5b3a4f)
  • chore(cli): bump toml to 1 and sha2 to 0.11 (eae8643)
  • chore(deps): bump base64 to 0.23 and pem to 4 (afe7f1a)
  • chore(deps): move to reqwest 0.13 (ddb2b99)
  • feat(telemetry)!: move to OpenTelemetry 0.33 (484afa0)
  • build(typescript)!: move the workspace to ESLint 10, zod 4, Vitest 5, and pnpm 12.7.0 (be675db)
  • feat(openapi)!: move to utoipa 6 (7df14bf)
  • chore(deps): bump compatible Rust dependencies and Docker base images (d2d1a47)
  • docs(plan): record the 0.5.2 adoption, docs cleanup, and product fixes (f5a6200)
  • fix(templates): use expo run scripts so a prebuild leaves the mobile tree clean (8350a59)
  • docs(chart): close the network policy example fence before the prose (4b42c56)
  • docs(plan): record the v0.5.2 npm publish failure and product gate fixes (940edd2)