)]}'
{
  "commit": "13e019f6da4e9e41d057d9d8b45adb942880724d",
  "tree": "f1f0db04c9d7b925a47e177d11ca5653bd5fb6df",
  "parents": [
    "889dd941e662fa8cfd26b328daf3765b64237456"
  ],
  "author": {
    "name": "Joshua Haberman",
    "email": "haberman@google.com",
    "time": "Fri Sep 04 10:13:33 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Sep 04 10:22:19 2026 -0700"
  },
  "message": "Force test failure when requested Python protobuf implementations are unavailable\n\nPrior to this change, the upb tests could succeed even if the upb backend was failing to import properly.  This is because the API switching logic is currently designed to gracefully fall back to pure-Python.  This behavior can sometimes be helpful in prod (maybe going more slowly is better than crashing at startup), but is definitely not what we want in tests.\n\nThis change introduces a PROTOCOL_BUFFERS_PYTHON_INTERNAL_FORCE_IMPLEMENTATION environment variable to prevent falling back to the pure Python implementation when the requested \u0027cpp\u0027 or \u0027upb\u0027 implementation fails to import. The upb/cpp tests are updated to set this variable, ensuring tests fail explicitly if their expected backend is missing.\n\nThe new variable has \"INTERNAL\" in the name so that it is not subject to our breaking change policy.  I wonder if we should consider changing the PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION variable to have this behavior by default, so that users can be assured that their requested backend will be used, or will fail loudly if it is not available.\n\nPiperOrigin-RevId: 976377381\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2cf62f28044b1da5cec0e4adb00025eba67f74c5",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/api_implementation.py",
      "new_id": "2a5b3de007fa6e66daaad175592ea52a249a3ee4",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/api_implementation.py"
    }
  ]
}
