- Bug 1147951, part 2 - Remove unused JAVASCRIPT definition from nsJSEnvironment.cpp. r=baku (607909217) - Bug 1147951, part 1 - Remove uses of JAVASCRIPT2 from Console.cpp. r=baku (46cde7cfa) - pointer style (5504c22d4) - Bug 1165384 - Add a typedef for the statistics phase table; r=sfink (484a24237) - Bug 1165385 - Remove the rarely used !fullFormat mode of MOZ_GCTIMER; r=sfink (ab8b17eb1) - Bug 1165390 - Make the detailed statistics formatting methods have consistent names; r=sfink (55c5db543) - Bug 1165410 - Reimplement GC statistics JSON output formatter; r=sfink (04c13c874) - Bug 1166789 - Cleanup javascript.options.mem.log formatting; r=sfink, r=mccr8 (f23b455b4) - Bug 1171451 - Use the correct type for the argv argument to NS_CreateJSArgv and the nsJSArgArray constructor; r=jst (edfa21a59) - Bug 886459, part 1 - Remove unused includes of nsIJSRuntimeService.h. r=bholley (bbc277ac1) - Bug 886459, part 2 - Remove context callbacks from XPCJSRuntime. r=bholley (2c3c8515a) - Bug 886459, part 3 - Remove simple uses of nsIJSRuntimeService to get the JSRuntime. r=bholley (ff5bfe304) - pointer style (2ea264afd) - Bug 1169457 - Add null check in OnWrapperDestroy. r=jimm (741739513) - Bug 886459, part 4 - Remove nsIJSRuntimeService. r=bholley,aklotz (61563f53b) - Bug 1176642 - Use absolute_import in mach_commands.py files; r=glandium (a9fcb3b3f) - Bug 1176642 - Defer import of autotry and pprint; r=chmanchester (de40855cb) - Bug 1178772 - Add check_macroassembler_style.py: Verify that each MacroAssembler declaration maps to all its definitions. r=h4writer (fd406593a) - Bug 1152556 - Add moz.build bugzilla metadata in dom/media. r=kinetik (fa2ffa121) - Bug 1152556 - Add moz.build bugzilla metadata in dom/media webrtc. r=abr (d208b839a) - re-enable peerconnection (42e8c412b) - Bug 1152538 - Enable WebRTC identity, r=jesup (13a47adcb) - Bug 1231123 - Simplify LaunchApp on BSDs by dropping fork/exec version. r=jld (c35e6e36f) - bug 1171120 - Fix mtransport+signalling to build on iOS. r=ekr (7034b20ab) - Bug 1150609 Patch 1 WebRTC SDP - add tmmbr to offer. r=jesup (52ca72d09) - Bug 1150609 Patch 2 - WebRTC enable tmmbr r=jesup (d59c6adb9) - Bug 1150609 Patch 3 - WebRTC enable tmmbr unittest changes. r=jesup (eeffed826) - Bug 1087161 - Upgrading B2G toolchain to gcc-4.9 (851194ca0)
Taskcluster + Gecko Integration
Directory structure:
-
tasks/ : All task definitions
-
tests/ : Tests for the mach target internals related to task graph generation
-
scripts : Various scripts used by taskcluster docker images and utilities these exist in tree primarily to avoid rebuilding docker images.
Task conventions
In order to properly enable task reuse there are a small number of conventions and parameters that are specialized for build tasks vs test tasks. The goal here should be to provide as much of the power as taskcluster but not at the cost of making it easy to support the current model of build/test.
All tasks are in the YAML format and are also processed via mustache to allow for greater customizations. All tasks have the following templates variables:
-
docker_image: Helper for always using the latest version of a docker image that exist in tree.{{#docker_image}}base{{/docker_image}}Will produce something like (see the docker folder):
quay.io/mozilla.com/base:0.11 -
from_now: Helper for crafting a JSON date in the future.{{#from_now}}1 year{{/from_now}}Will produce:
2014-10-19T22:45:45.655Z -
now: Current time as a json formatted date.
Build tasks
By convention build tasks are stored in tasks/builds/ the location of
each particular type of build is specified in job_flags.yml (and more
locations in the future)
Task format
To facilitate better reuse of tasks there are some expectations of the build tasks. These are required for the test tasks to interact with the builds correctly but may not effect the builds or indexing services.
# This is an example of just the special fields. Other fields that are
# required by taskcluster are omitted and documented on http://docs.taskcluster.net/
task:
payload:
# Builders usually create at least two important artifacts the build
# and the tests these can be anywhere in the task and also may have
# different path names to include things like arch and extension
artifacts:
# The build this can be anything as long as its referenced in
# locations.
'public/name_i_made_up.tar.gz': '/path/to/build'
'public/some_tests.zip': '/path/to/tests'
extra:
# Build tasks may put their artifacts anywhere but there are common
# resources that test tasks need to do their job correctly so we
# need to provide an easy way to lookup the correct aritfact path.
locations:
build: 'public/name_i_made_up.tar.gz'
tests: 'public/some_tests.zip'
Templates properties
-
repository: Target HG repository (ex: https://hg.mozilla.org/mozilla-central)
-
revision: Target HG revision for goanna
-
owner: Email address of the committer
Test Tasks
By convention test tasks are stored in tasks/tests/ the location of
each particular type of build is specified in job_flags.yml (and more
locations in the future)
Template properties
-
repository: Target HG repository (ex: https://hg.mozilla.org/mozilla-central)
-
revision: Target HG revision for goanna
-
owner: Email address of the committer
-
build_url: Location of the build
-
tests_url: Location of the tests.zip package
-
chunk: Current chunk
-
total_chunks: Total number of chunks
Developing
Running commands via mach is the best way to invoke commands testing works a little differently (I have not figured out how to invoke python-test without running install steps first)
mach python-test tests/
Examples:
Requires taskcluster-cli.
mach taskcluster-trygraph --message 'try: -b do -p all' \
--head-rev=33c0181c4a25 \
--head-repository=http://hg.mozilla.org/mozilla-central \
--owner=jlal@mozilla.com | taskcluster run-graph
Creating only a build task and submitting to taskcluster:
mach taskcluster-build \
--head-revision=33c0181c4a25 \
--head-repository=http://hg.mozilla.org/mozilla-central \
--owner=user@domain.com tasks/builds/b2g_desktop.yml | taskcluster run-task --verbose
mach taskcluster-tests --task-id=Mcnvz7wUR_SEMhmWb7cGdQ \
--owner=user@domain.com tasks/tests/b2g_mochitest.yml | taskcluster run-task --verbose