Closed Bug 1347973 Opened 8 years ago Closed 7 years ago

[geckoview] Publish GeckoView builds on jcenter

Categories

(GeckoView :: General, enhancement)

enhancement
Not set
normal

Tracking

(firefox55 affected)

RESOLVED DUPLICATE of bug 1433198
Tracking Status
firefox55 --- affected

People

(Reporter: snorp, Unassigned)

Details

This will allow a very easy to consume GeckoView via Android Studio.
I can think of the following things that will need to happen to publish: - we'll need to version the GV library, around https://dxr.mozilla.org/mozilla-central/source/mobile/android/geckoview/build.gradle#13. The "easy" way to do this is to use the ANDROID_VERSION_CODE mechanism we cobbled into place for Fennec, but it's very complicated (!) and completely unintuitive. I'd much prefer it if we could find a way to produce per-channel library versions (flavours?) and version each of those libraries independently, and with a more sensible version -- 5200 for Release and Beta, maybe ANDROID_VERSION_CODE for Aurora and Nightly. - we'll need to choose a Gradle distribution approach. I used the "maven" plugin to publish to a directory, and that might be enough to publish to one of the public repositories (like jcenter). I see that ExoPlayer is using "bintray-release", which I think is very common: https://github.com/google/ExoPlayer/blob/release-v2/library/build.gradle#L17. - we'll need to find a way to get credentials allocated, get them managed by releng, and get them provisioned to build (or distribution) machines. This raises questions about signing or otherwise authenticating the library builds produced, and about whether the credentials should be different for Release/Beta and Aurora/Nightly. - we should consider making this a separate Task Cluster task, consuming successful builds, perhaps running on its own schedule. This might be better than gluing an external network dependency into the already complex build process. Lots of these issues collapse and simplify if we assume we'll only publish Nightly GV libraries for the foreseeable future.
(In reply to Nick Alexander :nalexander from comment #1) > Lots of these issues collapse and simplify if we assume we'll only publish > Nightly GV libraries for the foreseeable future. I think that's a safe assumption. If we do anything more than that it will simply be to release a snapshot of m-c as a "stable" release, like most other projects do.
(In reply to Nick Alexander :nalexander from comment #1) > - we'll need to version the GV library, around > https://dxr.mozilla.org/mozilla-central/source/mobile/android/geckoview/ > build.gradle#13. The "easy" way to do this is to use the > ANDROID_VERSION_CODE mechanism we cobbled into place for Fennec, but it's > very complicated (!) and completely unintuitive. I'd much prefer it if we > could find a way to produce per-channel library versions (flavours?) and > version each of those libraries independently, and with a more sensible > version -- 5200 for Release and Beta, maybe ANDROID_VERSION_CODE for Aurora > and Nightly. I'm unfamiliar with the versioning conventions for Android libraries, but I'd look for a way to distinguish between the GeckoView and Gecko versions, using something like semver for the former to identify milestones and breaking changes to the GeckoView API. Other projects that embed a runtime dependency, like Electron and Node, do something similar: "electron --version" is independent of "electron --abi", and "node --version" is independent of "node -p process.versions.v8". (I'm unsure of a good example on Android, but I see that Crosswalk uses both monotonically increasing numbers and a separate number that looks like it reflects the Android API level <https://crosswalk-project.org/documentation/apis/embedding_api.html>.)
Summary: Publish GeckoView builds on jcenter → [geckoview] Publish GeckoView builds on jcenter
Component: Embedding: APIs → GeckoView
Product: Core → Firefox for Android
catlee is working on publishing a GeckoView Maven repo to Bintray/JCenter in bug 1433198.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Product: Firefox for Android → GeckoView
You need to log in before you can comment on or make changes to this bug.