Skip to content

refactor!: publish standalone ORM libraries in 6.0.0-beta.2 - #487

Merged
medz merged 3 commits into
mainfrom
release/6.0.0-beta.2
Sep 20, 2026
Merged

medz merged 3 commits into
mainfrom
release/6.0.0-beta.2

Conversation

@medz

@medz medz commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

This release replaces shared part libraries with independent Dart modules and explicit public exports, so each ORM layer can be used and documented independently. It publishes the refactor as 6.0.0-beta.2 with clearer query cardinality and a rebuilt API reference.

Changes

  • Group implementation by values, schema, SQL, execution, ORM, driver, generation, migration and CLI responsibilities; reject part directives and layer leaks in tests.
  • Make first() require a row. Add firstOrNull() and singleOrNull() for queries and returning writes, preserving selected SQL NULLs and documenting write/transaction behavior.
  • Separate declaration exports from physical schema metadata and MySQL exports from MariaDB exports.
  • Document public ownership, failures and engine boundaries. Add Dartdoc categories, canonical library ownership and CI validation; remove archived research/ artifacts.
  • Update installation/API links and release notes to beta.2, and rebuild the packaged SQLite worker with the release fingerprint.

Upgrading from beta.1

Use firstOrNull() where an empty result is expected. Import physical schema metadata from package:orm/schema_model.dart, and MariaDB APIs from package:orm/mariadb.dart or package:orm/drivers/mariadb.dart.

Validation

  • Dart analysis, formatting and SQLite Web fingerprint check pass.
  • Local Dartdoc: 21 public libraries, no warnings or errors.
  • Release CI passed the complete native suite against SQLite, PostgreSQL 18, MySQL 8.4 and MariaDB 11.8: 1178 passed, 41 capability skips, zero failures. Chrome JS/WASM also passed. CI run.
  • Final beta.2 Flutter Web JS, WASM without isolation and WASM with isolation each passed 21 real-browser scenarios. Chrome JS/WASM also passed in CI.
  • Clean beta.2 publication dry-run passed with zero warnings.
  • A fresh source consumer passed CLI init, migration create/check/apply/verify, analysis, the README example, CRUD, new read APIs, transaction commit/rollback and Web resource export. A separate hosted consumer will verify the published artifact.
  • SQLite/PostgreSQL cookbook examples and Flutter example analysis passed. Native Flutter devices are not revalidated by this release.

Type: refactor and prerelease. No related open issue; this follows the requested beta.2 release. Publication is gated on Codex review of the final head and passing CI, followed by independent verification of the hosted package.

@medz medz added platform:dart platform:flutter type:client dart Pull requests that update Dart code labels Sep 20, 2026
@netlify

netlify Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for prisma-dart canceled.

Name Link
🔨 Latest commit b23989f
🔍 Latest deploy log https://app.netlify.com/projects/prisma-dart/deploys/6ab00738c68bff000804f277

@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 211 files, which is 111 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: af5807ac-ae80-4029-843e-19aeecfe4ee6

📥 Commits

Reviewing files that changed from the base of the PR and between 5e4854d and b23989f.

⛔ Files ignored due to path filters (25)
  • pubspec.lock is excluded by !**/*.lock
  • research/validation/api-audit-browser-js.log is excluded by !**/*.log
  • research/validation/api-audit-browser-wasm.log is excluded by !**/*.log
  • research/validation/api-audit-native.log is excluded by !**/*.log
  • research/validation/api-audit-usage.log is excluded by !**/*.log
  • research/validation/dart-migrations-aot.log is excluded by !**/*.log
  • research/validation/dart-migrations-backfill-aot.log is excluded by !**/*.log
  • research/validation/dart-migrations-followup.log is excluded by !**/*.log
  • research/validation/dart-migrations-full.log is excluded by !**/*.log
  • research/validation/editor-recovery.log is excluded by !**/*.log
  • research/validation/flutter-android.png is excluded by !**/*.png
  • research/validation/migration-targets-backfill-aot.log is excluded by !**/*.log
  • research/validation/migration-targets-browser-js.log is excluded by !**/*.log
  • research/validation/migration-targets-browser-wasm.log is excluded by !**/*.log
  • research/validation/migration-targets-cli.log is excluded by !**/*.log
  • research/validation/migration-targets-followup.log is excluded by !**/*.log
  • research/validation/migration-targets-full.log is excluded by !**/*.log
  • research/validation/native.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-analyze.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-assets-check.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-flutter-example.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-focused.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-native.log is excluded by !**/*.log
  • research/validation/sqlite-refactor-web-assets.log is excluded by !**/*.log
  • research/validation/standalone-flutter-android.png is excluded by !**/*.png
📒 Files selected for processing (211)
  • .github/workflows/ci.yml
  • AGENTS.md
  • CHANGELOG.md
  • README.md
  • analysis_options.yaml
  • assets/sqlite/worker-0c84ece1c73ab998fbc2c37fe03c3ea9138bf2a717039553dcabf80481929eb1.js
  • dartdoc_options.yaml
  • doc/README.md
  • doc/acceptance.md
  • doc/api.md
  • doc/authoring.md
  • doc/backfills.md
  • doc/capabilities.md
  • doc/checks.md
  • doc/cli.md
  • doc/contributing.md
  • doc/decimals.md
  • doc/defaults.md
  • doc/execution.md
  • doc/flutter.md
  • doc/generation.md
  • doc/importing.md
  • doc/migrations.md
  • doc/mysql-migrations.md
  • doc/observability.md
  • doc/performance.md
  • doc/progress.md
  • doc/queries.md
  • doc/relations.md
  • doc/sqlite-web.md
  • doc/types.md
  • doc/watch.md
  • example/flutter/README.md
  • lib/builder.dart
  • lib/cli.dart
  • lib/driver.dart
  • lib/drivers/mariadb.dart
  • lib/drivers/mysql.dart
  • lib/drivers/postgres.dart
  • lib/drivers/sqlite.dart
  • lib/generate.dart
  • lib/mariadb.dart
  • lib/migrate.dart
  • lib/migrate_cli.dart
  • lib/mysql.dart
  • lib/orm.dart
  • lib/postgres.dart
  • lib/runtime.dart
  • lib/schema.dart
  • lib/schema_model.dart
  • lib/sql.dart
  • lib/sqlite.dart
  • lib/sqlite_web_worker.dart
  • lib/src/advanced.dart
  • lib/src/cli/arguments.dart
  • lib/src/cli/commands.dart
  • lib/src/cli/config.dart
  • lib/src/cli/init.dart
  • lib/src/cli/migration.dart
  • lib/src/cli/output.dart
  • lib/src/cli/runner.dart
  • lib/src/cte.dart
  • lib/src/decimal_average.dart
  • lib/src/decimal_division.dart
  • lib/src/decimal_sql.dart
  • lib/src/driver/driver.dart
  • lib/src/generate/build.dart
  • lib/src/generate/emitter.dart
  • lib/src/generate/exception.dart
  • lib/src/generate/import.dart
  • lib/src/generate/migrations.dart
  • lib/src/generate/model.dart
  • lib/src/generate/queries.dart
  • lib/src/generate/reader.dart
  • lib/src/generate/schema.dart
  • lib/src/generate/source.dart
  • lib/src/generate/types.dart
  • lib/src/instant.dart
  • lib/src/migrate/backfill.dart
  • lib/src/migrate/catalog.dart
  • lib/src/migrate/checks.dart
  • lib/src/migrate/columns.dart
  • lib/src/migrate/computed.dart
  • lib/src/migrate/diff.dart
  • lib/src/migrate/execute.dart
  • lib/src/migrate/history.dart
  • lib/src/migrate/migration.dart
  • lib/src/migrate/mysql_catalog.dart
  • lib/src/migrate/mysql_diff.dart
  • lib/src/migrate/mysql_recovery.dart
  • lib/src/migrate/mysql_schema.dart
  • lib/src/migrate/progress.dart
  • lib/src/migrate/recovery.dart
  • lib/src/migrate/schema.dart
  • lib/src/migrate/snapshot.dart
  • lib/src/migrate/source.dart
  • lib/src/migrate/sql_utils.dart
  • lib/src/migrate/sqlite_checks.dart
  • lib/src/migrate/step.dart
  • lib/src/migrate/validation.dart
  • lib/src/mysql/connection.dart
  • lib/src/mysql/driver.dart
  • lib/src/mysql/failure.dart
  • lib/src/mysql/options.dart
  • lib/src/mysql/values.dart
  • lib/src/observation.dart
  • lib/src/orm/changes.dart
  • lib/src/orm/database.dart
  • lib/src/orm/observation.dart
  • lib/src/orm/watch.dart
  • lib/src/postgres/connection.dart
  • lib/src/postgres/driver.dart
  • lib/src/postgres/failure.dart
  • lib/src/postgres/options.dart
  • lib/src/postgres/temporal.dart
  • lib/src/query/batch.dart
  • lib/src/query/context.dart
  • lib/src/query/cte.dart
  • lib/src/query/cursor.dart
  • lib/src/query/expression.dart
  • lib/src/query/joins.dart
  • lib/src/query/mutation.dart
  • lib/src/query/named_sql.dart
  • lib/src/query/nodes.dart
  • lib/src/query/plan.dart
  • lib/src/query/query.dart
  • lib/src/query/reads.dart
  • lib/src/query/relation.dart
  • lib/src/query/selection.dart
  • lib/src/query/stream.dart
  • lib/src/query/table.dart
  • lib/src/query/union.dart
  • lib/src/runtime/acquisition.dart
  • lib/src/runtime/database.dart
  • lib/src/runtime/events.dart
  • lib/src/runtime/mysql_transaction.dart
  • lib/src/runtime/options.dart
  • lib/src/runtime/session_connection.dart
  • lib/src/runtime/stream.dart
  • lib/src/runtime/transaction.dart
  • lib/src/schema/declaration.dart
  • lib/src/schema/model.dart
  • lib/src/sql.dart
  • lib/src/sqlite/decimal.dart
  • lib/src/sqlite/driver.dart
  • lib/src/sqlite/failure.dart
  • lib/src/sqlite/functions.dart
  • lib/src/sqlite/native.dart
  • lib/src/sqlite/native_client.dart
  • lib/src/sqlite/native_protocol.dart
  • lib/src/sqlite/native_server.dart
  • lib/src/sqlite/options.dart
  • lib/src/sqlite/temporal.dart
  • lib/src/sqlite/web.dart
  • lib/src/sqlite/web_build.dart
  • lib/src/sqlite/web_client.dart
  • lib/src/sqlite/web_worker.dart
  • lib/src/table.dart
  • lib/src/temporal_sql.dart
  • lib/src/values/codec.dart
  • lib/src/values/decimal.dart
  • lib/src/values/temporal.dart
  • lib/values.dart
  • pubspec.yaml
  • research/api-correctness-audit.md
  • research/benchmarks/authoring.json
  • research/benchmarks/decimal-average.json
  • research/benchmarks/decimal-division.json
  • research/benchmarks/editor.json
  • research/benchmarks/generation.json
  • research/benchmarks/runtime-selection.json
  • research/benchmarks/runtime.json
  • research/dart_migration_forms.md
  • research/flutter-web-integration.md
  • research/mysql-precision-boundaries.md
  • research/new-dart-orm-design.md
  • research/prisma-v8-reassessment.md
  • research/standalone-orm-redesign.md
  • research/type_feasibility.dart
  • research/validation/api-audit.md
  • research/validation/browser.json
  • research/validation/dart-migrations.json
  • research/validation/editor-recovery.json
  • research/validation/flutter-web-probe.json
  • research/validation/flutter.json
  • research/validation/migration-targets.md
  • research/validation/native.json
  • research/validation/sqlite-refactor-browser-js.json
  • research/validation/sqlite-refactor-browser-wasm.json
  • research/validation/sqlite-refactor-flutter-web.json
  • research/validation/sqlite-refactor.json
  • research/validation/sqlite-refactor.md
  • research/validation/standalone-browser.json
  • research/validation/standalone-flutter-web.json
  • research/validation/standalone-flutter.json
  • research/validation/standalone-native.json
  • research/validation/standalone-redesign.md
  • research/validation/usage.json
  • test/cardinality_test.dart
  • test/database_test.dart
  • test/layer_boundaries_test.dart
  • test/mysql_import_test.dart
  • test/mysql_migration_test.dart
  • test/mysql_transaction_boundary_test.dart
  • test/public_api_test.dart
  • tool/benchmark_editor.dart
  • tool/benchmark_generation.dart
  • tool/benchmark_runtime.dart
  • tool/compare_authoring.dart
  • tool/src/runtime_vm.dart
  • tool/test_flutter.dart

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-20T16:22:17.936318Z b23989f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@medz
medz merged commit a7be283 into main Sep 20, 2026
7 checks passed
@medz
medz deleted the release/6.0.0-beta.2 branch September 20, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant