Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ body:
description: Select the library that you think is affected by the bug
options:
- supabase_flutter
- supabase
- supabase_dart
- gotrue
- postgrest
- realtime_client
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/label-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@ jobs:
"functions_client": "functions",
"auth_ui": "auth-ui",
"supabase": "supabase",
"supabase_dart": "supabase",
"supabase_flutter": "supabase_flutter"
}
2 changes: 1 addition & 1 deletion .github/workflows/release-pana.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ jobs:
- postgrest
- realtime_client
- storage_client
- supabase
- supabase_common
- supabase_dart
- supabase_flutter
- supabase_typegen
- yet_another_json_isolate
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,19 @@ jobs:
echo "Affected packages:"
echo "$CHANGED"

DART_PACKAGES="functions_client gotrue postgrest realtime_client storage_client supabase supabase_common supabase_typegen yet_another_json_isolate"
DART_PACKAGES="functions_client gotrue postgrest realtime_client storage_client supabase_common supabase_dart supabase_typegen yet_another_json_isolate"

entries=()
for package in $DART_PACKAGES; do
if ! echo "$CHANGED" | grep -qx "$package"; then
continue
fi
case "$package" in
gotrue|postgrest|realtime_client|storage_client|supabase) backend=true ;;
gotrue|postgrest|realtime_client|storage_client|supabase_dart) backend=true ;;
*) backend=false ;;
esac
case "$package" in
gotrue|postgrest|realtime_client|storage_client|supabase) concurrency="1" ;;
gotrue|postgrest|realtime_client|storage_client|supabase_dart) concurrency="1" ;;
*) concurrency="0" ;;
esac
entries+=("{\"name\":\"$package\",\"backend\":$backend,\"concurrency\":\"$concurrency\"}")
Expand Down Expand Up @@ -344,7 +344,7 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
carryforward: 'functions_client,gotrue,postgrest,realtime_client,storage_client,supabase,supabase_common,supabase_typegen,yet_another_json_isolate,supabase_flutter'
carryforward: 'functions_client,gotrue,postgrest,realtime_client,storage_client,supabase_common,supabase_dart,supabase_typegen,yet_another_json_isolate,supabase_flutter'
fail-on-error: false

test-result:
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This is a monorepo for the Supabase Flutter SDK, managed by [Melos](https://melo
The repository follows a layered dependency structure:

- **supabase_flutter**: Flutter-specific wrapper with platform integrations (deep links, local storage, app lifecycle)
- **supabase**: Core Dart client that orchestrates all service clients
- **supabase_dart**: Core Dart client that orchestrates all service clients
- **gotrue**: Authentication client (sessions, JWT, OAuth)
- **postgrest**: Database query client with ORM-style API
- **realtime_client**: WebSocket client for real-time subscriptions
Expand Down
36 changes: 35 additions & 1 deletion MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document describes the breaking changes you need to be aware of when upgrad
versions of the Supabase Flutter SDK, together with the steps required to migrate your code.

All packages in this repository are released together for a major version, so a single section
covers `supabase_flutter`, `supabase`, `gotrue`, `postgrest`, `realtime_client`, `storage_client`
covers `supabase_flutter`, `supabase_dart`, `gotrue`, `postgrest`, `realtime_client`, `storage_client`
and `functions_client`. Every symbol mentioned here is re-exported from `supabase_flutter`, so the
snippets apply whether you depend on the individual package or on the Flutter one.

Expand All @@ -14,6 +14,40 @@ snippets apply whether you depend on the individual package or on the Flutter on
> v3 has not been released yet. This section is updated as breaking changes land on `main`, so
> treat it as the running list rather than the final one.

### The `supabase` package is now `supabase_dart`

The pure Dart client reads like the umbrella name for the whole SDK, which led people to add
`supabase` to Flutter projects instead of `supabase_flutter`. It is published as `supabase_dart`
from v3 onwards, and the `supabase` package is discontinued on pub.dev.
Comment on lines +17 to +21

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use release-time wording for the old package discontinuation.

Both documents state that supabase is already discontinued, but the PR objective schedules publishing and discontinuation for the v3 release.

  • MIGRATION.md#L17-L21: State that supabase will be discontinued on pub.dev when v3 is released.
  • packages/supabase_dart/README.md#L31-L33: State that supabase will be discontinued when v3 is released.
📍 Affects 2 files
  • MIGRATION.md#L17-L21 (this comment)
  • packages/supabase_dart/README.md#L31-L33
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@MIGRATION.md` around lines 17 - 21, Update the discontinuation wording in
MIGRATION.md lines 17-21 and packages/supabase_dart/README.md lines 31-33 to
state that the supabase package will be discontinued on pub.dev when v3 is
released, rather than implying it is already discontinued.


If you depend on `supabase_flutter` there is nothing to do: it depends on `supabase_dart` for you
and re-exports the same symbols.

If you depend on the Dart client directly, rename the dependency:

```yaml
# Before
dependencies:
supabase: ^2.16.0

# After
dependencies:
supabase_dart: ^3.0.0
```

The library entrypoint is renamed to match, so update the import:

```dart
// Before
import 'package:supabase/supabase.dart';

// After
import 'package:supabase_dart/supabase_dart.dart';
```

Nothing inside the package is renamed, so `SupabaseClient` and everything it exposes keeps its
name.

### `RealtimeClient.connectionState` is now typed

`RealtimeClient` used to expose the socket state twice: a typed `connState` field and a stringly
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<img alt="Supabase Logo" width="300" src="https://raw.githubusercontent.com/supabase/supabase/master/packages/common/assets/images/logo-preview.jpg">
</a>

<h1 align="center">supabase</h1>
<h1 align="center">supabase_dart</h1>

<p align="center">
Dart client library for <a href="https://supabase.com">Supabase</a>, for use in non-Flutter Dart environments.
Expand All @@ -19,7 +19,7 @@

<div align="center">

[![pub package](https://img.shields.io/pub/v/supabase.svg)](https://pub.dev/packages/supabase)
[![pub package](https://img.shields.io/pub/v/supabase_dart.svg)](https://pub.dev/packages/supabase_dart)
[![pub test](https://github.com/supabase/supabase-flutter/workflows/Test/badge.svg)](https://github.com/supabase/supabase-flutter/actions?query=workflow%3ATest)

</div>
Expand All @@ -28,7 +28,9 @@
>
> This is a Dart library for Supabase for use cases such as server-side Dart like [Dart Edge](https://supabase.com/docs/guides/functions/dart-edge), or non-Flutter Dart environments.
>
> If you are developing a Flutter application, use [supabase_flutter](https://pub.dev/packages/supabase_flutter) instead. `supabase` package is for non-Flutter Dart environments.
> If you are developing a Flutter application, use [supabase_flutter](https://pub.dev/packages/supabase_flutter) instead. `supabase_dart` package is for non-Flutter Dart environments.
>
> This package was published as `supabase` up to and including v2. That package is discontinued in favour of `supabase_dart`.

## What is Supabase

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: supabase_example
name: supabase_dart_example
description: An absolute bare-bones supabase web app.
version: 1.0.0
publish_to: none
Expand All @@ -10,7 +10,7 @@ resolution: workspace

dependencies:
web: '>=1.0.0 <2.0.0'
supabase: ^2.16.0
supabase_dart: ^2.16.0

dev_dependencies:
build_runner: any
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:typed_data';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:web/web.dart' as web;

void main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:http/http.dart';
import 'package:supabase/src/api_key.dart';
import 'package:supabase_dart/src/api_key.dart';
import 'package:meta/meta.dart';

@internal
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:supabase/src/version.dart';
import 'package:supabase_dart/src/version.dart';
import 'package:supabase_common/supabase_common.dart';
import 'package:meta/meta.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import 'dart:async';

import 'package:http/http.dart';
import 'package:logging/logging.dart';
import 'package:supabase/src/constants.dart';
import 'package:supabase/src/version.dart';
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/src/constants.dart';
import 'package:supabase_dart/src/version.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:yet_another_json_isolate/yet_another_json_isolate.dart';

import 'api_key.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';

class PostgrestClientOptions {
final String schema;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';

class SupabaseQueryBuilder extends PostgrestQueryBuilder<dynamic> {
final RealtimeClient _realtime;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:http/http.dart';
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:yet_another_json_isolate/yet_another_json_isolate.dart';

import 'counter.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';

import 'package:logging/logging.dart';
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:supabase_common/supabase_common.dart';

part 'supabase_stream_filter_builder.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: supabase
name: supabase_dart
description: A dart client for Supabase. This client makes it simple for developers to build secure and scalable products.
version: 2.16.0
homepage: 'https://supabase.com'
repository: 'https://github.com/supabase/supabase-flutter/tree/main/packages/supabase'
repository: 'https://github.com/supabase/supabase-flutter/tree/main/packages/supabase_dart'
issue_tracker: 'https://github.com/supabase/supabase-flutter/issues'
documentation: 'https://supabase.com/docs/reference/dart/introduction'
topics:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import 'dart:async';
import 'package:http/http.dart' as http;
import 'package:http/testing.dart';
import 'package:logging/logging.dart';
import 'package:supabase/src/api_key.dart';
import 'package:supabase/src/auth_http_client.dart';
import 'package:supabase_dart/src/api_key.dart';
import 'package:supabase_dart/src/auth_http_client.dart';
import 'package:test/test.dart';

void main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:io';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:supabase_common/supabase_common.dart';
import 'package:test/test.dart';
import 'package:yet_another_json_isolate/yet_another_json_isolate.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:test/test.dart';

void main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:io';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:test/test.dart';
import 'package:web_socket_channel/io.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:test/test.dart';
import 'package:web_socket_channel/io.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ library;

import 'dart:async';

import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:test/test.dart';

import 'package:supabase_common/testing.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:http/http.dart';
import 'package:http/testing.dart';
import 'package:supabase/src/trace_http_client.dart';
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/src/trace_http_client.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:test/test.dart';

const _sampledTraceparent =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import 'dart:async';
import 'dart:io';

import 'package:http/http.dart' as http;
import 'package:supabase/src/auth_http_client.dart';
import 'package:supabase/src/constants.dart';
import 'package:supabase/src/counter.dart';
import 'package:supabase_dart/src/auth_http_client.dart';
import 'package:supabase_dart/src/constants.dart';
import 'package:supabase_dart/src/counter.dart';
import 'package:supabase_common/supabase_common.dart';
import 'package:test/test.dart';

Expand Down
2 changes: 1 addition & 1 deletion packages/supabase_flutter/lib/src/supabase.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:http/http.dart';
import 'package:logging/logging.dart';
import 'package:supabase/supabase.dart';
import 'package:supabase_dart/supabase_dart.dart';
import 'package:supabase_common/supabase_common.dart';
import 'package:supabase_flutter/src/constants.dart';
import 'package:supabase_flutter/src/flutter_go_true_client_options.dart';
Expand Down
2 changes: 1 addition & 1 deletion packages/supabase_flutter/lib/supabase_flutter.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/// Flutter integration for Supabase.
library;

export 'package:supabase/supabase.dart';
export 'package:supabase_dart/supabase_dart.dart';
export 'package:supabase_common/supabase_common.dart'
show defaultPersistSessionKey;
export 'package:url_launcher/url_launcher.dart' show LaunchMode;
Expand Down
2 changes: 1 addition & 1 deletion packages/supabase_flutter/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ dependencies:
http: ^1.6.0
meta: ^1.16.0
passkeys_platform_interface: ^2.8.0
supabase: 2.16.0
supabase_common: 0.1.2
supabase_dart: 2.16.0
url_launcher: ^6.3.2
shared_preferences: ^2.5.5
logging: ^1.3.0
Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ workspace:
- packages/postgrest
- packages/realtime_client
- packages/storage_client
- packages/supabase
- packages/supabase/example
- packages/supabase_dart
- packages/supabase_dart/example
- packages/supabase_flutter
- packages/supabase_flutter/example
- packages/supabase_common
Expand Down
2 changes: 1 addition & 1 deletion sdk-compliance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# explains why.
#
# Verified against the source in this repository (packages/gotrue, postgrest,
# storage_client, realtime_client, functions_client, supabase, supabase_flutter).
# storage_client, realtime_client, functions_client, supabase_dart, supabase_flutter).
# Unlisted features default to not_implemented.

sdk: flutter
Expand Down
Loading