feat!: rename the supabase package to supabase_dart - #1696
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
ℹ️ 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 Edge Functions client package from `functions_client` to `supabase_functions`, and its library entrypoint from `functions_client.dart` to `supabase_functions.dart`. `functions_client` says nothing about Supabase and does not match how the rest of the packages are named. This follows the `gotrue` to `supabase_auth` rename (#1697) and the `supabase` to `supabase_dart` rename (#1696). ## Changes - `packages/functions_client` moved to `packages/supabase_functions`, with `name: supabase_functions` in the pubspec and the repository link updated. `lib/functions_client.dart` is now `lib/supabase_functions.dart`. - Source files under `lib/src` keep their names. `src/functions_client.dart` is named after the `FunctionsClient` class it holds, not after the package. - `supabase` depends on `supabase_functions` instead of `functions_client` and re-exports the new entrypoint. `supabase_flutter` reaches it transitively, so its dependency list is unchanged. - Root `pubspec.yaml`, the test/pana workflow package lists and the 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 `functions_client` key so existing reports still land on the `functions` label. - `sdk-compliance.yaml` only mentions the package name in a comment. No symbol entries change, since no public types are renamed. - `MIGRATION.md` gains a v2 to v3 section with the dependency rename and the import rename. ## Deliberately unchanged - No public types are renamed. `FunctionsClient`, `FunctionException`, `FunctionResponse` and the rest keep their names. - The `X-Client-Info` header still reports `functions-dart`, matching the decision made for `supabase_auth`: changing it would break continuity in server-side telemetry. - The `Logger('supabase.functions')` logger name is unchanged. ## 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.7.1` line the package had as `functions_client`, and lines up with `supabase_auth`. `supabase`'s pin moves with it. ## Follow-up outside this repo Publishing `supabase_functions` and marking `functions_client` as discontinued on pub.dev, pointing at the new name, has to happen at release time. ## Testing - `dart analyze --fatal-infos` clean for `supabase_functions`, `supabase` and `supabase_flutter`. - `dart test` passes in `packages/supabase_functions` (48 tests). - `dart test -j 1` passes in `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. ## Note on merge order This overlaps with the `realtime_client` and `storage_client` renames in the workflow package lists, the issue templates, the READMEs and the `MIGRATION.md` insertion point. Whichever merges after the first needs a conflict pass. Part of #1278 SDK-1485 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the `supabase_functions` package for invoking Supabase Edge Functions. - Added structured function responses and specialized errors for transport, API, and relay failures. - Updated the main Supabase library to expose the new Functions package. - **Documentation** - Updated migration guidance, examples, package references, and changelog information. - Clarified that the former Functions package is discontinued in favor of `supabase_functions`. - **Chores** - Updated package metadata, licensing, versioning, issue labels, and release workflows. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What Renames the Realtime client package from `realtime_client` to `supabase_realtime`, and its library entrypoint from `realtime_client.dart` to `supabase_realtime.dart`. `realtime_client` says nothing about Supabase and does not match how the rest of the packages are named. This follows the `gotrue` to `supabase_auth` rename (#1697) and the `supabase` to `supabase_dart` rename (#1696). ## Changes - `packages/realtime_client` moved to `packages/supabase_realtime`, with `name: supabase_realtime` in the pubspec and the repository link updated. `lib/realtime_client.dart` is now `lib/supabase_realtime.dart`. - Source files under `lib/src` keep their names. `src/realtime_client.dart` is named after the `RealtimeClient` class it holds, not after the package. - `supabase` depends on `supabase_realtime` instead of `realtime_client` and re-exports the new entrypoint. `supabase_flutter` reaches it transitively, so its dependency list is unchanged. - Root `pubspec.yaml`, the test/pana workflow package lists and the 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 `realtime_client` key so existing reports still land on the `realtime` label. - `sdk-compliance.yaml` only mentions the package name in a comment. No symbol entries change, since no public types are renamed. - `MIGRATION.md` gains a v2 to v3 section with the dependency rename and the import rename. ## Deliberately unchanged - No public types are renamed. `RealtimeClient`, `RealtimeChannel`, `RealtimePresence` and the rest keep their names, as does `RealtimeClientOptions` in `supabase`. - The `X-Client-Info` header still reports `realtime-dart`, matching the decision made for `supabase_auth`: changing it would break continuity in server-side telemetry. - The `Logger('supabase.realtime')` logger name is unchanged. - The `infra/realtime_client/db/00-schema.sql` reference in `supabase/migrations/20240101000001_realtime_todos.sql` stays, it names a path that used to exist. ## 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.13.0` line the package had as `realtime_client`, and lines up with `supabase_auth`. `supabase`'s pin moves with it. ## Follow-up outside this repo Publishing `supabase_realtime` and marking `realtime_client` as discontinued on pub.dev, pointing at the new name, has to happen at release time. ## Testing - `dart analyze --fatal-infos` clean for `supabase_realtime`, `supabase` and `supabase_flutter`. - `dart test -j 1` passes in `packages/supabase_realtime` (211 tests, including the integration suite over both protocol versions) 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. ## Note on merge order This overlaps with the `functions_client` (#1713) and `storage_client` renames in the workflow package lists, the issue templates, the READMEs and the `MIGRATION.md` insertion point. Whichever merges after the first needs a conflict pass. Part of #1278 SDK-1486 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced the `supabase_realtime` package as the successor to the discontinued `realtime_client` package. * Added Realtime protocol serialization, PostgreSQL change-data transformation, cross-platform WebSocket support, and improved connection retry handling. * Added version 3.0.0-dev.1 metadata and package licensing. * **Documentation** * Updated migration guidance, package references, examples, and changelog information for the new package name. * Clarified that existing Realtime types remain compatible during migration. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What Renames the Storage client package from `storage_client` to `supabase_storage`, and its library entrypoint from `storage_client.dart` to `supabase_storage.dart`. `storage_client` says nothing about Supabase and does not match how the rest of the packages are named. This follows the `gotrue` to `supabase_auth` rename (#1697) and the `supabase` to `supabase_dart` rename (#1696). ## Changes - `packages/storage_client` moved to `packages/supabase_storage`, with `name: supabase_storage` in the pubspec and the repository link updated. `lib/storage_client.dart` is now `lib/supabase_storage.dart`. - Source files under `lib/src` keep their names. `src/storage_client.dart` is named after the `SupabaseStorageClient` class it holds, not after the package. - `supabase` depends on `supabase_storage` instead of `storage_client` and re-exports the new entrypoint. `supabase_flutter` reaches it transitively, so its dependency list is unchanged. - Root `pubspec.yaml`, the test/pana workflow package lists and the 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 `storage_client` key so existing reports still land on the `storage` label. - The two comments in `supabase/config.toml` and `supabase/seed.sql` that name the package now use the new name. - `sdk-compliance.yaml` only mentions the package name in a comment. No symbol entries change, since no public types are renamed. - `MIGRATION.md` gains a v2 to v3 section with the dependency rename and the import rename. ## Deliberately unchanged - No public types are renamed. `SupabaseStorageClient`, `StorageFileApi`, `StorageException`, the Iceberg catalog types and the rest keep their names. - The `X-Client-Info` header still reports `storage-dart`, matching the decision made for `supabase_auth`: changing it would break continuity in server-side telemetry. - The `Logger('supabase.storage')` logger name is unchanged. - The `infra/storage_client/postgres/dummy-data.sql` reference in `supabase/seed.sql` stays, it names a path that used to exist. ## 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.8.0` line the package had as `storage_client`, and lines up with `supabase_auth`. `supabase`'s pin moves with it. ## Follow-up outside this repo Publishing `supabase_storage` and marking `storage_client` as discontinued on pub.dev, pointing at the new name, has to happen at release time. ## Testing - `dart analyze --fatal-infos` clean for `supabase_storage`, `supabase` and `supabase_flutter`. - `dart test -j 1` passes in `packages/supabase_storage` (226 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. ## Note on merge order This overlaps with the `functions_client` (#1713) and `realtime_client` (#1714) renames in the workflow package lists, the issue templates, the READMEs and the `MIGRATION.md` insertion point, and with the Iceberg catalog extraction (#1711), which moves `lib/src/iceberg` out of this package. Whichever merges after the first needs a conflict pass. Part of #1278 SDK-1487 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced `supabase_storage` as the successor to `storage_client`. * Added Apache Iceberg table APIs and experimental S3 vector functionality. * Added enhanced storage models, error handling, retry controls, image transformations, download options, and cross-platform file support. * **Documentation** * Updated migration guidance, examples, changelog, licensing, and usage instructions. * Documented the discontinuation of `storage_client`. * **Chores** * Updated workspace, release, testing, labeling, and compliance configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.
e5a59ab to
5441ddd
Compare
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.