[components] Use new geckoview-omni package, which includes Glean directly
commitbf733abed327e4adcbe796bd08cba56e8ee4bfec
authorJan-Erik Rediger <janerik@fnordig.de>
Mon, 19 Apr 2021 12:00:33 +0000 (19 14:00 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 14 Sep 2021 14:21:08 +0000 (14 14:21 +0000)
tree5a5b03204b9ba64b03b16da42ac55eab5df719af
parent243422e5049fc4ccaf7a84d4948a5ae970d74d4b
[components] Use new geckoview-omni package, which includes Glean directly

The native Glean core code is now shipped as part of GeckoView, within
the `-omni` packages.
The Glean Gradle plugin takes care that this all fits together nicely.
Downstream users will need to depend on the `glean-native` package for
tests now.

For now Android Components still needs to declare an explicit dependency
on `org.mozilla.telemetry:glean` as well.
service-glean needs to know what to reexport and some other components
depend on it directly to be able to use it. These might not depend on
geckoview, so have no other way to get that dependency.

Now here's the catch: Because GeckoView defines `org.mozilla.telemetry:glean` as a dependency,
consumers that transitively depend on GeckoView (through
`browser-engine-gecko`) will get the latest version of `org.mozilla.telemetry:glean` through it.
Gradle unifies the versions.
It would be problematic if a-c depends on a higher version, but that
should not happen (though we don't have any technical limitations on it
yet).
If Glean does a breaking change release and gets that into
mozilla-central, the version in a-c needs to be manually updated too.
For other releases it can be left untouched.
mobile/android/android-components/buildSrc/src/main/java/Dependencies.kt
mobile/android/android-components/buildSrc/src/main/java/Gecko.kt
mobile/android/android-components/components/service/glean/build.gradle
mobile/android/android-components/docs/changelog.md