For instructions with `local.properties`, see [the root README](https://github.com/mozilla-mobile/fenix/blob/main/README.md). For instructions on manual publish + local.properties, keep reading. See [ac#8386](https://github.com/mozilla-mobile/android-components/issues/8386) for why we can't use local properties for fenix -> local ac -> local GV publishing.
## fenix -> local ac -> local GV
We're going to manually publish our GeckoView to our local maven repository, modify ac locally to consume it, and use local.properties to build fenix -> local ac.
### 1. Synchronize checkouts
To avoid breaking changes causing our builds to fail, we should make sure each of the repositories is on a commit from around the same time frame. You can use the [`android-components/tools/list_compatible_dependency_versions.py` script](https://github.com/mozilla-mobile/android-components/blob/main/tools/list_compatible_dependency_versions.py) to trivially identify ac and GV builds from a given fenix commit. If you want to synchronize builds from a GV or ac commit, you'll likely need to try to align around the commit merge dates (use `git log --pretty=fuller`).
### 2. Manually publish GeckoView
With our builds synchronized, we can publish our local changes to GeckoView. To publish GeckoView, run:
+ const val version = "98.0.20211208151112-SNAPSHOT"
/**
* GeckoView channel
@@ -23,7 +26,7 @@ object Gecko {
enum class GeckoChannel(
val artifactName: String
) {
- NIGHTLY("geckoview-nightly-omni"),
+ NIGHTLY("geckoview-default-omni"),
BETA("geckoview-beta-omni"),
RELEASE("geckoview-omni")
}
```
### 4. Build fenix with local.properties change
Now build fenix as usual with [the `local.properties` change](https://github.com/mozilla-mobile/fenix#auto-publication-workflow-for-android-components-and-application-services) to build with your local ac. This build will automatically build ac each time it is run. You should have a fenix -> local ac -> local GV build now!