)]}'
{
  "log": [
    {
      "commit": "cb13b5d1bde9a45316271c61fd23a22c35ebf609",
      "tree": "106fae4f1411b188d820c7fea564f43a45067e5c",
      "parents": [
        "e3c11d0aad4e1efa17e6dbade960f6041ecd602d"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Jul 13 11:03:38 2023 +0100"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Fri Jul 14 12:13:28 2023 +0100"
      },
      "message": "Refactor dexpreopt for boot jars to make it flexible to config changes.\n\nIn the past, dexpreopt for boot jars was very inflexible, and it was\nincredibly hard to make a change that is as simple as adding a jar to a\nboot image. Boot image generation was handled by\n\"platform_bootclasspath\" and \"bootclasspath_fragment\" separately. This\ncaused not only code duplication but also the inflexiblity as such a\ndesign did not fit today\u0027s use cases, where a boot image may take jars\nfrom multiple mainline modules and the platform, and a mainline module\ncan contribute to multiple boot images. The design casued a huge\nmaintenance burden as any change to the boot image cost multi-week\nefforts.\n\nIn recent years, efforts have been made to improve this a bit by a bit.\nThis change is another step towards making dexpreopt reasonable.\n\nAfter this change, all boot images are generated by \"dex_bootjars\",\nwhich is in build/soong and is therefore available on both the full\nsource tree and the thin manifest (master-art). The change decouples\nprofile generation/extraction from boot image generation. Profiles for\nmainline modules are still handled by \"bootclasspath_fragment\"\nbecause they need to be packed into APEXes when building mainline\nmodules and extracted from APEXes whem building the system image from\nprebuilt modules. Boot images are not handled by\n\"bootclasspath_fragment\" anymore.\n\nBug: 290583827\nTest: m (all existing tests are still passing)\nTest: Manually checked that the boot images are exactly the same as\n  before.\nChange-Id: Ib5a5f401bee334ffcab5c26618e0c8888b84575a\n"
    },
    {
      "commit": "b879620ca84622fcdcfc003b294c1c69b7132f7b",
      "tree": "03628d8a34c08b9c8bc5d3e84e02e8fe230f4dcf",
      "parents": [
        "da4a78bf40a719e22205f8979c0ed47780acc8fd"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Mar 06 19:16:48 2023 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Mar 16 08:46:29 2023 +0000"
      },
      "message": "Revert^2 \"Generate a boot image extension for mainline BCP...\n\nRevert submission 2465993-boot-image-mainline-revert\n\nReason for revert: Relanding the changes\n\nReverted changes: /q/submissionid:2465993-boot-image-mainline-revert\n\nChange-Id: Ie611cf3a1ff4be7a7beab164f69b4186c474be5c\n"
    },
    {
      "commit": "db160c078e23951d6e8d3d86ebdfdc71d31b0eb4",
      "tree": "ed6b8714084a0a94906c6ff22a5ad7db32a330e1",
      "parents": [
        "3830308fb8be13df66437b9798122789c85c7e37"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Mar 02 12:56:13 2023 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Mar 02 13:01:59 2023 +0000"
      },
      "message": "Revert \"Generate a boot image extension for mainline BCP jars.\"\n\nThis reverts commit 3830308fb8be13df66437b9798122789c85c7e37.\n\nReason for revert: Caused various SH regressions.\n\nBug: 271036161\nChange-Id: Ia785324f83006a095e262c251b24d49fd778427e\n"
    },
    {
      "commit": "3830308fb8be13df66437b9798122789c85c7e37",
      "tree": "28ac3371a82fb36bbea433789c73b29b6b75248d",
      "parents": [
        "d49324dadb1fc38c363c0bc7ab28afacdf71b742"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Mon Feb 20 16:30:01 2023 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Fri Feb 24 17:14:08 2023 +0000"
      },
      "message": "Generate a boot image extension for mainline BCP jars.\n\nBug: 269230245\nTest: m\nTest: atest art_standalone_dexpreopt_tests\nChange-Id: I253c30d938eee2cf2549ec2338425d53956e7cbb\n"
    },
    {
      "commit": "85d8bdc10e08d992fccee67b4708d728d5bc8705",
      "tree": "596a4c37a799c832ccb43c9226df29421271b36c",
      "parents": [
        "538911b686b584e833a0f0d27e2419cdb0f33ddc"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Oct 07 11:46:31 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Oct 07 11:48:17 2022 +0100"
      },
      "message": "Properly skip TestBootImageConfig on non-Linux platforms\n\nBug: 245956352\nTest: m nothing\nChange-Id: I6402573b378eee77d802829ec5dfacf4c514d3b8\n"
    },
    {
      "commit": "3a56f5e0e0fdf366d34d661913bff708315bd951",
      "tree": "494e5af419b4190b4cedb5434badba64b8e28574",
      "parents": [
        "a44a4e079ff614550604fa48784a401f10c952cf"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Oct 06 21:38:24 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Oct 06 21:39:21 2022 +0100"
      },
      "message": "Skip TestBootImageConfig on non-Linux platforms\n\nBug: 245956352\nTest: m nothing\nChange-Id: I4c0bfd24febd308d8efa62da9603795a7e5ed222\n"
    },
    {
      "commit": "8eb4573b232accd19c9cd3b9d1b99572d4fe2c16",
      "tree": "835534032d6d317f2a8eb312b4a8c5fad416ef5d",
      "parents": [
        "741355826fc314796b3e5ca4cb89e4d196e96b20"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 04 19:03:31 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Oct 06 11:06:51 2022 +0100"
      },
      "message": "Test bootImageConfig/Variant fields\n\nMost of the fields in the bootImageConfig/Variant structs are assigned\ninside a Once func so are guaranteed to be only set once. However, some\nare assigned outside. This change adds comprehensive tests for those\nstructs and verifies that the constant fields are preserved and the\nmutated fields have the correct value.\n\nThe check for the constant fields is added in a new TestBootImageConfig\ntest.\n\nThe check for the mutated fields is added into\nTestSnapshotWithBootclasspathFragment_ImageName as that test checks an\nart bootclasspath_fragment in the following configurations:\n* source on its own\n* prebuilt on its own\n* source and prebuilt with source preferred\n* source and prebuilt with prebuilt\n\nIt reveals a couple of interesting facts:\n* All the *installs fields are set to the same value irrespective of\n  whether the source or prebuilt is preferred. The information is\n  constructed solely from information already within the\n  bootImageConfig/Variant and so can be moved within Once.\n\n* The licenseMetadataFile is incorrect when prebuilt is preferred.\n  That is due to both the source and prebuilt modules setting it and\n  the source module always wins as the source module depends on the\n  prebuilt so always runs its GenerateAndroidBuildActions after it.\n\nThose issues will be cleaned up in following changes.\n\nBug: 245956352\nTest: m nothing\nChange-Id: If917cfbcb3b1c842a8682d51cc1ee1fed1c51add\n"
    }
  ]
}
