Bug 1577883 Comment 2 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

The patch above doesn't work unfortunately.

The actual command `./mach release-history --product=Firefox -b mozilla-central` executes to completion (minus the last part in `python/mozbuild/mozbuild/telemetry.py` but that is handled in the patch for bug 1577603).

The issue is when `./mach taskgraph full` is run, to verify the integrity of the taskgraph, the following is seen:

```
(python35_development) egao@egao-44538:~/src/mozilla-central$ ./mach taskgraph full
 0:00.92 Loading graph configuration.
 0:01.02 Starting new HTTPS connection (1): index.taskcluster.net
 0:02.32 Loading kinds
 0:03.28 Generating full task set
 0:03.36 Error loading tasks for kind addon:
Traceback (most recent call last):
  File "/Users/egao/src/mozilla-central/taskcluster/mach_commands.py", line 379, in show_taskgraph
    tg = getattr(tgg, graph_attr)
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 151, in full_task_graph
    return self._run_until('full_task_graph')
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 351, in _run_until
    k, v = self._run.next()
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 263, in _run
    new_tasks = kind.load_tasks(parameters, list(all_tasks.values()))
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 77, in load_tasks
    for task_dict in transforms(trans_config, inputs)]
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1981, in check_run_task_caches
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1922, in check_task_dependencies
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1910, in check_task_identifiers
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1893, in chain_of_trust
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1735, in build_task
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1705, in add_index_routes
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1441, in validate
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1418, in task_name_from_label
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1378, in set_defaults
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1357, in set_implementation
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/job/__init__.py", line 288, in make_task_description
    configure_taskdesc_for_run(config, job, taskdesc, job['worker']['implementation'])
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/job/__init__.py", line 347, in configure_taskdesc_for_run
    job['run']['using'], worker_implementation, job['label']))
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/util/schema.py", line 34, in validate_schema
    raise Exception('\n'.join(msg) + '\n' + pprint.pformat(obj))
Exception: In job.run using u'mach'/u'docker-worker' for job u'addon-tps-xpi':
expected a tuple for dictionary value @ data[u'mach']
{u'comm-checkout': False,
 u'mach': u'tps-build --dest tps-out',
 u'sparse-profile': u'tps',
 u'using': u'mach',
 u'workdir': u'/builds/worker'}
(python35_development) egao@egao-44538:~/src/mozilla-central$
```

I suspect this is due to the fact that our `voluptuous` library is vendored and that version is only compatible with python 2.7.

In order to vendor the python 3 version, I think `./mach vendor` needs to support python3, but in order to support python3 it must first have some work done to it to support different python versions.

Since that's a rather large task, it will be handled in a separate bug parallel to this bug and this bug will be revisited when the necessary components are in place.
The patch above doesn't work unfortunately.

The actual command `./mach release-history --product=Firefox -b mozilla-central` executes to completion (minus the last part in `python/mozbuild/mozbuild/telemetry.py` but that is handled in the patch for bug 1577603).

The issue is when `./mach taskgraph full` is run, to verify the integrity of the taskgraph, the following is seen:

```
(python35_development) egao@egao-44538:~/src/mozilla-central$ ./mach taskgraph full
 0:00.92 Loading graph configuration.
 0:01.02 Starting new HTTPS connection (1): index.taskcluster.net
 0:02.32 Loading kinds
 0:03.28 Generating full task set
 0:03.36 Error loading tasks for kind addon:
Traceback (most recent call last):
  File "/Users/egao/src/mozilla-central/taskcluster/mach_commands.py", line 379, in show_taskgraph
    tg = getattr(tgg, graph_attr)
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 151, in full_task_graph
    return self._run_until('full_task_graph')
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 351, in _run_until
    k, v = self._run.next()
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 263, in _run
    new_tasks = kind.load_tasks(parameters, list(all_tasks.values()))
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/generator.py", line 77, in load_tasks
    for task_dict in transforms(trans_config, inputs)]
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1981, in check_run_task_caches
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1922, in check_task_dependencies
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1910, in check_task_identifiers
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1893, in chain_of_trust
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1735, in build_task
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1705, in add_index_routes
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1441, in validate
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1418, in task_name_from_label
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1378, in set_defaults
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/task.py", line 1357, in set_implementation
    for task in tasks:
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/job/__init__.py", line 288, in make_task_description
    configure_taskdesc_for_run(config, job, taskdesc, job['worker']['implementation'])
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/transforms/job/__init__.py", line 347, in configure_taskdesc_for_run
    job['run']['using'], worker_implementation, job['label']))
  File "/Users/egao/src/mozilla-central/taskcluster/taskgraph/util/schema.py", line 34, in validate_schema
    raise Exception('\n'.join(msg) + '\n' + pprint.pformat(obj))
Exception: In job.run using u'mach'/u'docker-worker' for job u'addon-tps-xpi':
expected a tuple for dictionary value @ data[u'mach']
{u'comm-checkout': False,
 u'mach': u'tps-build --dest tps-out',
 u'sparse-profile': u'tps',
 u'using': u'mach',
 u'workdir': u'/builds/worker'}
(python35_development) egao@egao-44538:~/src/mozilla-central$
```

I suspect this is due to the fact that our `voluptuous` library is vendored.

In order to vendor the python 3 version, I think `./mach vendor` needs to support python3, but in order to support python3 it must first have some work done to it to support different python versions.

Since that's a rather large task, it will be handled in a separate bug parallel to this bug and this bug will be revisited when the necessary components are in place.

Back to Bug 1577883 Comment 2