Repository navigation
chore(webrtc)!: move upstream WebRTC code into third_party; rename to stream_dart_webrtc and stream_webrtc_interface - #1607
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v2 #1607 +/- ##
==========================================
+ Coverage 66.07% 66.10% +0.02%
==========================================
Files 467 467
Lines 27364 27364
==========================================
+ Hits 18081 18089 +8
+ Misses 9283 9275 -8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
7501f74 to
371ceb8
Compare
webrtc_interface becomes stream_webrtc_interface and dart_webrtc becomes stream_dart_webrtc, both starting at 1.0.0. The upstream packages on pub.dev keep their names. stream_video and stream_webrtc_flutter depend on the new names. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each package's lib/src moves into lib/src/third_party/<upstream>/ with git mv; only the import paths change. The package barrels export the same names, so the public API is unchanged. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…am code MIT Each package's root LICENSE becomes the Stream source code licence, with a section that points at the third-party licences. The upstream MIT text sits next to the code it covers: - lib/src/third_party/<upstream>/ gets LICENSE and ATTRIBUTION.md. - The native folders, the example, the tests and dart_webrtc's web/ stay where they are, each with a THIRD_PARTY.md listing the upstream files and the MIT LICENSE next to it. - Upstream files in the package root are listed in THIRD_PARTY.md, with LICENSE-MIT. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
stream_dart_webrtc and stream_webrtc_interface are not on pub.dev yet, so pana could not resolve stream_video and the packages that depend on it. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Root THIRD_PARTY.md files point at LICENSE-MIT, not the Stream LICENSE. - The flutter-webrtc baseline is stream_webrtc_flutter 4.0.0, the version that was copied in. - Root THIRD_PARTY.md lists every upstream file the other lists don't cover, including the barrels, third_party/CMakeLists.txt and the docs. - android/THIRD_PARTY.md notes the Apache-2.0 changes listed in NOTICE. - stream_webrtc_flutter's changelog marks the dependency switch as breaking, and the release skill refuses a stream-video release until the new packages are on pub.dev. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The measured apps got path overrides only for packages/, so they could not resolve stream_dart_webrtc and stream_webrtc_interface, which are not on pub.dev yet. Refs FLU-1187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
371ceb8 to
ea699f8
Compare
SDK Size
Measured on |
Size BreakdownWhat each SDK adds to an empty release app, per Dart package and native library. Dart sizes are uncompressed symbol sizes. Open the This run does not measure ios. Measured on android ·
|
| Component | Size | Δ vs v2 |
|---|---|---|
native:libjingle_peerconnection_so.so |
11.96 MB | 0 |
package:stream_video |
1.11 MB | -0.0 KB |
classes.dex |
261.9 KB | 0 |
dart:@unknown |
260.0 KB | -0.0 KB |
dart:_http |
154.1 KB | 0 |
package:protobuf |
146.0 KB | +0.0 KB |
dart:mixin_deduplication |
143.8 KB | 0 |
native:libdartjni.so |
121.7 KB | 0 |
dart:io |
99.3 KB | 0 |
dart:async |
75.6 KB | 0 |
package:stream_core |
69.5 KB | 0 |
package:stream_webrtc_flutter |
55.8 KB | +0.5 KB |
package:rxdart |
54.3 KB | 0 |
package:dio |
53.2 KB | 0 |
dart:core |
52.2 KB | 0 |
| other (72) | 538.3 KB | +0.7 KB |
android · stream_video_flutter: 17.41 MB (+0.8 KB)
| Component | Size | Δ vs v2 |
|---|---|---|
native:libjingle_peerconnection_so.so |
11.96 MB | 0 |
package:stream_video |
1.16 MB | -0.0 KB |
package:flutter |
698.8 KB | -0.3 KB |
classes.dex |
454.8 KB | 0 |
dart:@unknown |
434.8 KB | -0.0 KB |
dart:mixin_deduplication |
362.7 KB | 0 |
package:stream_video_flutter |
205.7 KB | 0 |
dart:_http |
154.1 KB | +0.0 KB |
package:protobuf |
145.2 KB | 0 |
dart:io |
136.5 KB | 0 |
package:stream_core_flutter |
124.2 KB | 0 |
native:libdartjni.so |
121.7 KB | 0 |
assets |
118.5 KB | 0 |
package:hive_ce |
99.2 KB | 0 |
dart:@shared |
84.2 KB | -0.0 KB |
| other (100) | 1.22 MB | +1.1 KB |
Resolves FLU-1187.
Three commits, best reviewed one at a time:
webrtc_interfacebecomesstream_webrtc_interfaceanddart_webrtcbecomesstream_dart_webrtc, both at 1.0.0. Folders, pubspecs, barrels, imports, the workspace list, the melos sync list and ignores,release_tag.yml, docs and changelogs follow.lib/srcmoves withgit mvintolib/src/third_party/<upstream>/. Only import paths change; the barrels export the same names.LICENSEis the Stream source code licence (same text asstream_video_flutter), with a section that points at the third-party licences:lib/src/third_party/<upstream>/hasLICENSEandATTRIBUTION.md.example/,test/andstream_dart_webrtc/web/stay in place, each with aTHIRD_PARTY.mdthat lists the upstream files and the MITLICENSEnext to it.THIRD_PARTY.md, with the MIT text inLICENSE-MIT.Before release
stream_dart_webrtcandstream_webrtc_interfaceare new on pub.dev. Their first version has to be published by hand, andstream_webrtc_flutterandstream_videocan't be released until then.lint:pub,release:pubandrelease_tag.ymlstill skip both.The
webrtctitle scope needs #1606.Checked locally
dart analyze --fatal-infos: clean on all webrtc packages and the example.stream_videohas the same issues asv2.stream_webrtc_flutter, plus thestream_videowebrtc, session and ringing tests, and the Chrome audio test.pub publish --dry-run: no warnings on the two new packages.stream_webrtc_flutterkeeps its existing warning about gitignored example files.🤖 Generated with Claude Code