Fenix: FNX-514 ⁃ [discussion] Use explicit android-components versions instead of snapshots

Created on 2 May 2019  ·  9Comments  ·  Source: mozilla-mobile/fenix

How often do android-components snapshots releases land without breaking changes?
If it's the majority of the time, then we currently have the following workflow

  1. Release a-c snapshot with breaking changes
  2. Snapshot slowly begins being used by CI and each Fenix developer, causing failing builds
  3. A PR is created and landed to address the breakage

Unfortunately, between steps 1 and 3, Fenix builds will sporadically begin to fail, harming productivity.

Perhaps we should change the workflow to:

  1. Release a-c version with breaking changes
  2. The new version doesn't affect developers (they have stale a-c code)
  3. A PR is created to use the new version and handle breakage, if any

This way, developers/releng don't have their builds unexpectedly start failing. When I was working to prepare the Fenix Beta pipeline last Thursday, I was blocked for hours due to a snapshot release that didn't need to affect my work.

TL;DR: How much time are we saving by not needing to manually bump the a-c version? How much time are we losing to snapshot breakage?

@pocmo

All 9 comments

This is planned to happen close to / at the Fenix release. Currently we want to get the AC changes into Fenix as soon as possible and there are Fenix-related patches landing all the time.

We seem to be doing this for releases. https://github.com/mozilla-mobile/fenix/commit/1d57e77ceaa862e54ffeba83a480ed35cc1295dd is there anything else to do in this issue?

It looks like we're still using snapshots, so this ticket can't be closed yet

We are using pinned versions for the release builds and snapshots for the master builds.

As in, dynamically? Is gradle pulling a different dependency (snapshot vs pin) based on the build type? Or are you overwriting mozilla_android_components before each release, then putting it back to ...-SNAPSHOT after?

Or are you overwriting mozilla_android_components before each release, then putting it back to ...-SNAPSHOT after?

That's probably going to happen.

That said, this was an ad-hoc decision (switching from 1.0.0 to 2.0.0-SNAPSHOT) to continue working with bleeding edge fixes/features in AC in Fenix. This is related to our development/release flow that is not really finalized.

We have continued to release with a pinned version, and then go back to snapshots. Can we close this ticket?

Yeah, I think the current process is working fairly well, right?

Eventually I would like to look into "pinned snapshots" to automatically update the version but also have it pinned so that it does not randomly break. But that's something for a different issue.

@pocmo @liuche can we close this?

Was this page helpful?
0 / 5 - 0 ratings