Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions requirements-test-full.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
fsspec>=2022.11.0;sys_platform != "win32"
jax[cpu]>=0.2.15;sys_platform != "win32" and python_version < "3.13"
numba>=0.50.0;sys_platform != "win32" and python_version < "3.13"
numexpr>=2.7; python_version < "3.14"
pandas>=0.24.0;sys_platform != "win32" and python_version < "3.14"
pyarrow>=12.0.0;sys_platform != "win32" and python_version < "3.14"
jax[cpu]>=0.2.15;sys_platform != "win32"
numba>=0.50.0;sys_platform != "win32" and python_version < "3.14"
numexpr>=2.7
pandas>=0.24.0;sys_platform != "win32"
pyarrow>=12.0.0;sys_platform != "win32"
Comment on lines +2 to +6
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ikrommyd - have you checked which versions of the packages are pulled in with these relaxed conditions? Thanks.

Copy link
Collaborator Author

@ikrommyd ikrommyd Nov 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well the latest on my system naturally. So that would be pyarrow 22 for example.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The restriction was only on the Python version, not on package versions. These were just in place because there where no wheels for 3.13/3.14 at the time, so it made sense to remove them. We could additionally add an upper bound on package versions if you think they are needed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah for 3.15 I guess for when that comes out. We will touch this file again to remove the numba restriction too so it can be done then.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The restriction was only on the Python version, not on package versions. These were just in place because there where no wheels for 3.13/3.14 at the time, so it made sense to remove them. We could additionally add an upper bound on package versions if you think they are needed.

That was my question - have the changes been tested locally? Thanks.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, locally, and most importantly, they're also being tested in the CI. We added this so that the integration tests (which I'm working on in scikit-hep/integration-tests#13) were a bit more comprehensive.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's the log with 3.13 and then with 3.14 for reference if you want it on fresh environments.

~ via 󰏗 v0.56.0
❯ uv venv -p3.13
Using CPython 3.13.9 interpreter at: /opt/homebrew/opt/[email protected]/bin/python3.13
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

~ via 󰏗 v0.56.0
❯ source .venv/bin/activate

~ via  v3.13.9 (iason) via 󰏗 v0.56.0
❯ cd awkward
󱞩 /Users/iason/work/pyhep_dev/awkward

awkward on  main [?] is 󰏗 v2.8.10 via  v3.13.9 (iason)
❯ uv pip install -r requirements-test-full.txt
Using Python 3.13.9 environment at: /Users/iason/.venv
Resolved 31 packages in 1.13s
Prepared 7 packages in 6.26s
Installed 31 packages in 245ms
 + awkward==2.8.10
 + awkward-cpp==50
 + coverage==7.12.0
 + cramjam==2.11.0
 + execnet==2.1.2
 + fsspec==2025.10.0
 + iniconfig==2.3.0
 + jax==0.8.1
 + jaxlib==0.8.1
 + llvmlite==0.45.1
 + ml-dtypes==0.5.4
 + numba==0.62.1
 + numexpr==2.14.1
 + numpy==2.3.5
 + opt-einsum==3.4.0
 + packaging==25.0
 + pandas==2.3.3
 + pluggy==1.6.0
 + pyarrow==22.0.0
 + pygments==2.19.2
 + pytest==9.0.1
 + pytest-cov==7.0.0
 + pytest-xdist==3.8.0
 + python-dateutil==2.9.0.post0
 + pytz==2025.2
 + safetensors==0.7.0
 + scipy==1.16.3
 + six==1.17.0
 + tzdata==2025.2
 + uproot==5.6.8
 + xxhash==3.6.0

awkward on  main [?] is 󰏗 v2.8.10 via  v3.13.9 (iason) took 7s
❯ deactivate

awkward on  main [?] is 󰏗 v2.8.10 via  v3.14.0
❯ cd

~ via 󰏗 v0.56.0
❯ rm -rf .venv

~ via 󰏗 v0.56.0
❯ uv venv -p3.14
Using CPython 3.14.0 interpreter at: /opt/homebrew/opt/[email protected]/bin/python3.14
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

~ via 󰏗 v0.56.0
❯ source .venv/bin/activate

~ via  v3.14.0 (iason) via 󰏗 v0.56.0
❯ cd awkward
󱞩 /Users/iason/work/pyhep_dev/awkward

awkward on  main [?] is 󰏗 v2.8.10 via  v3.14.0 (iason)
❯ uv pip install -r requirements-test-full.txt
Using Python 3.14.0 environment at: /Users/iason/.venv
Resolved 29 packages in 181ms
Prepared 6 packages in 2.79s
Installed 29 packages in 160ms
 + awkward==2.8.10
 + awkward-cpp==50
 + coverage==7.12.0
 + cramjam==2.11.0
 + execnet==2.1.2
 + fsspec==2025.10.0
 + iniconfig==2.3.0
 + jax==0.8.1
 + jaxlib==0.8.1
 + ml-dtypes==0.5.4
 + numexpr==2.14.1
 + numpy==2.3.5
 + opt-einsum==3.4.0
 + packaging==25.0
 + pandas==2.3.3
 + pluggy==1.6.0
 + pyarrow==22.0.0
 + pygments==2.19.2
 + pytest==9.0.1
 + pytest-cov==7.0.0
 + pytest-xdist==3.8.0
 + python-dateutil==2.9.0.post0
 + pytz==2025.2
 + safetensors==0.7.0
 + scipy==1.16.3
 + six==1.17.0
 + tzdata==2025.2
 + uproot==5.6.8
 + xxhash==3.6.0

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for approving and merging this PR - it’s good to see Awkward moving toward Python 3.14 compatibility. At the same time, Numba features are critical for many workflows, and users may be confused if they upgrade and find those features unavailable. To avoid surprises, could we add a clear compatibility notice and CI safeguards for Python 3.14? And for future PRs that affect core dependencies or Python version support, let’s agree to discuss them before merging, so we balance flexibility with reproducibility.

pytest>=6
pytest-cov
pytest-xdist
Expand Down
Loading