Skip to content

Commit fec0f14

Browse files
committed
chore(deps): drop unused numpy and pandas dependencies (#124)
Neither package is imported anywhere in the analyzer -- `git grep` finds first-party hits only in the vendored xarray test fixture and in a comment in the Homebrew formula generator. Both were nonetheless declared in `[project].dependencies` with tight upper caps (`numpy<1.24` below Python 3.11, `numpy<2.0` above it). Those caps forced resolution onto numpy releases with no prebuilt wheel for some targets -- Red Hat UBI images in particular -- so `pip install codeanalyzer-python` fell back to building numpy from source and failed. On Python 3.11+ numpy now disappears from the resolved tree entirely, since ray 2.55 declares no numpy dependency and pandas was its only other route. On Python 3.9/3.10 `ray==2.0.0` still pulls numpy in transitively; raising that pin carries real compatibility risk and is left for a separate change.
1 parent 026c80b commit fec0f14

3 files changed

Lines changed: 14 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2020
actually ran at the default level 1, producing a partial graph). Passing
2121
`--graphs` below `-a 3` is also now consistently rejected even when the
2222
value equals the default.
23+
- **`numpy` and `pandas` are no longer dependencies** (#124): neither was ever
24+
imported by the analyzer, but both were declared in `[project].dependencies`
25+
with tight upper caps (`numpy<1.24` below Python 3.11, `numpy<2.0` above it).
26+
The caps forced resolution onto numpy releases with no prebuilt wheel for some
27+
targets — Red Hat UBI images in particular — so installation fell back to
28+
building numpy from source and failed. On Python 3.11+ numpy is now absent
29+
from the resolved tree entirely (`ray` 2.55 does not require it). On Python
30+
3.9/3.10 `ray==2.0.0` still requires numpy transitively — that pin is
31+
untouched — but with the cap gone it resolves to numpy 2.0.2, which ships
32+
cp39 manylinux wheels for x86_64 and aarch64, so the source build stops
33+
happening there too.
2334

2435
## [1.1.1] - 2026-07-27
2536

packaging/homebrew/generate_formula.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# Unlike the codeanalyzer-typescript sibling -- which ships a single self-contained
66
# binary that the formula just downloads -- codeanalyzer-python is a pure-Python
7-
# package published to PyPI with heavy native dependencies (ray, pandas, numpy).
7+
# package published to PyPI with a heavy native dependency (ray).
88
# Vendoring every transitive dependency as a Homebrew `resource` is impractical
99
# (ray is not buildable from an sdist), and pip-installing at build time is blocked
1010
# by Homebrew's network sandbox.
@@ -41,8 +41,8 @@ class CodeanalyzerPython < Formula
4141
version "${VERSION}"
4242
license "Apache-2.0"
4343
44-
# codeanalyzer-python is a pure-Python PyPI package with heavy native deps
45-
# (ray, pandas, numpy). Rather than vendor every transitive dependency as a
44+
# codeanalyzer-python is a pure-Python PyPI package with a heavy native dep
45+
# (ray). Rather than vendor every transitive dependency as a
4646
# Homebrew resource, install the pinned PyPI release as an isolated uv tool;
4747
# uv resolves and caches the environment on first run.
4848
depends_on "uv"

pyproject.toml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@ dependencies = [
1818
# networkx
1919
"networkx>=2.6.0,<3.2.0; python_version < '3.11'",
2020
"networkx>=3.0.0,<4.0.0; python_version >= '3.11'",
21-
# pandas
22-
"pandas>=1.3.0,<2.0.0; python_version < '3.11'",
23-
"pandas>=2.0.0,<3.0.0; python_version >= '3.11'",
24-
# numpy
25-
"numpy>=1.21.0,<1.24.0; python_version < '3.11'",
26-
"numpy>=1.24.0,<2.0.0; python_version >= '3.11' and python_version < '3.12'",
27-
"numpy>=1.26.0,<2.0.0; python_version >= '3.12'",
2821
# pydantic
2922
"pydantic>=1.8.0,<2.0.0; python_version < '3.11'",
3023
"pydantic>=2.0.0,<3.0.0; python_version >= '3.11'",

0 commit comments

Comments
 (0)