Skip to content

Install ipykernel test requirements from its dependency group in downstream CI - #15418

Merged
krassowski merged 2 commits into
ipython:mainfrom
cristianchiriac:ci/downstream-ipykernel-dependency-group
Oct 20, 2026
Merged

krassowski merged 2 commits into
ipython:mainfrom
cristianchiriac:ci/downstream-ipykernel-dependency-group

Conversation

@cristianchiriac

Copy link
Copy Markdown
Contributor

The Run Downstream tests workflow has been failing on main, including the weekly scheduled run (e.g. https://github.com/ipython/ipython/actions/runs/37253135992). The ipykernel step stops during collection:

ERROR: Unknown config option: timeout
ERROR tests/test_matplotlib_eventloops.py - Failed: 'timeout' not found in `markers` configuration option

ipykernel moved its test requirements from the test extra to a test dependency group in ipython/ipykernel#1563 (2026-09-21). Since then, pip install -e .[test] only prints WARNING: ipykernel 7.4.0 does not provide the extra 'test', and pytest-timeout and the other test requirements are never installed.

This PR changes the step to pip install -e . --group test, which needs pip ≥ 25.1. The workflow already upgrades pip to the latest version.

I checked the install locally against a fresh ipykernel clone (pip 26.2.1, Python 3.13):

  • .[test] gives the warning above, and pytest-timeout is not installed.
  • . --group test installs pytest-timeout 2.4.0, pytest 9.1.1, etc., and pytest --co collects the suite without the config error.

I couldn't run the full ipykernel suite on Linux, so this PR's own run of the workflow will be the first check of whether anything else in that job is broken.

The pyflyby step further down still uses .[test]. That's correct: pyflyby still defines test under [project.optional-dependencies].

ipykernel moved its test requirements from the "test" extra to a "test"
dependency group (ipython/ipykernel#1563). "pip install -e .[test]" now only
warns that the extra does not exist, so pytest-timeout is not installed and
the downstream ipykernel tests fail to collect with "Unknown config option:
timeout" / "'timeout' not found in markers".
@cristianchiriac

Copy link
Copy Markdown
Contributor Author

The red check here is the mypy job (IPython/core/kitty.py:114: error: Statement is unreachable). It also fails on main and isn't related to this workflow-only change; #15419 fixes it.

@krassowski krassowski left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks, but let's drop the comment, if we included comment for every historical change, we would need to buy a separate datacenter.

Comment thread .github/workflows/downstream.yml Resolved
@krassowski krassowski added this to the 9.18 milestone Oct 20, 2026
@krassowski
krassowski merged commit ebbae4d into ipython:main Oct 20, 2026
22 of 24 checks passed
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