Closed Bug 1337360 Opened 9 years ago Closed 9 years ago

Enforce use of dashes in YAML schemas

Categories

(Firefox Build System :: Task Configuration, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla55

People

(Reporter: dustin, Assigned: dustin)

Details

Attachments

(3 files, 1 obsolete file)

It's easier to use YAML if you know that identifiers look-like-this and not_like_this muchLessLikeThis. Let's enforce that, and adjust the few uses of interCaps and underscores to suit.
Comment on attachment 8834549 [details] Bug 1337360: enforce use of dashes in YAML schemas; https://reviewboard.mozilla.org/r/110434/#review112062 ::: taskcluster/taskgraph/transforms/balrog.py:87 (Diff revision 1) > > label = job.get('label', "balrog-{}".format(dep_job.label)) > > upstream_artifacts = [{ > - "taskId": {"task-reference": "<beetmover>"}, > - "taskType": "beetmover", > + "task-id": {"task-reference": "<beetmover>"}, > + "task-type": "beetmover", I'm not really a fan of this conversion, I understand why the overall yaml should use dashes, but modifying transform specificity in terms of what is *actually* required outside of the transforms makes source traceability harder. e.g. I search for taskId and I find few/one use, and need to trace 'task-id' after that. I'll need to think on it, or be convinced a bit more.
That's a pretty convincing argument :) One option may be to whitelist certain fields like upstreamArtifacts, with a comment on the whitelist indicating that `-` is preferred, but it's OK to use camel case or underscores for cases where the data structure is handed to an external service. I'll sit on this for a while and think about it.
Attachment #8834549 - Flags: review?(bugspam.Callek) → review-
Attachment #8834549 - Attachment is obsolete: true
Comment on attachment 8850121 [details] Bug 1337360: check for schema elements that aren't dashed-identifiers, with whitelist; https://reviewboard.mozilla.org/r/122816/#review125480 ::: taskcluster/taskgraph/util/schema.py:181 (Diff revision 1) > + Operates identically to voluptuous.Schema, but applying some taskgraph-specific checks > + in the process. > + """ > + schema = voluptuous.Schema(*args, **kwargs) > + check_schema(schema) > + return schema My only concern here is someone using voluptuous.Schema instead of this Schema function. I'm not sure of any good way to rectify though...
Attachment #8850121 - Flags: review?(bugspam.Callek) → review+
Attachment #8850122 - Flags: review?(bugspam.Callek) → review+
Attachment #8850123 - Flags: review?(bugspam.Callek) → review+
Pushed by dmitchell@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cd66ec07e1a1 check for schema elements that aren't dashed-identifiers, with whitelist; r=Callek https://hg.mozilla.org/integration/autoland/rev/14874597101b move chainOfTrust into extra; r=Callek https://hg.mozilla.org/integration/autoland/rev/12ba77d6b7d1 remove unnecessary schema for attributes; r=Callek
Product: TaskCluster → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: