)]}'
{
  "commit": "c206a8cc932a9650a19471703a6aaddf67ea6bc1",
  "tree": "60ae2b68e8c845dcf87e056b798f9c9edf76805e",
  "parents": [
    "4ad8a777a9ea1586b600f0afe49e07915e447b95"
  ],
  "author": {
    "name": "Steven Troxler",
    "email": "stroxler@meta.com",
    "time": "Tue Aug 25 17:22:10 2026 -0700"
  },
  "committer": {
    "name": "Facebook GitHub Bot",
    "email": "facebook-github-bot@users.noreply.github.com",
    "time": "Tue Aug 25 17:22:10 2026 -0700"
  },
  "message": "Add package metadata for the NumPy and JAX stubs\n\nSummary:\nUsers have asked for the shape-aware NumPy stubs to be installable from PyPI, the way `pyrefly-torch-stubs` already is. Today the only way to get them is to copy the `tensor-shapes/` directory into your project.\n\nAdd the standalone `pyrefly-numpy-stubs` package metadata and PEP 561 marker so the stubs can be built as a pure-Python stub-only wheel and sdist. This mirrors `pyrefly-torch-stubs` exactly: the package installs only the `numpy-stubs` tree and depends on the matching `pyrefly-shape-extensions` version.\n\nBecause the distribution ships `numpy-stubs/` rather than `numpy/`, it is a PEP 561 stub package for the runtime `numpy` distribution and never shadows NumPy itself, so it can be co-installed with real NumPy.\n\nThe same metadata is added for `pyrefly-jax-stubs`, so the three stub packages stay in step rather than the JAX one drifting until someone needs it. It is deliberately **not** added to `build_shape_stubs.yml`, and so is not published: the `pyrefly-jax-stubs` name on PyPI is already taken by someone else, and that needs to be resolved with them before we can release under it. The build and publish workflows enumerate their packages explicitly rather than globbing, so nothing picks this up implicitly; a later diff wires it in once the name question is settled. The `pyproject.toml` says as much at the top, so the omission does not read as an oversight.\n\nDifferential Revision: D117271678\n\n\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b93be90515ccd0b9daedaa589e42bf5929693f1f",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-jax-stubs/LICENSE"
    },
    {
      "type": "modify",
      "old_id": "eae4758367f8a310e93a238e43a0e9f6702253ea",
      "old_mode": 33188,
      "old_path": "tensor-shapes/pyrefly-jax-stubs/README.md",
      "new_id": "1b99e59b209a5dd66124bbacb3eda1c1edd39f0a",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-jax-stubs/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5fcb8520631bfdbafcab0e3864ed4af6982c8bab",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-jax-stubs/jax-stubs/py.typed"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "42e477bbabfe12b3aead15da6c29dd92a885d2a4",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-jax-stubs/pyproject.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b93be90515ccd0b9daedaa589e42bf5929693f1f",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-numpy-stubs/LICENSE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b1784df4934df7e7b402b0018153ee39a2972b17",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-numpy-stubs/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b648ac92333301658c4f49b315f21130c689c819",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-numpy-stubs/numpy-stubs/py.typed"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "418e5cc25c3f3c1cdb91f56c509d90398f401b21",
      "new_mode": 33188,
      "new_path": "tensor-shapes/pyrefly-numpy-stubs/pyproject.toml"
    }
  ]
}
