Repository navigation
Upgrade pinned dependencies to Python 3.14 - #205
Conversation
Bump the exact pins in the conda environment file: python 3.11.7 to 3.14.8, git 2.40.1 to 2.56.0, and asv 0.6.1 to 0.6.6. hdmf-zarr stays at 0.13.0. Pin asv-runner to 0.3.1. asv only sets a lower bound on it, and asv-runner 0.3.0 changed how timing benchmarks with setup hooks are sampled, so an unpinned runner lets timing semantics drift between environment rebuilds. Raise the requires-python upper bound in pyproject.toml to <3.15 and match the asv pins there, since the environment file installs the package with `-e ..`. Remove the spaces around version operators so all entries share one style. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The lab mac is having trouble with building some of the latest packages that don't offer Python 3.11 wheels. I don't see a reason to pin Python 3.11, so I bumped up that and the other pins. |
| - asv == 0.6.1 | ||
| - asv==0.6.6 | ||
| - asv-runner==0.3.1 |
There was a problem hiding this comment.
Ahh well bumping this may have some effects 😅 well see I guess
There was a problem hiding this comment.
Something to know but hopefully won't change anything:
asv-runner 0.3.x timing change: setup now re-runs between timed calls when number > 1, and auto number becomes 1 when there are setup hooks. BaseBenchmark already sets number = 1, repeat = 1, rounds = 1, warmup_time = 0.0, so the timing path is effectively the same. Before this pin, asv-runner was unpinned (0.6.1 only required >=0.1.0), so environments built between June and October 2026 may already have had 0.2.5 or 0.3.x. Now it's fixed.
Follow-up to #203 (targets its branch). The raw results fixture behind `tests/test_reduce_results.py` was written with asv 0.6.1. Main now pins asv 0.6.6 and asv-runner 0.3.1 (#205), so this PR regenerates the fixture with those versions. ## Changes - **Merges `main` into the branch.** It merges cleanly and brings in the #205 pins, so the tests in this PR run against the asv version that wrote the fixture. - **Regenerates the fixture.** It comes from the same toy suite as before: `Incremental` (B raises), `Network`, `Timed` (`--bench` selects only parameter set A) and `Unwrapped`. The suite was run with `asv run --python=same --record-samples` and trimmed to the keys the reducer reads, with the same fixed commit hash. - **Renames the fixture** `tests/data/asv_0.6.1_raw_results.json` → `asv_0.6.6_raw_results.json`, and updates the path and comment in the test. ## What changed in the fixture The structure is the same as under 0.6.1: same `result_columns`, same row lengths (12 for the wrapped benchmarks, 5 for `Unwrapped`), NaN result for the unselected `Timed` B, `null` samples for the failed `Incremental` B, and the same `true` results for the wrapped `track_` benchmarks. Only the `Timed` timing, the benchmark version hashes, `started_at` and `duration` differ. No version bump: nothing under `src/nwb_benchmarks/` changes. ## Testing - `python -m pytest tests`: 40 passed, none skipped (polars and seaborn installed, so the database-reader test ran). - `pre-commit run` on the changed files passes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01At337MLAynHQXz3TZBF3Vv --- _Generated by [Claude Code](https://claude.ai/code/session_01At337MLAynHQXz3TZBF3Vv)_ Co-authored-by: Claude <noreply@anthropic.com>
Summary
Upgrades the exact pins in
environments/nwb_benchmarks.yamlto the latest releases available for Python 3.14.Details
pyproject.tomlraises therequires-pythonupper bound to<3.15and carries the sameasvandasv-runnerpins. The environment file installs the package with-e .., so the two files have to agree.asv-runneris pinned because asv only sets a lower bound on it (>=0.2.5in asv 0.6.6). asv-runner 0.3.0 changed how timing benchmarks withsetuphooks are sampled (setup reruns before every timed call). That is a no-op for this suite, becauseBaseBenchmarksetsrounds = 1,repeat = 1,number = 1andwarmup_time = 0.0, but pinning keeps timing semantics from shifting between environment rebuilds.src/nwb_benchmarks/changes.Testing
conda env createfrom the updated file into a fresh prefix on macOS arm64 resolves and installs, andpip checkreports no broken requirements. The unpinned packages resolved to hdmf 6.2.0, pynwb 4.2.0, numba 0.68.0, lindi 0.4.6, zarr 2.18.7 and dandi 0.81.0.🤖 Generated with Claude Code