)]}'
{
  "commit": "cf9c05b2f1b8884b78e0eb9399a6d99ca7f5f31c",
  "tree": "e6aa198cf6980e087533c92c10a924a8d1b14747",
  "parents": [
    "94c4d3c55bae001e2313872c3279789838bb46b0"
  ],
  "author": {
    "name": "Samuel Benzaquen",
    "email": "sbenza@google.com",
    "time": "Thu Nov 05 10:40:49 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Nov 05 15:11:21 2026 -0800"
  },
  "message": "Make `PB_TEST_CHOOSE_TYPE` portable across C++17, MSVC, and GCC \u003c 13, and run `testing/` tests on CMake CI.\n\n- Replace the C++20 lambda-in-template-argument literal capture (which triggers\n  GCC \u003c 13 failures and dropped fallback type names in C++17) with a\n  C++17-compatible template-encoded string literal.\n- Replace the in-class constexpr lambda and incomplete-type `decltype` in\n  `TestChooseTypeSelector` with a nested registration struct and variable\n  template so GCC 12 accepts it.\n- Clean up C++17/C++20 boundary issues (`auto` prefix NTTP, `enable_if` around\n  NTTPs, `constexpr std::copy`, and missing `_MSVC_LANG` checks).\n- Document in `protobuf_test.h` and `protobuf_test.md` that `\"prefix\"` and\n  `{\"name1\", \"name2\", ...}` arguments to `PB_TEST_CHOOSE_TYPE` require C++20+,\n  while `Printer` works in C++17+.\n- Wire `get_type_name_test`, `protobuf_test_test`, and `protobuf_test_output_test`\n  into the generated CMake file lists and `cmake/tests.cmake` (guarded until\n  `src/file_lists.cmake` is regenerated post-submit) so CMake CI jobs such as\n  GCC 12.5 C++20, C++17, 32-bit, and MSVC run them.\n\nPiperOrigin-RevId: 1014824355\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "00a069b14105582a88129aaf555472ede86c91d5",
      "old_mode": 33188,
      "old_path": "cmake/tests.cmake",
      "new_id": "936a7926d32ec63ced461e5ca491f709210a9e27",
      "new_mode": 33188,
      "new_path": "cmake/tests.cmake"
    },
    {
      "type": "modify",
      "old_id": "327debd470aeff5a8f1480b733988e6957f34507",
      "old_mode": 33188,
      "old_path": "pkg/BUILD.bazel",
      "new_id": "57439a199ad51d184f439a9ee49040e7ec7986b4",
      "new_mode": 33188,
      "new_path": "pkg/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e8c8f5ea895bb351d307cb042f9f39d2ab0b8892",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/BUILD.bazel",
      "new_id": "a20989ff19bb8b184ac70a4d23117be2ac377c53",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "43c1ab34325ee682cfcb67bb34967dd5cf0bbccd",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/get_type_name.cc",
      "new_id": "6ae74aad472ca5a17af673d3bf03e554009aec67",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/get_type_name.cc"
    },
    {
      "type": "modify",
      "old_id": "957a2f43034515824460315ca4932f9b9f1f6d3c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/get_type_name.h",
      "new_id": "cb0fc431ec08e5172adcb3ef84d3b14e57266f93",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/get_type_name.h"
    },
    {
      "type": "modify",
      "old_id": "0ef7bbad0c53fbbf60d0a3636201ea266b12b60f",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/protobuf_test.h",
      "new_id": "0493c420dfddd1c80236b0558c71b7603457d17f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/protobuf_test.h"
    },
    {
      "type": "modify",
      "old_id": "9b54e86c346e22d3ec18b4fbd03ae89e5f3c1142",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/protobuf_test.md",
      "new_id": "87e21bff0a633d05d79a79ca4af8ba9af0b8e5f6",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/protobuf_test.md"
    },
    {
      "type": "modify",
      "old_id": "03cda37419c0cb1ec3ee5acf0b941867889a8703",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/testing/protobuf_test_test.cc",
      "new_id": "36fa2cbe18af07f58cd94159c2bd8cab28754c76",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testing/protobuf_test_test.cc"
    }
  ]
}
