Skip to content

Update and improve test environments#432

Draft
m-albert wants to merge 15 commits intodask:mainfrom
m-albert:update-test-environments
Draft

Update and improve test environments#432
m-albert wants to merge 15 commits intodask:mainfrom
m-albert:update-test-environments

Conversation

@m-albert
Copy link
Copy Markdown
Collaborator

This PR implements #431.

The PR

  • drops python 3.9
  • adds support and testing environments for python 3.13 and 3.14
  • includes a test with unpinned dependencies test-latest-all-extras
  • extends CI job for test-minimal added here to run on all platforms

This PR branch is based on #429 and should only be merged after #429 is merged.

Copilot AI review requested due to automatic review settings April 27, 2026 09:17
@m-albert m-albert marked this pull request as draft April 27, 2026 09:18
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the project’s supported Python/test environments to align with the Scientific Python support window and improves CI coverage for both minimal and “latest deps” installs, while making dataframe-related dependencies optional (so dask-image can be installed without pandas/dask[dataframe] unless find_objects is used).

Changes:

  • Drop Python 3.9 support and expand CI testing to Python 3.10–3.14 across platforms.
  • Make dataframe dependencies optional via a dataframe extra and gate find_objects behind an explicit import check.
  • Add CI jobs for a minimal install (no dataframe extras) and for “latest unpinned deps” with all extras.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/test_dask_image/test_ndmeasure/test_find_objects.py Skip find_objects tests when optional dataframe deps aren’t installed.
tests/test_dask_image/test_ndfilters/test__generic.py Adjust generic filter test functions to return scalars (compatibility with upstream behavior).
pyproject.toml Drop Python 3.9, make dataframe deps optional, add flake8 config.
dask_image/ndmeasure/_utils/_find_objects.py Move pandas/dask.dataframe imports into functions to support optional deps.
dask_image/ndmeasure/__init__.py Add explicit optional-dependency check + improved error message for find_objects.
continuous_integration/environment-3.9.yml Remove the Python 3.9 pinned test environment.
continuous_integration/environment-3.13.yml Add pinned test environment for Python 3.13.
continuous_integration/environment-3.14.yml Add pinned test environment for Python 3.14.
.github/workflows/test_and_deploy.yml Update test matrix (3.10–3.14), install dataframe extras in CI, add test-minimal and test-latest-all-extras jobs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +52 to +56
test-minimal:
# Verify dask-image works without the optional `dataframe` extras
# (i.e. without pandas and dask[dataframe]).
runs-on: ${{ matrix.os }}
strategy:
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

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

deploy (and potentially coveralls) still only depends on test. With the new test-minimal and test-latest-all-extras jobs, a tagged release could publish even if those new test jobs fail, since they are not included in deploy.needs. Update the workflow so deploy.needs (and any other gating jobs) includes the new test jobs.

Copilot uses AI. Check for mistakes.
Comment thread pyproject.toml
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.

3 participants