@@ -62,21 +62,23 @@ jobs:
6262 cache : pip
6363 cache-dependency-path : |
6464 pyproject.toml
65+ - name : Install uv
66+ uses : astral-sh/setup-uv@v7
6567 - name : Install latex
6668 if : runner.os == 'Linux' && matrix.deps == 'test_extra'
6769 run : echo "disable latex for now, issues in mirros" # sudo apt-get -yq -o Acquire::Retries=3 --no-install-suggests --no-install-recommends install texlive dvipng
6870 - name : Install and update Python dependencies (binary only)
6971 if : ${{ ! contains( matrix.python-version, 'dev' ) }}
7072 run : |
71- python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
72- python -m pip install --no-binary curio --no-binary psutil --no-binary tornado --upgrade -e .[${{ matrix.deps }}]
73- python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest
73+ uv pip install --system setuptools wheel build
74+ uv pip install --system -e .[${{ matrix.deps }}]
75+ uv pip install --system check-manifest pytest-cov pytest
7476 - name : Install and update Python dependencies (dev?)
7577 if : ${{ contains( matrix.python-version, 'dev' ) }}
7678 run : |
77- python -m pip install --pre --upgrade pip setuptools wheel build
78- python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --no-binary psutil --no-binary tornado --upgrade -e .[${{ matrix.deps }}]
79- python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov
79+ uv pip install --system --prerelease=allow setuptools wheel build
80+ uv pip install --system --prerelease=allow -- extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple -e .[${{ matrix.deps }}]
81+ uv pip install --system --prerelease=allow -- extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple check-manifest pytest-cov
8082 - name : Try building with Python build
8183 if : runner.os != 'Windows' # setup.py does not support sdist on Windows
8284 run : |
@@ -89,11 +91,11 @@ jobs:
8991 - name : Install entry point compatible code (TEMPORARY, April 2024)
9092 if : matrix.want-latest-entry-point-code
9193 run : |
92- python -m pip list
94+ uv pip list --system
9395 # Not installing matplotlib's entry point code as building matplotlib from source is complex.
9496 # Rely upon matplotlib to test all the latest entry point branches together.
95- python -m pip install --upgrade git+https://github.com/ipython/matplotlib-inline.git@main
96- python -m pip list
97+ uv pip install --system git+https://github.com/ipython/matplotlib-inline.git@main
98+ uv pip list --system
9799
98100 - name : pytest
99101 env :
@@ -105,3 +107,47 @@ jobs:
105107 with :
106108 name : Test
107109 files : /home/runner/work/ipython/ipython/coverage.xml
110+
111+ oldest-deps :
112+ # pro-actively check backward compatibility
113+ runs-on : ${{ matrix.os }}
114+ timeout-minutes : 15
115+ # Disable scheduled CI runs on forks
116+ if : github.event_name != 'schedule' || github.repository_owner == 'ipython'
117+ strategy :
118+ fail-fast : false
119+ matrix :
120+ os :
121+ - ubuntu-22.04
122+ # include windows because of platform-specific direct dependencies
123+ - windows-2022
124+
125+ steps :
126+ - uses : actions/checkout@v5
127+ - name : Set up uv with Python 3.11
128+ uses : astral-sh/setup-uv@v7
129+ with :
130+ python-version : ' 3.11'
131+ enable-cache : true
132+ activate-environment : true
133+ prune-cache : false
134+ cache-dependency-glob : |
135+ pyproject.toml
136+
137+ - name : Install Python dependencies (oldest supported versions)
138+ run : uv pip install --resolution=lowest-direct -e .[test]
139+
140+ - name : Try building with uv build
141+ if : runner.os != 'Windows' # setup.py does not support sdist on Windows
142+ run : |
143+ uv build
144+ shasum -a 256 dist/*
145+
146+ - name : Check manifest
147+ if : runner.os != 'Windows' # setup.py does not support sdist on Windows
148+ run : uvx check-manifest
149+
150+ - name : pytest
151+ env :
152+ COLUMNS : 120
153+ run : pytest --color=yes -raXxs
0 commit comments