I made a set of CLs to test out this idea. Couple questions after making them:
I decided to make the property a recipe module property. I don't think this is used very widely yet, but it does make sense IMO.
https://chromium-review.googlesource.com/c/chromium/tools/build/+/1152426 is the build side CL. I was wondering if it's ever possible to have more than one bot_config for a given build? I don't think so, but I realized that technically, since there's a bot_config object being passed around, it could be switched out during the build right? I vaguely remember there being a precedent of this happening before, does anyone know?
https://chromium-review.googlesource.com/c/chromium/src/+/1152425 is the source side CL. One question I had was if the "properties_j" buildbucket setting would properly merge together multiple settings for the same entry. If I have two mixins which both set "$build/chromium_tests:{<blah>}", what happens? I'm afraid it doesn't do any sort of intelligent merging here, which would be very problematic.
iannucci@ said that buildbucket won't merge configs together. This is a showstopper for this change, since we won't be able to apply more than one config value in the chromium_tests specific properties.
We can make them general build properties; I'm a bit opposed to that personally, as it further clutters up the properties set in a build.
Ah sorry, buildbucket doesn’t not merge JSON objects at different levels in the same property. Indeed Skylark will solve the problem and property/mixin merging will be deleted from buildbucket
FYI, I'm working on bug 880973 more than this one. That migrates swarming_dimensions, which is part of this bug. I'll do this eventually, just not immediately.
Comment 1 by martiniss@chromium.org
, Jul 26