feat!: rename the supabase package to supabase_dart - #1696
Conversation
BREAKING CHANGE: The pure Dart client is published as supabase_dart instead of supabase, and its library entrypoint is supabase_dart.dart. Depend on supabase_dart and import package:supabase_dart/supabase_dart.dart. supabase_flutter users are unaffected.
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (48)
📝 WalkthroughWalkthroughThe PR renames the pure Dart package from Changessupabase_dart package transition
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant TracePropagationClient
participant TraceContextProvider
participant SupabaseEndpoint
TracePropagationClient->>TraceContextProvider: Retrieve trace context
TracePropagationClient->>TracePropagationClient: Validate host and sampling decision
TracePropagationClient->>SupabaseEndpoint: Send request with trace headers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🔇 Additional comments (47)
packages/supabase_dart/lib/src/api_key.dart (1)
1-14: LGTM!Also applies to: 16-38
packages/supabase_dart/lib/src/counter.dart (1)
1-12: LGTM!packages/supabase_dart/lib/src/realtime_client_options.dart (1)
1-37: LGTM!packages/supabase_dart/lib/src/supabase_stream_filter_builder.dart (1)
1-12: LGTM!Also applies to: 14-40, 42-96, 98-113, 115-141, 143-177, 179-191, 193-207
packages/supabase_dart/example/pubspec.yaml (1)
1-1: LGTM!Also applies to: 13-13
packages/supabase_dart/example/.gitignore (1)
1-4: LGTM!packages/supabase_dart/example/analysis_options.yaml (1)
1-1: LGTM!packages/supabase_dart/example/web/main.dart (1)
4-4: LGTM!packages/supabase_dart/example/web/styles.css (1)
1-12: LGTM!packages/supabase_dart/lib/src/trace_propagation.dart (1)
1-56: LGTM!packages/supabase_dart/lib/src/trace_http_client.dart (3)
28-34: 🎯 Functional Correctness
⚠️ Unverified finding
Sandbox verification was unavailable.Verify that
enabledgates wrapper installation.Line 28 does not check
_options.enabled. This is safe only if every construction site installsTracePropagationClientonly whenenabledis true. Otherwise, the default-disabled option still propagates headers whenever a provider exists.
31-34: 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
⚠️ Unverified finding
Sandbox verification was unavailable.Prevent propagation across cross-host redirects.
Line 34 delegates redirect handling to
_innerafter trace headers are added. Ondart:io, an automatically followed GET or HEAD redirect forwards custom headers to a different domain; only specific sensitive headers receive cross-domain protection.traceparent,tracestate, andbaggageare custom headers. The redirected request does not pass through_shouldPropagateTo, so a permitted host can redirect trace data to a third party. (api.dart.dev)Disable automatic redirects before injection, or handle redirects so each redirect target passes
_shouldPropagateTobefore trace headers are copied.
37-109: LGTM!packages/supabase_dart/pubspec.yaml (1)
1-5: LGTM!pubspec.yaml (1)
14-15: LGTM!packages/supabase_dart/lib/supabase_dart.dart (1)
1-18: LGTM!packages/supabase_dart/lib/src/version.dart (1)
1-1: LGTM!packages/supabase_dart/test/client_test.dart (1)
4-4: LGTM!packages/supabase_dart/test/mock_test.dart (1)
5-5: LGTM!packages/supabase_dart/test/realtime_test.dart (1)
4-4: LGTM!packages/supabase_dart/test/stream_filter_test.dart (1)
5-5: LGTM!packages/supabase_dart/test/stream_integration_test.dart (1)
6-6: LGTM!packages/supabase_dart/lib/src/auth_http_client.dart (1)
2-2: LGTM!packages/supabase_dart/lib/src/constants.dart (1)
1-1: LGTM!packages/supabase_dart/lib/src/supabase_client.dart (1)
5-7: LGTM!packages/supabase_dart/lib/src/supabase_client_options.dart (1)
1-1: LGTM!packages/supabase_dart/lib/src/supabase_query_builder.dart (1)
1-1: LGTM!packages/supabase_dart/test/trace_propagation_test.dart (1)
3-4: LGTM!packages/supabase_dart/test/utilities_test.dart (1)
5-7: LGTM!packages/supabase_dart/test/utils.dart (1)
26-26: 🎯 Functional CorrectnessNo change is required. The
sessionStringassignment includes theupdated_atvalue, closing}}, and semicolon.> Likely an incorrect or invalid review comment.packages/supabase_dart/lib/src/supabase_query_schema.dart (1)
2-2: LGTM!packages/supabase_dart/lib/src/supabase_stream_builder.dart (1)
4-4: LGTM!packages/supabase_dart/analysis_options.yaml (1)
1-1: LGTM!packages/supabase_dart/dart_test.yaml (1)
1-5: LGTM!packages/supabase_flutter/lib/src/supabase.dart (1)
8-8: LGTM!packages/supabase_flutter/lib/supabase_flutter.dart (1)
4-4: LGTM!packages/supabase_flutter/pubspec.yaml (1)
30-30: LGTM!packages/supabase_dart/test/api_key_test.dart (1)
6-7: LGTM!.github/ISSUE_TEMPLATE/bug_report.yml (1)
25-25: LGTM!.github/workflows/label-issues.yml (1)
34-34: LGTM!.github/workflows/release-pana.yml (1)
34-34: LGTM!.github/workflows/test.yml (1)
67-79: LGTM!Also applies to: 347-347
AGENTS.md (1)
14-14: LGTM!MIGRATION.md (1)
7-7: LGTM!Also applies to: 23-49
packages/supabase_dart/LICENSE (1)
1-21: LGTM!packages/supabase_dart/README.md (1)
7-7: LGTM!Also applies to: 22-22
sdk-compliance.yaml (1)
18-18: LGTM!
🤖 Prompt for all review comments with 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.
Inline comments:
In `@MIGRATION.md`:
- Around line 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.
In `@packages/supabase_dart/CHANGELOG.md`:
- Around line 922-924: Resolve the duplicate 0.0.1-dev.8 heading in the
changelog by merging the repeated section into the existing version section or
restoring the intended distinct version heading, ensuring each release version
has exactly one unambiguous heading.
- Around line 1-6: The changelog lacks a v3 entry documenting the breaking
package rename. Add an `## 3.0.0` or `## Unreleased` section above `2.16.0` that
explicitly names the new `supabase_dart` package and its `supabase_dart.dart`
entrypoint.
In `@packages/supabase_dart/example/README.md`:
- Line 6: Update the application description in the README to hyphenate “geo
based” as “geo-based,” without changing the rest of the description.
- Around line 1-8: Update the Examples section in the README to remove or
replace Flutter-specific application links with pure-Dart examples; where no
pure-Dart example exists, direct users to the supabase_flutter package instead.
Ensure the listed examples accurately represent the supabase_dart package.
In `@packages/supabase_dart/example/web/index.html`:
- Line 9: Update the HTML document title in the title element from dart_web_app
to a package-specific title such as Supabase Dart Example.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 121d7dca-6b74-4e54-aa24-3676980eeb88
📒 Files selected for processing (48)
.github/ISSUE_TEMPLATE/bug_report.yml.github/workflows/label-issues.yml.github/workflows/release-pana.yml.github/workflows/test.ymlAGENTS.mdMIGRATION.mdpackages/supabase_dart/CHANGELOG.mdpackages/supabase_dart/LICENSEpackages/supabase_dart/README.mdpackages/supabase_dart/analysis_options.yamlpackages/supabase_dart/dart_test.yamlpackages/supabase_dart/example/.gitignorepackages/supabase_dart/example/README.mdpackages/supabase_dart/example/analysis_options.yamlpackages/supabase_dart/example/pubspec.yamlpackages/supabase_dart/example/web/index.htmlpackages/supabase_dart/example/web/main.dartpackages/supabase_dart/example/web/styles.csspackages/supabase_dart/lib/src/api_key.dartpackages/supabase_dart/lib/src/auth_http_client.dartpackages/supabase_dart/lib/src/constants.dartpackages/supabase_dart/lib/src/counter.dartpackages/supabase_dart/lib/src/realtime_client_options.dartpackages/supabase_dart/lib/src/supabase_client.dartpackages/supabase_dart/lib/src/supabase_client_options.dartpackages/supabase_dart/lib/src/supabase_query_builder.dartpackages/supabase_dart/lib/src/supabase_query_schema.dartpackages/supabase_dart/lib/src/supabase_stream_builder.dartpackages/supabase_dart/lib/src/supabase_stream_filter_builder.dartpackages/supabase_dart/lib/src/trace_http_client.dartpackages/supabase_dart/lib/src/trace_propagation.dartpackages/supabase_dart/lib/src/version.dartpackages/supabase_dart/lib/supabase_dart.dartpackages/supabase_dart/pubspec.yamlpackages/supabase_dart/test/api_key_test.dartpackages/supabase_dart/test/client_test.dartpackages/supabase_dart/test/mock_test.dartpackages/supabase_dart/test/realtime_test.dartpackages/supabase_dart/test/stream_filter_test.dartpackages/supabase_dart/test/stream_integration_test.dartpackages/supabase_dart/test/trace_propagation_test.dartpackages/supabase_dart/test/utilities_test.dartpackages/supabase_dart/test/utils.dartpackages/supabase_flutter/lib/src/supabase.dartpackages/supabase_flutter/lib/supabase_flutter.dartpackages/supabase_flutter/pubspec.yamlpubspec.yamlsdk-compliance.yaml
| ### 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. |
There was a problem hiding this comment.
📐 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 thatsupabasewill be discontinued on pub.dev when v3 is released.packages/supabase_dart/README.md#L31-L33: State thatsupabasewill 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.
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 6
🔇 Additional comments (47)
packages/supabase_dart/lib/src/api_key.dart (1)
1-14: LGTM!Also applies to: 16-38
packages/supabase_dart/lib/src/counter.dart (1)
1-12: LGTM!packages/supabase_dart/lib/src/realtime_client_options.dart (1)
1-37: LGTM!packages/supabase_dart/lib/src/supabase_stream_filter_builder.dart (1)
1-12: LGTM!Also applies to: 14-40, 42-96, 98-113, 115-141, 143-177, 179-191, 193-207
packages/supabase_dart/example/pubspec.yaml (1)
1-1: LGTM!Also applies to: 13-13
packages/supabase_dart/example/.gitignore (1)
1-4: LGTM!packages/supabase_dart/example/analysis_options.yaml (1)
1-1: LGTM!packages/supabase_dart/example/web/main.dart (1)
4-4: LGTM!packages/supabase_dart/example/web/styles.css (1)
1-12: LGTM!packages/supabase_dart/lib/src/trace_propagation.dart (1)
1-56: LGTM!packages/supabase_dart/lib/src/trace_http_client.dart (3)
28-34: 🎯 Functional Correctness
⚠️ Unverified finding
Sandbox verification was unavailable.Verify that
enabledgates wrapper installation.Line 28 does not check
_options.enabled. This is safe only if every construction site installsTracePropagationClientonly whenenabledis true. Otherwise, the default-disabled option still propagates headers whenever a provider exists.
31-34: 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
⚠️ Unverified finding
Sandbox verification was unavailable.Prevent propagation across cross-host redirects.
Line 34 delegates redirect handling to
_innerafter trace headers are added. Ondart:io, an automatically followed GET or HEAD redirect forwards custom headers to a different domain; only specific sensitive headers receive cross-domain protection.traceparent,tracestate, andbaggageare custom headers. The redirected request does not pass through_shouldPropagateTo, so a permitted host can redirect trace data to a third party. (api.dart.dev)Disable automatic redirects before injection, or handle redirects so each redirect target passes
_shouldPropagateTobefore trace headers are copied.
37-109: LGTM!packages/supabase_dart/pubspec.yaml (1)
1-5: LGTM!pubspec.yaml (1)
14-15: LGTM!packages/supabase_dart/lib/supabase_dart.dart (1)
1-18: LGTM!packages/supabase_dart/lib/src/version.dart (1)
1-1: LGTM!packages/supabase_dart/test/client_test.dart (1)
4-4: LGTM!packages/supabase_dart/test/mock_test.dart (1)
5-5: LGTM!packages/supabase_dart/test/realtime_test.dart (1)
4-4: LGTM!packages/supabase_dart/test/stream_filter_test.dart (1)
5-5: LGTM!packages/supabase_dart/test/stream_integration_test.dart (1)
6-6: LGTM!packages/supabase_dart/lib/src/auth_http_client.dart (1)
2-2: LGTM!packages/supabase_dart/lib/src/constants.dart (1)
1-1: LGTM!packages/supabase_dart/lib/src/supabase_client.dart (1)
5-7: LGTM!packages/supabase_dart/lib/src/supabase_client_options.dart (1)
1-1: LGTM!packages/supabase_dart/lib/src/supabase_query_builder.dart (1)
1-1: LGTM!packages/supabase_dart/test/trace_propagation_test.dart (1)
3-4: LGTM!packages/supabase_dart/test/utilities_test.dart (1)
5-7: LGTM!packages/supabase_dart/test/utils.dart (1)
26-26: 🎯 Functional CorrectnessNo change is required. The
sessionStringassignment includes theupdated_atvalue, closing}}, and semicolon.> Likely an incorrect or invalid review comment.packages/supabase_dart/lib/src/supabase_query_schema.dart (1)
2-2: LGTM!packages/supabase_dart/lib/src/supabase_stream_builder.dart (1)
4-4: LGTM!packages/supabase_dart/analysis_options.yaml (1)
1-1: LGTM!packages/supabase_dart/dart_test.yaml (1)
1-5: LGTM!packages/supabase_flutter/lib/src/supabase.dart (1)
8-8: LGTM!packages/supabase_flutter/lib/supabase_flutter.dart (1)
4-4: LGTM!packages/supabase_flutter/pubspec.yaml (1)
30-30: LGTM!packages/supabase_dart/test/api_key_test.dart (1)
6-7: LGTM!.github/ISSUE_TEMPLATE/bug_report.yml (1)
25-25: LGTM!.github/workflows/label-issues.yml (1)
34-34: LGTM!.github/workflows/release-pana.yml (1)
34-34: LGTM!.github/workflows/test.yml (1)
67-79: LGTM!Also applies to: 347-347
AGENTS.md (1)
14-14: LGTM!MIGRATION.md (1)
7-7: LGTM!Also applies to: 23-49
packages/supabase_dart/LICENSE (1)
1-21: LGTM!packages/supabase_dart/README.md (1)
7-7: LGTM!Also applies to: 22-22
sdk-compliance.yaml (1)
18-18: LGTM!
🤖 Prompt for all review comments with 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.
Inline comments:
In `@MIGRATION.md`:
- Around line 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.
In `@packages/supabase_dart/CHANGELOG.md`:
- Around line 922-924: Resolve the duplicate 0.0.1-dev.8 heading in the
changelog by merging the repeated section into the existing version section or
restoring the intended distinct version heading, ensuring each release version
has exactly one unambiguous heading.
- Around line 1-6: The changelog lacks a v3 entry documenting the breaking
package rename. Add an `## 3.0.0` or `## Unreleased` section above `2.16.0` that
explicitly names the new `supabase_dart` package and its `supabase_dart.dart`
entrypoint.
In `@packages/supabase_dart/example/README.md`:
- Line 6: Update the application description in the README to hyphenate “geo
based” as “geo-based,” without changing the rest of the description.
- Around line 1-8: Update the Examples section in the README to remove or
replace Flutter-specific application links with pure-Dart examples; where no
pure-Dart example exists, direct users to the supabase_flutter package instead.
Ensure the listed examples accurately represent the supabase_dart package.
In `@packages/supabase_dart/example/web/index.html`:
- Line 9: Update the HTML document title in the title element from dart_web_app
to a package-specific title such as Supabase Dart Example.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 121d7dca-6b74-4e54-aa24-3676980eeb88
📒 Files selected for processing (48)
.github/ISSUE_TEMPLATE/bug_report.yml.github/workflows/label-issues.yml.github/workflows/release-pana.yml.github/workflows/test.ymlAGENTS.mdMIGRATION.mdpackages/supabase_dart/CHANGELOG.mdpackages/supabase_dart/LICENSEpackages/supabase_dart/README.mdpackages/supabase_dart/analysis_options.yamlpackages/supabase_dart/dart_test.yamlpackages/supabase_dart/example/.gitignorepackages/supabase_dart/example/README.mdpackages/supabase_dart/example/analysis_options.yamlpackages/supabase_dart/example/pubspec.yamlpackages/supabase_dart/example/web/index.htmlpackages/supabase_dart/example/web/main.dartpackages/supabase_dart/example/web/styles.csspackages/supabase_dart/lib/src/api_key.dartpackages/supabase_dart/lib/src/auth_http_client.dartpackages/supabase_dart/lib/src/constants.dartpackages/supabase_dart/lib/src/counter.dartpackages/supabase_dart/lib/src/realtime_client_options.dartpackages/supabase_dart/lib/src/supabase_client.dartpackages/supabase_dart/lib/src/supabase_client_options.dartpackages/supabase_dart/lib/src/supabase_query_builder.dartpackages/supabase_dart/lib/src/supabase_query_schema.dartpackages/supabase_dart/lib/src/supabase_stream_builder.dartpackages/supabase_dart/lib/src/supabase_stream_filter_builder.dartpackages/supabase_dart/lib/src/trace_http_client.dartpackages/supabase_dart/lib/src/trace_propagation.dartpackages/supabase_dart/lib/src/version.dartpackages/supabase_dart/lib/supabase_dart.dartpackages/supabase_dart/pubspec.yamlpackages/supabase_dart/test/api_key_test.dartpackages/supabase_dart/test/client_test.dartpackages/supabase_dart/test/mock_test.dartpackages/supabase_dart/test/realtime_test.dartpackages/supabase_dart/test/stream_filter_test.dartpackages/supabase_dart/test/stream_integration_test.dartpackages/supabase_dart/test/trace_propagation_test.dartpackages/supabase_dart/test/utilities_test.dartpackages/supabase_dart/test/utils.dartpackages/supabase_flutter/lib/src/supabase.dartpackages/supabase_flutter/lib/supabase_flutter.dartpackages/supabase_flutter/pubspec.yamlpubspec.yamlsdk-compliance.yaml
🛑 Comments failed to post (5)
packages/supabase_dart/CHANGELOG.md (2)
1-6: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add a v3 changelog entry for the package rename.
The newest section is
2.16.0, butMIGRATION.mddocuments the breakingsupabasetosupabase_dartchange for v3. Add an## 3.0.0or## Unreleasedsection that names the new package andsupabase_dart.dartentrypoint before publishing v3.Based on learnings: “Update package changelogs if making notable changes.”
🤖 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 `@packages/supabase_dart/CHANGELOG.md` around lines 1 - 6, The changelog lacks a v3 entry documenting the breaking package rename. Add an `## 3.0.0` or `## Unreleased` section above `2.16.0` that explicitly names the new `supabase_dart` package and its `supabase_dart.dart` entrypoint.Source: Learnings
922-924: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Resolve the duplicate
0.0.1-dev.8heading.Line 922 repeats the
## [0.0.1-dev.8]heading already used at Line 918. This makes release sections and generated anchors ambiguous. Restore the intended version heading or merge the two sections.🧰 Tools
🪛 markdownlint-cli2 (0.23.2)
[warning] 922-922: Multiple headings with the same content
(MD024, no-duplicate-heading)
🤖 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 `@packages/supabase_dart/CHANGELOG.md` around lines 922 - 924, Resolve the duplicate 0.0.1-dev.8 heading in the changelog by merging the repeated section into the existing version section or restoring the intended distinct version heading, ensuring each release version has exactly one unambiguous heading.Source: Linters/SAST tools
packages/supabase_dart/example/README.md (2)
1-8: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Keep the examples aligned with the pure Dart package.
This README presents “Supabase Flutter” applications under
supabase_dart. That can direct Flutter users to the pure Dart package and conflicts with the package-selection objective. Replace these links with pure-Dart examples or direct Flutter users tosupabase_flutter.🧰 Tools
🪛 LanguageTool
[grammar] ~6-~6: Use a hyphen to join words.
Context: ...ase-flutter-demo - Spot, open source geo based video sharing social app created w...(QB_NEW_EN_HYPHEN)
🤖 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 `@packages/supabase_dart/example/README.md` around lines 1 - 8, Update the Examples section in the README to remove or replace Flutter-specific application links with pure-Dart examples; where no pure-Dart example exists, direct users to the supabase_flutter package instead. Ensure the listed examples accurately represent the supabase_dart package.
6-6: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Hyphenate
geo-based.Change
geo basedtogeo-basedin the application description.🧰 Tools
🪛 LanguageTool
[grammar] ~6-~6: Use a hyphen to join words.
Context: ...ase-flutter-demo - Spot, open source geo based video sharing social app created w...(QB_NEW_EN_HYPHEN)
🤖 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 `@packages/supabase_dart/example/README.md` at line 6, Update the application description in the README to hyphenate “geo based” as “geo-based,” without changing the rest of the description.Source: Linters/SAST tools
packages/supabase_dart/example/web/index.html (1)
9-9: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Update the browser title.
The title remains
dart_web_app, so the renamed example is not identified in the browser tab. Use a package-specific title such asSupabase Dart Example.🤖 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 `@packages/supabase_dart/example/web/index.html` at line 9, Update the HTML document title in the title element from dart_web_app to a package-specific title such as Supabase Dart Example.
|
Moving this back to draft since we're still evaluating whether this is worth doing. |
## What Renames the auth client package from `gotrue` to `supabase_auth`, its library entrypoint from `gotrue.dart` to `supabase_auth.dart`, and the public types that carried the old name. The service this package talks to has been called Supabase Auth for years, and `gotrue` is a name users no longer recognize. The other clients already moved: `supabase-py` ships `supabase_auth` and `supabase-js` ships `@supabase/auth-js`. ## Class renames The old names are replaced with the `Auth` prefix the rest of the package already uses (`AuthException`, `AuthResponse`, `AuthState`, `AuthClientOptions`), which is also what `auth-js` prefers. | Before | After | | --- | --- | | `GoTrueClient` | `AuthClient` | | `GoTrueAdminApi` | `AuthAdminApi` | | `GoTrueAdminCustomProvidersApi` | `AuthAdminCustomProvidersApi` | | `GoTrueAdminMFAApi` | `AuthAdminMFAApi` | | `GoTrueAdminOAuthApi` | `AuthAdminOAuthApi` | | `GoTrueAdminPasskeyApi` | `AuthAdminPasskeyApi` | | `GoTrueMFAApi` | `AuthMFAApi` | | `GoTrueOAuthApi` | `AuthOAuthApi` | | `GoTruePasskeyApi` | `AuthPasskeyApi` | | `GotrueAsyncStorage` | `AuthAsyncStorage` | | `SharedPreferencesGotrueAsyncStorage` | `SharedPreferencesAuthAsyncStorage` | The two `supabase_flutter` extensions on the auth client follow: `GoTrueClientSignInProvider` becomes `AuthClientSignInProvider`, `GoTrueClientPasskey` becomes `AuthClientPasskey`. ## Other changes - `packages/gotrue` moved to `packages/supabase_auth`, with `name: supabase_auth` in the pubspec and the repository link updated. Source files named after the old package are renamed to match their classes, for example `src/gotrue_client.dart` to `src/auth_client.dart`. - `supabase` depends on `supabase_auth` instead of `gotrue`. `supabase_flutter` reaches it transitively, so neither package's own dependency list gains an entry. - `supabase_flutter/lib/src/flutter_go_true_client_options.dart` is renamed to `flutter_auth_client_options.dart`. The class inside was already `FlutterAuthClientOptions`. - Two private fields in `SupabaseClient` had collided under the new naming, so the traced client handed to `AuthClient` is now `_authApiHttpClient`, distinct from the `_authHttpClient` that injects the JWT into the other service clients. - All 110 `GoTrue`-prefixed symbol entries in `sdk-compliance.yaml` are updated. No capability statuses change, this is a rename only. - Root `pubspec.yaml`, the test/pana workflow package lists and coverage carryforward, the issue-form library dropdown, the issue label mapping, READMEs, `AGENTS.md` and `MIGRATION.md` all use the new name. The label mapping keeps the old `gotrue` key so existing reports still land on the `auth` label. - `MIGRATION.md` gains a v2 to v3 section with the dependency rename, the import rename and the full class rename table. ## Deliberately unchanged - The `X-Client-Info` header still reports `gotrue-dart`. `auth-js` likewise still sends `gotrue-js`, and changing it would break continuity in server-side telemetry. - The `gotrue_meta_security` field in captcha payloads is a server wire contract. - `supabase/config.toml`, `seed.sql` and the `20240101000002_gotrue_reset.sql` migration refer to the actual auth server and its schema. - The `supabase/gotrue` docker image name in the test workflow's image-cache grep. ## Test env keys The auth test suite reads optional `.env` overrides. Each one now accepts a `SUPABASE_AUTH_`-prefixed key and still honours the old `GOTRUE_` key, so existing local `.env` files keep working: | New | Still accepted | | --- | --- | | `SUPABASE_AUTH_URL` | `GOTRUE_URL` | | `SUPABASE_AUTH_TOKEN` | `GOTRUE_TOKEN` | | `SUPABASE_AUTH_SERVICE_ROLE_TOKEN` | `GOTRUE_SERVICE_ROLE_TOKEN` | The URL lookup moved into a `getAuthUrl(env)` helper in `test/utils.dart`, next to the existing token helpers, instead of being repeated in ten test files. ## Version The package is set to `3.0.0-dev.1` by hand rather than by the versioning workflow, because the first release under a new name has to be published manually before pub.dev knows the package. `3.0.0` continues the `2.27.1` line the package had as `gotrue`, and `dev` is both the preid the v2 prereleases used (`gotrue-v2.0.0-dev.1`) and melos' default, so the rest of the packages line up on `3.0.0-dev.N` when the v3 prerelease is cut. `supabase`'s pin on the auth client moves with it. ## Follow-up outside this repo Publishing `supabase_auth` and marking `gotrue` as discontinued on pub.dev, pointing at the new name, has to happen at release time. ## Testing - `dart analyze` clean across the workspace. - `dart test -j 1` passes in `packages/supabase_auth` (458 tests) and `packages/supabase` (134 tests) against the local Supabase stack. - `flutter test` passes in `packages/supabase_flutter` (76 tests). - `dart format -l 80 --set-exit-if-changed` reports no changes. - The three `supabase/sdk` compliance checks pass locally: `validate-compliance`, `check-drift` (no stale registrations from the renames) and `check-api-symbols` against an `origin/main` base extraction (every renamed symbol is registered under its new name). ## Note on merge order This is rebased on `main` and overlaps with #1696 (the `supabase` to `supabase_dart` rename) in the workflow package lists, the issue templates, `AGENTS.md` and the `MIGRATION.md` insertion point. Whichever merges second needs a conflict pass. Resolves #1695 Part of #1278 SDK-1467 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced the Supabase Auth package with updated authentication APIs, storage providers, and Flutter integrations. * Added custom OAuth/OIDC provider models, JWT/JWK handling, and standardized authentication error codes. * **Documentation** * Updated migration guidance, examples, package references, licensing, and changelog information. * **Refactor** * Renamed legacy authentication classes and extensions to consistent Auth terminology across the SDK. * **Tests** * Updated coverage and test utilities for the renamed APIs and authentication URL configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
What
Renames the pure Dart client package from
supabasetosupabase_dart, and its library entrypoint fromsupabase.darttosupabase_dart.dart.The
supabasename reads like the umbrella name for the whole SDK, so people keep adding it to Flutter projects instead ofsupabase_flutterand then report that things do not work. The new name makes the split obvious at the point where a dependency is picked.Changes
packages/supabasemoved topackages/supabase_dart, withname: supabase_dartin the pubspec and the repository link updated.lib/supabase.dartrenamed tolib/supabase_dart.dart. Every internal import and thesupabase_flutterre-export now point atpackage:supabase_dart/supabase_dart.dart.supabase_flutterdepends onsupabase_dartinstead ofsupabase. Nothing in its public surface changes, it re-exports the same symbols.supabase_dart_exampleand depends onsupabase_dart.pubspec.yamlworkspace entries, the test/pana workflow package lists and coverage carryforward flags, the issue-form library dropdown, and the issue label mapping all use the new name. The label mapping keeps the oldsupabasekey so existing reports still land on the same label.AGENTS.md,MIGRATION.mdand thesdk-compliance.yamlheader comment updated. Nothing inside the package is renamed, soSupabaseClientand everything it exposes keeps its name, and no capability statuses change.MIGRATION.mdgains a v2 to v3 section covering the dependency and import rename.Follow-up outside this repo
Publishing
supabase_dartand markingsupabaseas discontinued on pub.dev, pointing at the new name, has to happen at release time.Testing
dart analyzeclean across the workspace, anddart analyze --fatal-infosclean inpackages/supabase_dart.dart testpasses for the offlinesupabase_dartsuites (api_key,mock,stream_filter,trace_propagation,utilities).flutter testpasses inpackages/supabase_flutter.dart format -l 80 --set-exit-if-changedreports no changes.Resolves #1275
Part of #1278
SDK-1468
Summary by CodeRabbit
supabase_dartand added migration guidance.