Closed Bug 1803141 Opened 1 year ago Closed 1 year ago

firefox-android: Have Focus dependencies known by taskgraph.

Categories

(Release Engineering :: General, task)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jlorenzo, Assigned: jlorenzo)

References

Details

Attachments

(5 files)

In mozilla-mobile/android-components#7617, we optimized the number of Android-Components tasks scheduled by stripping away the components that remained unchanged. This happened with a few shortcomings like bug 1642977. Another one is this implementation betrays the core design of taskgraph. Taskgraph first generates the full graph before optimizing it[1]. In the current implementation, jobs don't even get created so they never make the full graph.

With Fenix coming to the Android monorepo, we want to be smarter about the way we schedule tasks. For instance a change in Fenix shouldn't trigger Focus tasks and the other way around. Similarly for A-C: a change in a component used by Fenix must trigger Fenix tasks. This means, we need to revisit how we make links between Taskcluster tasks and we should stop preventing them from reaching the full graph. Otherwise, Fenix is unable to when it needs to be rebuilt, for instance.

We can leverage what was done in mozilla-mobile/android-components#7617 by calling gradle and parsing its output. For instance:

cd focus-android
./gradlew 'app:dependencies' --configuration 'implementation'

gave some interesting results. We should be able to use taskgraph's skip-unless-change with a list of generated directories based on the output of such commands. That said, we should first handle bug 1642977. That bug will ensure the complete-push/complete-pr have the right dependencies.

[1] https://johanlorenzo.github.io/blog/2019/10/24/taskgraph-is-now-deployed-to-the-biggest-mozilla-mobile-projects.html

Assignee: nobody → jlorenzo
Attachment #9306424 - Attachment description: [mozilla-mobile/firefox-android] Bug 1803141 - Build/test components only when they change (#253) → [mozilla-mobile/firefox-android] Bug 1803141 - part 1-6: Build/test components only when they change (#253)
Blocks: 1806601
Depends on: 1788606
Blocks: 1788606
No longer depends on: 1788606

Status update: We ended up implementing comment 0 for the focus migration (bug 1797704). We even leveraged the output to the decision task faster (bug 1788606). Fenix is not implemented yet but will reuse what we did in these 2 bugs. The next step is to build sample-browser and focus-debug only when changed (bug 1806601).

Thus, let's close this current bug as fixed.

Blocks: 1797704
No longer blocks: 1803130
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Summary: firefox-android: Have Focus and Fenix dependencies known by taskgraph. → firefox-android: Have Focus dependencies known by taskgraph.
Blocks: 1807237
Regressions: 1809859
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: