Taskcluster¶
Taskcluster is used to automate the data generation for elmo.
Tasks that elmo is supposed to pick up and analyze need to publish to a well-known route on Pulse.
Note
The actual route is TBD. project.l10n.elmo.v1
?
The artifact that the worker picks up needs to be called elmo.json
.
Note
Do we need the public/
directory in artifacts?
From this file, the worker will find:
The version of the file, currently
"1.0"
.The version of compare-locales that generated the data, as string.
The repository (optional).
The list of generated comparisons.
Each artifact will contain data for all locales for a Tree, and may contain data for more than one Tree.
{
"version": "1.0",
"compare-locales": "8.0.0",
"repository": "https://hg.mozilla.org/l10n/gecko-strings/",
"comparisons": []
}
If the repository with the configurations is also the repository that
controls the Taskcluster automation, the information for that repository
is deduced from the task_definition["metadata"]["source"]
metadata
from the task.
Each entry in comparisons
is an object like
{
"locale": "ab-CD",
"config": "_configs/browser.toml",
"artifact": "compares/browser.ab-CD.json",
"revisions": {
"/l10n/gecko-strings/": "40chars",
"/l10n-central/ab-CD/": "40chars"
},
"summary": {
"errors": 0,
"warnings": 0,
"missing": 2914,
"missing_w": 18651,
"report": 0,
"obsolete": 0,
"changed": 8493,
"changed_w": 46266,
"unchanged": 1093,
"unchanged_w": 1419,
"keys": 877
}
}
The locale
value is a BCP47 locale code, config
is a local path
inside the repository. artifact
is the name of an artifact on the task
containing the detail compare-locales data as JSON. revisions
holds the
full hash of the revision of each repository that went into this comparison.
The keys are resolved against the repository url to get the full repository
location. summary
is the full summary data from compare-locales.
Note
In the case of a monorepo, should we deduce the revision from the source metadata?
Discovering compare-locales¶
One downside of distributed automation for elmo is that each individual automation needs to be updated when we want a new version of compare-locales. How can we make this discoverable?