Closed Bug 1582923 Opened 5 years ago Closed 4 years ago

Allow for additional Taskcluster functionality to be implemented under comm/taskcluster

Categories

(Thunderbird :: Build Config, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 75.0

People

(Reporter: rjl, Assigned: rjl)

References

Details

User Story

Two Thunderbird developers have tried to implement new task kinds outside of mozilla- code in the past couple of months with very limited success. These tasks fall into one of three categories:

- a task kind exists in Thunderbird, but the definitions are direct references to the Firefox definitions. These are underlying components of the build system: docker images, debian package rebuilds, fetch task, toolchain builds
- does not clearly map to an existing task kind
- an existing task kind makes sense, but the schema is limited in a way that does not work for Thunderbird.

Specific use cases that have come up:
- Bug 1574835 - gdata-provider multilang repack at buildtime
  - This was abandoned for other reasons, but would have been implemented as a separate task and likely would have needed a new task kind
- Bug 1573570 - The requirement was to download an external file and include it in the build. This would be implemented as a fetch task. As mentioned above those are all imported from Firefox and there is no existing way to define individual tasks of a single kind in multiple trees
- Bug 1518166 - A third party library needs to be added to the build. The code is vendored in the repository, but is quite finicky on OS's other than Linux and pretty much demands that it be cross-compiled when targeting Windows. Implementing as a toolchain build seems to be the obvious solution, however limitations on the schema and script paths have made this a challenge. It could be implemented as a separate build task, but there are similar problems. Ideally the cached_task transform would be applied like for toolchain builds, but transforms apply to every task in a kind. This can be worked around, but this would just work better as a toolchain task.
- Bug 1586508 - It comes down to workflow differences between how Firefox and Thunderbird operate. Throw in Seamonkey and the existing strategies don't quite cover what we'd like.

Attachments

(1 file, 1 obsolete file)

Thunderbird's build needs are expected to grow in the next development cycle. The ability to implement certain features in Thunderbird's source tree will be very important in implementing new functionality in a timely manner.

Possible features to implement:

  • new task kinds defined in comm_taskgraph
  • new run_as functions for those kinds
  • schema modification - within limits, for example the ability to use a different run as function or a script in a different location
  • new optimization strategies
User Story: (updated)
User Story: (updated)
Depends on: 1592162
Depends on: 1609987

It may be worth while to look at Bug 1568006 and port that back to the m-c copy of taskgraph, as well as look at what we've done with some of our github projects such as fenix (see here.

Attached patch allow_new_kinds.patch (obsolete) — Splinter Review
Needs the rest of bug 1609987.
Attachment #9123848 - Flags: review?(geoff)
Attachment #9123848 - Flags: review?(geoff) → review+
Small update from what was reviewed. 'documentation' needs to
be added to the list of modules to load.
Attachment #9123848 - Attachment is obsolete: true

Pushed by thunderbird@calypsoblue.org:
https://hg.mozilla.org/comm-central/rev/4ca5a41330ff
Allow new task kinds to be defined in c-c. r=darktrojan

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Version: unspecified → 75
Target Milestone: --- → Thunderbird 75.0
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: