)]}'
{
  "commit": "277e5dc36e0a8771ab4c508afdbfe442ffd4cbee",
  "tree": "7887fa76db1d8656672d2a7b07834c910907becc",
  "parents": [
    "04acb6d25584b7ee42617bf998903bd768b2209b"
  ],
  "author": {
    "name": "Dennis Shen",
    "email": "dzshen@google.com",
    "time": "Tue Jan 23 18:01:52 2024 +0000"
  },
  "committer": {
    "name": "Dennis Shen",
    "email": "dzshen@google.com",
    "time": "Wed Jan 24 02:18:52 2024 +0000"
  },
  "message": "Restructure aconfig repo to be a cargo workspace with many crates\n\nPreviously, aconfig repo is the root directory of aconfig binary crate,\nbut it also hosts printflags crate inside, and there is no cargo support\nfor printflags binary crate. In addition, with more aconfig development,\nmore crates are being added to this repo. Thus this repo should be\nconfigured as a Cargo workspace with multiple crates rather than a\nsingle crate.\n\nNote the top level Cargo.toml file specifies the crates this workspace\ncarries:\n(1) aconfig_protos: the proto library crate that will be used by many other\ncrates such as aconfig binary crate and printflags binary crate\n(2) aconfig: the aconfig binary crate\n(3) printflags: the printflags binary crate\n\n(1) aconfig_protos crate setup:\n\nInside aconfig_protos dir we set up the aconfig_protos crate, the\npreviously src/proto.rs is now aconfig_protos/src/lib.rs, the build.rs\nis carried over to this crate.\n\n(2) aconfig binary crate setup:\n\nNotice its Cargo.toml file claims package dependency on aconfig_protos\ncrate. It no longer carries proto related module and build.rs file.\n\n(3) printflags binary crate setup:\n\nSimilary, notice that in its Cargo.toml file, it claims package\ndependency on aconfig_protos crate.\n\nWith this setup, we can Cargo build/test each crate individually when\ninside a specific crate dir. But we can also run Cargo build/test at\nrepo root level, which will build/test all the crates in this workplace.\n\nThis is the structuring cl. The next cl is to move storage modules into\nits own library crate. This storage file library crate will be used by\nboth aconfig binary crate as well as flag read library crate (to be\ncreated as another new crate here).\n\nBug: b/321984352\nTest: top and individual crate dir level Cargo build/test, m each\nindividual targets\n\nChange-Id: I75833f4997f7ee554ff6c1557df9ac87f62b2732\nMerged-In: I75833f4997f7ee554ff6c1557df9ac87f62b2732\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b58e94631b9a2805da8393d5e7ed44ec16c585e",
      "old_mode": 33188,
      "old_path": "tools/aconfig/Cargo.toml",
      "new_id": "8d93261934fe1f236ce5fa03350c4e9d4dcde5c1",
      "new_mode": 33188,
      "new_path": "tools/aconfig/Cargo.toml"
    },
    {
      "type": "rename",
      "old_id": "d5b5b8fe371311670fc8aff729e24dac1dad9a65",
      "old_mode": 33188,
      "old_path": "tools/aconfig/Android.bp",
      "new_id": "3be456c97f7bfd0451358ce51a174e1118cc2fee",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/Android.bp",
      "score": 85
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01ad8c67604ebc9ccec1f06aa911d0b79e471106",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/Cargo.toml"
    },
    {
      "type": "rename",
      "old_id": "1279d8e7fae96f778b80c04933c37d437d38306d",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/codegen/cpp.rs",
      "new_id": "cd71b10d522bb04613b37c6e6687f2202eb90cc0",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/codegen/cpp.rs",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "78e892b479f5e4f13834ccba2575831f71cb14a4",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/codegen/java.rs",
      "new_id": "7ce1d51a4a5162d6a9c46e7aad7b018c09dac4ce",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/codegen/java.rs",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "64ffa8b3796d6550245ef28e9929f9c56601d8ca",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/codegen/mod.rs",
      "new_id": "7b2336f987435918aa5a1f16fc922ea8f1150714",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/codegen/mod.rs",
      "score": 86
    },
    {
      "type": "rename",
      "old_id": "8a88ffecc72b3983b83a71a720ff57fc82d82608",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/codegen/rust.rs",
      "new_id": "33c3d376330a9ec87ed9b01c4439603015290b88",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/codegen/rust.rs",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "a35ad08730c052a60f8d43f63b082564c0ae8bd9",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/commands.rs",
      "new_id": "93bc436fd882e186e0b1b513912fe5c8a983680d",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/commands.rs",
      "score": 95
    },
    {
      "type": "rename",
      "old_id": "37368eec1a80d5f29216839e873b55f93407e14f",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/dump.rs",
      "new_id": "12352f99f893a053ca0c63e090dd7e2b6add3c09",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/dump.rs",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "120e98caa7292e85ba3a3f45d14b11fddf73e89c",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/main.rs",
      "new_id": "30a7e9db921a905fc56fe8cc0a1d52861954a68b",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/main.rs",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "3545700b6a42a1d0df232dcf99d5660335b27920",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/storage/flag_table.rs",
      "new_id": "3545700b6a42a1d0df232dcf99d5660335b27920",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/storage/flag_table.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "45f5ec0c084215cf604f50009382fa8f46cac477",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/storage/flag_value.rs",
      "new_id": "3c5bb17384ef47d61ce9a1914df562857847263f",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/storage/flag_value.rs",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "b4a8b5e5aa7c8f2fd4c0f9807a496ecfdb66014a",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/storage/mod.rs",
      "new_id": "4f2dc81a03048f621751b3c5507a0cef701c2562",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/storage/mod.rs",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "40362340e09ed8dc770a400297ae2f649a1663f0",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/storage/package_table.rs",
      "new_id": "40362340e09ed8dc770a400297ae2f649a1663f0",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/storage/package_table.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "cbb95b8ef09dfe174539fcff831c11ec0b29561c",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/test.rs",
      "new_id": "7b5318d2e0f4cd0d7f6d2224618688b7779d318d",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/src/test.rs",
      "score": 97
    },
    {
      "type": "rename",
      "old_id": "933d6a77cb44368f6865979685e041e87efb9d43",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/FakeFeatureFlagsImpl.java.template",
      "new_id": "933d6a77cb44368f6865979685e041e87efb9d43",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "5e67b13a7965b9fcb7c5f3173503a7626e210369",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/FeatureFlags.java.template",
      "new_id": "5e67b13a7965b9fcb7c5f3173503a7626e210369",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/FeatureFlags.java.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "28baa41d5970f413b0329a7257122a5d93efdbbe",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/FeatureFlagsImpl.java.template",
      "new_id": "28baa41d5970f413b0329a7257122a5d93efdbbe",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "34b81899acc962a05e562aee63b022029e4b998f",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/Flags.java.template",
      "new_id": "34b81899acc962a05e562aee63b022029e4b998f",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/Flags.java.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0f7853e4055130c35f5ae220eb8e7748ccaeca53",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/cpp_exported_header.template",
      "new_id": "0f7853e4055130c35f5ae220eb8e7748ccaeca53",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/cpp_exported_header.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "4bcd1b75818dc87a58f2304212ba6eb4bf4b877e",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/cpp_source_file.template",
      "new_id": "4bcd1b75818dc87a58f2304212ba6eb4bf4b877e",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/cpp_source_file.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "f9a28290334187e9b200cbe6884f534f01ce8a2a",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/rust.template",
      "new_id": "f9a28290334187e9b200cbe6884f534f01ce8a2a",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/rust.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "d01f40aab7b4de09245a56089d99f606811085b3",
      "old_mode": 33188,
      "old_path": "tools/aconfig/templates/rust_test.template",
      "new_id": "d01f40aab7b4de09245a56089d99f606811085b3",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/templates/rust_test.template",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "ea71b7e52af4a67543f068153d8e2550dca8148c",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/AconfigHostTest.java",
      "new_id": "ea71b7e52af4a67543f068153d8e2550dca8148c",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/AconfigHostTest.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "7e76efba3c1413eb333e6c01b85e10ce89c14468",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/AconfigTest.java",
      "new_id": "7e76efba3c1413eb333e6c01b85e10ce89c14468",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/AconfigTest.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "04002e62418a22128e5b44c061b094674d5b5e26",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/AndroidManifest.xml",
      "new_id": "04002e62418a22128e5b44c061b094674d5b5e26",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/AndroidManifest.xml",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "d6eab4336f58ced7cdc4405eca9a6641b47be8ce",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_exported_mode_test.cpp",
      "new_id": "d6eab4336f58ced7cdc4405eca9a6641b47be8ce",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_exported_mode_test.cpp",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "4b480471b55051131aec1b4f3c2941c0cc8ad5ea",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_exported_mode_test.rs",
      "new_id": "4b480471b55051131aec1b4f3c2941c0cc8ad5ea",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_exported_mode_test.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0dec481cedda836b1a71a2384961eaa628823095",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_force_read_only_mode_test.cpp",
      "new_id": "0dec481cedda836b1a71a2384961eaa628823095",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_force_read_only_mode_test.cpp",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "4f05e26add352ecb4ea359db69bff96011294e57",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_force_read_only_mode_test.rs",
      "new_id": "4f05e26add352ecb4ea359db69bff96011294e57",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_force_read_only_mode_test.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "e1fb8e5a0903c43e2a7726ad65d59adc588c1fce",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_prod_mode_test.rs",
      "new_id": "e1fb8e5a0903c43e2a7726ad65d59adc588c1fce",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_prod_mode_test.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0dec481cedda836b1a71a2384961eaa628823095",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_test.cpp",
      "new_id": "0dec481cedda836b1a71a2384961eaa628823095",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_test.cpp",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "a08fbab7f681aa732034c36d3cd20e31389202ba",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_test_mode_test.rs",
      "new_id": "a08fbab7f681aa732034c36d3cd20e31389202ba",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_test_mode_test.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "b3cf7104ec3853f928a4158bc124907b7652c26d",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/aconfig_test_test_variant.cpp",
      "new_id": "b3cf7104ec3853f928a4158bc124907b7652c26d",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/aconfig_test_test_variant.cpp",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "2efb4632d49c509e580cb1994badfde21df5982c",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/first.values",
      "new_id": "2efb4632d49c509e580cb1994badfde21df5982c",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/first.values",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "5eb505669b794d7c7421a5095323ad8c92696d58",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/read_only_test.aconfig",
      "new_id": "5eb505669b794d7c7421a5095323ad8c92696d58",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/read_only_test.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "349c7aa666cfb63ef96dd7ba01fb50ef9e062ea7",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/read_only_test.values",
      "new_id": "349c7aa666cfb63ef96dd7ba01fb50ef9e062ea7",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/read_only_test.values",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "aa09cf6a560b49221c228d1a01163850d0973423",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/second.values",
      "new_id": "aa09cf6a560b49221c228d1a01163850d0973423",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/second.values",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "a122c57bd2b58fef05353e38abafa261ab89b457",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/storage_test_1.aconfig",
      "new_id": "a122c57bd2b58fef05353e38abafa261ab89b457",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/storage_test_1.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "bb14fd1324891a00268c84f0040b98fe2bfc2644",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/storage_test_2.aconfig",
      "new_id": "bb14fd1324891a00268c84f0040b98fe2bfc2644",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/storage_test_2.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "333fe09e8e80c90cda44c6b6b38a76f958c1a75a",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/storage_test_4.aconfig",
      "new_id": "333fe09e8e80c90cda44c6b6b38a76f958c1a75a",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/storage_test_4.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c11508aabc22315c6ed865968b277eb0b85aca7a",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/test.aconfig",
      "new_id": "c11508aabc22315c6ed865968b277eb0b85aca7a",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/test.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "20f23a31820f7d1e99a72da843636d5085f3d287",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/test_exported.aconfig",
      "new_id": "20f23a31820f7d1e99a72da843636d5085f3d287",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/test_exported.aconfig",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "05ab0e27d367698d7aac5667d59cdd6661991090",
      "old_mode": 33188,
      "old_path": "tools/aconfig/tests/test_force_read_only.aconfig",
      "new_id": "05ab0e27d367698d7aac5667d59cdd6661991090",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig/tests/test_force_read_only.aconfig",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1cc4e419e225cb69ff4954cd0cd8215f11a78cda",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig_protos/Android.bp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "114cf8061239119826f03ec7567600a9ed3a627c",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig_protos/Cargo.toml"
    },
    {
      "type": "rename",
      "old_id": "5ef5b6090f2bcb3124f23804ffc7a798df0fa2b2",
      "old_mode": 33188,
      "old_path": "tools/aconfig/build.rs",
      "new_id": "5ef5b6090f2bcb3124f23804ffc7a798df0fa2b2",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig_protos/build.rs",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "ed4b24c32c3dabd4985f3e39754665306aeac2e8",
      "old_mode": 33188,
      "old_path": "tools/aconfig/protos/aconfig.proto",
      "new_id": "ed4b24c32c3dabd4985f3e39754665306aeac2e8",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig_protos/protos/aconfig.proto",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "2684d202781804d6ee85ee19a0b9462514fd153d",
      "old_mode": 33188,
      "old_path": "tools/aconfig/src/protos.rs",
      "new_id": "f0d27d6d471aaf61509ea374976cf5edf33f8ec0",
      "new_mode": 33188,
      "new_path": "tools/aconfig/aconfig_protos/src/lib.rs",
      "score": 91
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7313f5d044df2c70de008a3dbf4798b3d58aa9cd",
      "new_mode": 33188,
      "new_path": "tools/aconfig/printflags/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "ae9b83aae6227647960dfbda87aa784ff69a403a",
      "old_mode": 33188,
      "old_path": "tools/aconfig/printflags/src/main.rs",
      "new_id": "7fcde61273fb62d8fde5ca20cf927bbdf263a403",
      "new_mode": 33188,
      "new_path": "tools/aconfig/printflags/src/main.rs"
    }
  ]
}
