Skip to content

package dependency update + enabling worktrees - #21

Merged
rushin682 merged 2 commits into
mainfrom
package-dependency-update
Sep 11, 2026
Merged

rushin682 merged 2 commits into
mainfrom
package-dependency-update

Conversation

@rushin682

Copy link
Copy Markdown
Collaborator

Updating package dependency to python 3.12 with newer zarr > 3 and numpy > 2 support. This is important to maintain the python stack.

@codecov-commenter

codecov-commenter commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 42.46%. Comparing base (e0d5d60) to head (d7c8be9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
+ Coverage   41.28%   42.46%   +1.18%     
==========================================
  Files          10       10              
  Lines        1015     1015              
==========================================
+ Hits          419      431      +12     
+ Misses        596      584      -12     

see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…full

`uv sync` failed to resolve because the `segmentation` extra listed `instanseg`,
and the PyPI project of that name is a dead 0.0.2 release pinned to numpy<2,
which conflicts with our numpy>=2 floor. uv resolves every extra together even
when it is not selected, so the stale pin broke the base install too. The
maintained InstanSeg ships as `instanseg-torch`.

The sibling repo peng-lab/spatialrefinery already carries the numpy-2-compatible
segmentation stack (instanseg-torch, scikit-image, openslide-python + openslide-bin,
verified against zarr 3 / spatialdata 0.8 in its lockfile), so the `full` extra
now depends on `spatialrefinery[segmentation]` from its git main and the
`segmentation` extra is removed. spatialrefinery is not on PyPI, hence the direct
reference, which also needs `tool.hatch.metadata.allow-direct-references`; the
wheel is therefore not PyPI-uploadable, which is fine as phoenix installs from git.

Consequences: `full` gains spatialrefinery's base dependencies (dask, geopandas,
opencv-python-headless, spatialdata-io/-plot, ...) and an anndata>=0.13 floor;
helpers/segmentor.py is now importable in CI and the docs env, so its import test
moved to the `full` case and NucleiPatchExtractor joins the API reference.
`.vscode/settings.json` and `.worktreeinclude` only carry prek formatter fixes.

Verified on CPU against spatialrefinery 799472d: `uv lock`, `uv sync`,
`uv sync --all-extras`, importing spatialrefinery/instanseg/openslide/skimage and
phoenix.helpers.segmentor, `pytest tests` (28 passed, 4 apex skips), `uv build` +
`twine check --strict`, a dry-run `phoenix[full]` install into an empty venv
resolving spatialrefinery from GitHub, `prek run -a`, and `hatch check types`.
The `-W` docs build fails before and after with the same 381 torch/lightning
cross-reference warnings; no new warnings, tracked separately.

Claude-Session: https://claude.ai/code/session_01GG873AhByfhuLZcPrMabwL
@rushin682
rushin682 merged commit 2436b23 into main Sep 11, 2026
7 checks passed
@rushin682
rushin682 deleted the package-dependency-update branch September 11, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants