)]}'
{
  "commit": "427b524bec024eefa2b64282437dac25cf7e3788",
  "tree": "9c29f8c55343b7ee46b3c4930aa890ee6d329e4e",
  "parents": [
    "935024427a3c591d1e35b91b01140dcad455c4d8"
  ],
  "author": {
    "name": "Jason Bedard",
    "email": "jason+github@jbedard.ca",
    "time": "Mon Jun 08 12:52:28 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 08 12:52:28 2026 -0700"
  },
  "message": "perf: avoid AST depth depending on pnpm workspace size (#2865)\n\nThis converts 2 `if/elif bazel_package \u003d\u003d \"pnpm-project-path\"` blocks\ninto 2 constants and the `if/elif` is replaced with a lookup into the\nconstant. See the diffs of the snapshot files for the best outline of\nthe changes.\n\nThis prevents a reported `java.lang.StackOverflowError` from the bazel\nstarlark parser treating `elif` as nested `else: if`. This reduces the\n`npm_link_all_packages()` from N `if/elif` statements into a single map\nlookup. The tradeoff is when the generated `defs.bzl` is `load()`ed it\nnow has 2 giant maps declared at load time.\n\nOverall I (and my robot assistants, and my testing on a repo with ~2k\npnpm workspace projects) think this has negligible impact on actually\nperformance but should avoid the `java.lang.StackOverflowError`.\n\n### Changes are visible to end-users: no\n\n### Test plan\n\n- Covered by existing test cases",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2e89a04bf1ac935fde4969bc1ec08b9d2031d680",
      "old_mode": 33188,
      "old_path": ".aspect/config.axl",
      "new_id": "526ef9cd8a93662f02661eb48004abe33aa2d3d5",
      "new_mode": 33188,
      "new_path": ".aspect/config.axl"
    },
    {
      "type": "modify",
      "old_id": "aad9beed0b1891ecdecb649946e4aeebaff8cfd9",
      "old_mode": 33188,
      "old_path": "e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl",
      "new_id": "2eca1e6c6f2476884824e15e85f9d81e46678665",
      "new_mode": 33188,
      "new_path": "e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "8f5f632b75fa85ed5a0c5e524e14c879f01ecccc",
      "old_mode": 33188,
      "old_path": "e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl",
      "new_id": "52648a64f5ffd7d454b965197d0130c526cb07a4",
      "new_mode": 33188,
      "new_path": "e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "2dfa784cdd174048ed352be98e98eb318bf91658",
      "old_mode": 33188,
      "old_path": "e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl",
      "new_id": "72a3fab8e0be1433f086f90a273a11499d50b82e",
      "new_mode": 33188,
      "new_path": "e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "29d01dc2df37039a3831f711cbe74df8ab850f1c",
      "old_mode": 33188,
      "old_path": "e2e/pnpm_lockfiles/v101/snapshots/defs.bzl",
      "new_id": "928ba19f6b9d52279a6304602aa7bf9873ba1077",
      "new_mode": 33188,
      "new_path": "e2e/pnpm_lockfiles/v101/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "bd445ced9e94310261d3723cd9c087de299c0c08",
      "old_mode": 33188,
      "old_path": "e2e/pnpm_lockfiles/v110/snapshots/defs.bzl",
      "new_id": "c05a6c6932a5556d1d1d59cd89072e7067741a36",
      "new_mode": 33188,
      "new_path": "e2e/pnpm_lockfiles/v110/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "fe008488173d35fb7f2d5c1b644f749bd6173e05",
      "old_mode": 33188,
      "old_path": "e2e/pnpm_lockfiles/v90/snapshots/defs.bzl",
      "new_id": "3130d02e5fe33b316a52b9fd86d8f2e1c705e29f",
      "new_mode": 33188,
      "new_path": "e2e/pnpm_lockfiles/v90/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "0721eaecc76a90e704f38c1be06a8db993ba148f",
      "old_mode": 33188,
      "old_path": "e2e/pnpm_workspace/snapshots/defs.bzl",
      "new_id": "2ff4674805bacf1cac29eb295fa0c82b0ee088c5",
      "new_mode": 33188,
      "new_path": "e2e/pnpm_workspace/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "9715d1c0cc3151f9af2fa54ee23d57f8ec99226d",
      "old_mode": 33188,
      "old_path": "e2e/pnpm_workspace_rerooted/snapshots/defs.bzl",
      "new_id": "bf5b4ce08be097666f0d0239483991cc8834c18a",
      "new_mode": 33188,
      "new_path": "e2e/pnpm_workspace_rerooted/snapshots/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "78e28ddaa0d7eb866bc6302bf1faefb0f3776a6e",
      "old_mode": 33188,
      "old_path": "npm/private/npm_translate_lock_generate.bzl",
      "new_id": "f06374841bae2b26b3ebd9b66b9611705bbbb1dc",
      "new_mode": 33188,
      "new_path": "npm/private/npm_translate_lock_generate.bzl"
    },
    {
      "type": "modify",
      "old_id": "1978b2150189d0e1c2f8303f6aa1c1d2e667e12e",
      "old_mode": 33188,
      "old_path": "npm/private/test/snapshots/npm_defs-no_dev.bzl",
      "new_id": "4b2e79fbb0f74d019d6487b184bd77a98d86ba71",
      "new_mode": 33188,
      "new_path": "npm/private/test/snapshots/npm_defs-no_dev.bzl"
    },
    {
      "type": "modify",
      "old_id": "fdcc55714a50bebf9b0fef54f8c5188b91bdc9ad",
      "old_mode": 33188,
      "old_path": "npm/private/test/snapshots/npm_defs-no_optional.bzl",
      "new_id": "ccab1b1c19b58d123c69d0632a741eaec186237b",
      "new_mode": 33188,
      "new_path": "npm/private/test/snapshots/npm_defs-no_optional.bzl"
    },
    {
      "type": "modify",
      "old_id": "56f35d660a66d6db53c72472df0d25d3a62ec97f",
      "old_mode": 33188,
      "old_path": "npm/private/test/snapshots/npm_defs.bzl",
      "new_id": "504ca7ce69a09341b0f82f3c3e32a3c78b50a602",
      "new_mode": 33188,
      "new_path": "npm/private/test/snapshots/npm_defs.bzl"
    }
  ]
}
