)]}'
{
  "commit": "f0a40accfbcca85262bbf2eaec8aa36d594540be",
  "tree": "0f6bef88b22436fa048ce2519580c8c3786b19e7",
  "parents": [
    "0a75645f03fcbdb14c6dfa54206d23e02e7edbd6"
  ],
  "author": {
    "name": "gregce",
    "email": "gregce@google.com",
    "time": "Tue Mar 31 14:11:30 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Mar 31 14:13:03 2020 -0700"
  },
  "message": "Make StarlarkDefinedConfigTransition immutable.\n\nGenerally speaking, it\u0027s not safe for config transitions to keep state because\na transition instance may be shared across multiple rule instances. Rules should\nnot be able to affect each other through shared transitions.\n\nThis particular case removes an event handler that stores errors (like trying\nto load invalid build settings) which the configuration machinery replays later\nto communicate to the user. The risk trajectory is that a transition that fails\non a badly formed rule might repeat the same error for a well-formed rule\nbecuase of the shared state.\n\nThe most likely user-visible output of this problem is non-deterministic build\nerrors on rules using Starlark build settings and transitions. i.e. repeat the\nsame build twice and get different results.\n\nThis is a huge change (apologies), but conceptually straightforward. We simply\nadd an EventHandler parameter to ConfigurationTransition.apply to provide an\nalternative place to record errors. This lifts StarlarkDefinedConfigTransition\nof the burden to define its own.\n\nMost of the hugeness in this change is that the ConfigurationTransition\ninterface is used in many places, so we have to pass / define this parameter\neverywhere. A less invavise alternative could be to use Java interface defaults,\nbut I think the current approach is a better API (and the pain is limited just\nto this change: there\u0027s no real extra API burden as a result).\n\nTesting note: I\u0027m impressed that this change only broke one test:\nStarlarkRuleTransitionProviderTest#testAliasedBuildSetting, and for\nstraightforward reasons. See new comments in ConfigurationResolver for details.\n\nPiperOrigin-RevId: 304043250\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d6c00c7c0440e8270c82dfb56e916c968eab437",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/BUILD",
      "new_id": "41e5d3ceb13d411e24969de7076faf59ffbed12b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "65f99ac86d088f3b733a7b22ac33bbda31256054",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java",
      "new_id": "141c31030528a4c336ec9d6f907acbb4bc9289c1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java"
    },
    {
      "type": "modify",
      "old_id": "b1303d98f465519e00b720e1a2d01143e529be66",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java",
      "new_id": "fcbd92e0dbea21097d7e06e4e2ad37c6835ca544",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java"
    },
    {
      "type": "modify",
      "old_id": "37e671bbe5092fff5c1e196b95765cb58ad474ef",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactory.java",
      "new_id": "643f6fb46a3574ced7ae45d937140bf3ceba0e64",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactory.java"
    },
    {
      "type": "modify",
      "old_id": "9749a4e3e2702fad1dac7f4bda3abf098457bc69",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/HostTransition.java",
      "new_id": "4eca3f37ed01afa7f6197852556bd0861bcb9bd8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/HostTransition.java"
    },
    {
      "type": "modify",
      "old_id": "fa64cedb7929a54c3100b14f6cc04a0dca129082",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/StarlarkDefinedConfigTransition.java",
      "new_id": "48db17dfd9b26407ef622848f8ea325a5aa97dad",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/StarlarkDefinedConfigTransition.java"
    },
    {
      "type": "modify",
      "old_id": "0abfd481f678519f9f565054c60d3d98b17eb187",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransition.java",
      "new_id": "f1c159a64933829bddf40e480e25572ce637f8c1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransition.java"
    },
    {
      "type": "modify",
      "old_id": "cead682b71cc1fecfe282048465d3c67a1716479",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ConfigurationTransition.java",
      "new_id": "fc3b9613d1fe712c283145f3edc9bf0403168c50",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ConfigurationTransition.java"
    },
    {
      "type": "modify",
      "old_id": "6bc2b0fd5885b0f2c6e58693c9d3dbfc20457f77",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/NoTransition.java",
      "new_id": "b8fcaa35b1b329f2c13c7591cd005cfcf99becd9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/NoTransition.java"
    },
    {
      "type": "modify",
      "old_id": "a8ba1f4d0fd5f991bee45dde8e0ebd5a342672cf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/NullTransition.java",
      "new_id": "b2871077ad1aaec25c59d38a952f0f6ed6f221ae",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/NullTransition.java"
    },
    {
      "type": "modify",
      "old_id": "bab9fd2282d91ce4d1743c21539c4c3fc08005be",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java",
      "new_id": "16f95a8708c88455662c0ce0acde4ac930f0a69f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java"
    },
    {
      "type": "modify",
      "old_id": "2fec5f68db29ec0930ee0f3f962f65a4065485c4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java",
      "new_id": "5e630d27279ddc8e29a6d5532c332f54332a10df",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java"
    },
    {
      "type": "modify",
      "old_id": "58297d6766077c86809cf229e0a6d8afc4c058b7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java",
      "new_id": "904ba67c8aa9bbc27bbc716f6ffea04d0b4e01b9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/FunctionTransitionUtil.java"
    },
    {
      "type": "modify",
      "old_id": "64abac5fed8ae69984ac7461b820431d1bd138ba",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkAttributeTransitionProvider.java",
      "new_id": "f4254bdb26a1f87ec80b03c37172e0f4b4cc45ee",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkAttributeTransitionProvider.java"
    },
    {
      "type": "modify",
      "old_id": "123f3ec5ce961cb9753cf17a5dec9faa78d5faef",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleTransitionProvider.java",
      "new_id": "921cc18f6da389cc5f51a2ce680ba729dd5dc478",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkRuleTransitionProvider.java"
    },
    {
      "type": "modify",
      "old_id": "d8743c77adabe4819fa7e3a97922c6976b216c89",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkTransition.java",
      "new_id": "1add6f179cc3ca61ab872b080cad7b52612a4b68",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/skylark/StarlarkTransition.java"
    },
    {
      "type": "modify",
      "old_id": "7dc38b6805ba7d2d1b5c788fb7abbbca77a79e58",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java",
      "new_id": "772f2f4738bf898a39aa13be2e7edddfaec9e346",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionFactory.java"
    },
    {
      "type": "modify",
      "old_id": "4c3b76dc5a7ece74fcb0cd98fba8a872e40da699",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java",
      "new_id": "12e244c81c9710dcac239d626ab785907e372fa0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java"
    },
    {
      "type": "modify",
      "old_id": "895a3cb21784c78149420f9994624e4a37c3e895",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java",
      "new_id": "62d31b82edb7fd5e563ed8f20988f9f02f1415ce",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java"
    },
    {
      "type": "modify",
      "old_id": "ae446f702e1966d547592f6dd435826928414104",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/config/BUILD",
      "new_id": "d076307a892f3be2880f353f329de7b59fa81918",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/config/BUILD"
    },
    {
      "type": "modify",
      "old_id": "cede350886bc7ecb617681de0408a959d07d7c38",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java",
      "new_id": "18b35469bb9a5a6650654e6b328dd2d6129228c6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java"
    },
    {
      "type": "modify",
      "old_id": "b482729da5e6b546c5d3fc239d79cbf35aa35c63",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactory.java",
      "new_id": "aa4f4fc2ff5ac9fd6fb5519885d05a9c9423e50c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactory.java"
    },
    {
      "type": "modify",
      "old_id": "399412d00b5e2191b065a68e1d9179cbfd4704c7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java",
      "new_id": "8084e564b2812c509ae8948136a56e0030adfdfd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/objc/AppleCrosstoolTransition.java"
    },
    {
      "type": "modify",
      "old_id": "b566386a1e3d46feac4a15f267bdd8eed7318fac",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java",
      "new_id": "8f6af9669f66d5f3a9974e1c5f7c8d0603c77607",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java"
    },
    {
      "type": "modify",
      "old_id": "50678b063cf00d81a99f9f45a0c4d425b0b9145e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java",
      "new_id": "f6b094b8de45c91690a30702dd471d7eb998666b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/python/PyRuleClasses.java"
    },
    {
      "type": "modify",
      "old_id": "e0d89b867b6e5ed43759fc2efeb251fd5d3e3254",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/python/PythonVersionTransition.java",
      "new_id": "d505c10e23e7b4823dba58d8ef361697171679c8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/python/PythonVersionTransition.java"
    },
    {
      "type": "modify",
      "old_id": "446d2a28610ffac1524bfbeeaa59a1290d5ab93b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java",
      "new_id": "4ddb6d5174281d7abcb21bb9bb73674b07f4fa59",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java"
    },
    {
      "type": "modify",
      "old_id": "6b8c885254c3b5bcb8a94b982e329dadbf41d9f0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java",
      "new_id": "49fcef71fcf559879a47d217a8a8c40c4a829b6b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java"
    },
    {
      "type": "modify",
      "old_id": "66e4dd9b0104baab6337913caf6d37e6850f03f1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java",
      "new_id": "16c0c3af19ea2f1099877cd161a6c73046829613",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "36143c7ffcd80ae4bafdf5fa489ac7ed3d95230c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java",
      "new_id": "094de9a822a321526039038d68768d261af52d94",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java"
    },
    {
      "type": "modify",
      "old_id": "e82ada520532bbb03a7f5ebd4e2d3fe6385042d5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java",
      "new_id": "bb9fed65ee112c12ff9803cd72cd1e8b700c6ef2",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java"
    },
    {
      "type": "modify",
      "old_id": "4ffaaa18a699fc25a83551ec1dc97ea3ea6772b3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java",
      "new_id": "e2f3cb622ac16a025504fe58f8a4c01be9a242cf",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java"
    },
    {
      "type": "modify",
      "old_id": "95e7f021e911d94fb544d624a61630d523cedf42",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java",
      "new_id": "de5a70678d0ba8870c237115f9d53d09b741536c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java"
    },
    {
      "type": "modify",
      "old_id": "d71fbe732b1025de6d982b54135be7867fc20251",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java",
      "new_id": "f70e71681447040530b439d3c7cbbfa3416cc2f8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "542504f1ce3abd4772b119a0d734a7ff73d690f5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/config/TransitionFactoriesTest.java",
      "new_id": "aee0d3715d172aa0d0c25f7600d4803f8d7cbb76",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/config/TransitionFactoriesTest.java"
    },
    {
      "type": "modify",
      "old_id": "88bbbd1b08528ea6f73456945cc14beb4bebd41d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransitionFactoryTest.java",
      "new_id": "85855b5015eebad80b854501d9addbd909739800",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransitionFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "d804b2f5321c8afd568056b65582ff3acc6994c1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransitionTest.java",
      "new_id": "acc758e1e08a834c7ad39e1c49e2aaac9ddbb87c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingTransitionTest.java"
    },
    {
      "type": "modify",
      "old_id": "78d74f5a24ce2cb1a6ea4b746bd5e6b6a9fb31e3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionTest.java",
      "new_id": "0338df69cc723c862f454aa5ebf34aee52d41c20",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/test/TestTrimmingTransitionTest.java"
    },
    {
      "type": "modify",
      "old_id": "b25d8a8dbd4b567f1e5b97cc618751ab8fadf892",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java",
      "new_id": "c7c8ae3b91c859e615b3a17ba646c43f0b16c197",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "a6140bbd2488641a18639dd91bdbec81b809f61e",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java",
      "new_id": "2fe73f460e30a4a8c4f14faa31f6b9db5743558c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/AttributeTest.java"
    },
    {
      "type": "modify",
      "old_id": "027d59b5f742927aebd3e4da9ccc26e660d819f4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java",
      "new_id": "7b179ef23d6246619d27da659b9279eddf2300ce",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java"
    },
    {
      "type": "modify",
      "old_id": "1c7b7b37868f81395de1aa76c05712fc7b6840ad",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD",
      "new_id": "6ebcaf2b49b29b28aedeac97746f44c2f704c6ed",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD"
    },
    {
      "type": "modify",
      "old_id": "9287511f0a09bf9b7fb3467bce8d5e5c83d3f7b4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java",
      "new_id": "55f18daeae5fd40352a47efa8908c3a4adf12776",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java"
    },
    {
      "type": "modify",
      "old_id": "c984d1afcfe1c64607a1990d96acfcd7dd2c568f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java",
      "new_id": "92d872dd3fa89a287df5537774c3efe97d0adeec",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/query2/testutil/PostAnalysisQueryTest.java"
    },
    {
      "type": "modify",
      "old_id": "c0be600fd9b3a2de8fe3450fde63d619322a9074",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java",
      "new_id": "4e1297e5f130f15f00acbdab91af0d9f85ee3578",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTransitionFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "392eb236c4e869167eec92f197ef5a0f28c26dff",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagManualTrimmingTest.java",
      "new_id": "00d22443b5c99107987757a349b524ef754372fa",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagManualTrimmingTest.java"
    },
    {
      "type": "modify",
      "old_id": "60daf41d286377c2c5812716353634aea0e74ead",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java",
      "new_id": "8aa98f49b8b2c8566092846a0dd944db999ddd28",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "db77ed6458da388e19dcb2d2805e407ea252c299",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java",
      "new_id": "d5eb832d91daf05543cad28dc1d7506173816932",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java"
    },
    {
      "type": "modify",
      "old_id": "6ef148573f7bd38520a381aa82684c4bbce589fc",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/trimming/BUILD",
      "new_id": "0f739280c6dd25b5a16ef3c24b85f075c13e795f",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/trimming/BUILD"
    },
    {
      "type": "modify",
      "old_id": "4a8bec9d94e7cff8c73ba3c331e1849cdb4086d3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java",
      "new_id": "bc55bcbe61af24ebce02e5755abcd804f174e393",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java"
    }
  ]
}
