Skip to content

CI: Migrate Python 3.10 testing to Posix GHA/Azure Pipelines #45120

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jan 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/posix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,11 @@ jobs:
[actions-38.yaml, "not slow and not clipboard", "", "", "", "", ""],
[actions-38.yaml, "slow", "", "", "", "", ""],
[actions-pypy-38.yaml, "not slow and not clipboard", "", "", "", "", "--max-worker-restart 0"],
[actions-39-numpydev.yaml, "not slow and not network", "xsel", "", "", "deprecate", "-W error"],
[actions-39.yaml, "slow", "", "", "", "", ""],
[actions-39.yaml, "not slow and not clipboard", "", "", "", "", ""]
[actions-39.yaml, "not slow and not clipboard", "", "", "", "", ""],
[actions-310-numpydev.yaml, "not slow and not network", "xclip", "", "", "deprecate", "-W error"],
Copy link
Member

Choose a reason for hiding this comment

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

@lithomas1 Why was xclip chosen here instead of xsel?

I think there's this flaky clipboard test now on this build, and the only difference between this and the other clipboard ones is xclip vs xsel

https://github.com/pandas-dev/pandas/runs/4875566178?check_suite_focus=true#step:10:51

[actions-310.yaml, "not slow and not clipboard", "", "", "", "", ""],
[actions-310.yaml, "slow", "", "", "", "", ""],
]
fail-fast: false
env:
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/python-dev.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# This file is purposely frozen(does not run). DO NOT DELETE IT
# Unfreeze(by commentingthe if: false() condition) once the
# next Python Dev version has released beta 1 and both Cython and numpy support it
# After that Python has released, migrate the workflows to the
# posix GHA workflows/Azure pipelines and "freeze" this file by
# uncommenting the if: false() condition
# Feel free to modify this comment as necessary.

name: Python Dev

on:
Expand All @@ -21,13 +29,14 @@ env:

jobs:
build:
if: false # Comment this line out to "unfreeze"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]

name: actions-310-dev
name: actions-311-dev
timeout-minutes: 80

concurrency:
Expand All @@ -43,7 +52,7 @@ jobs:
- name: Set up Python Dev Version
uses: actions/setup-python@v2
with:
python-version: '3.10-dev'
python-version: '3.11-dev'

# TODO: GH#44980 https://github.com/pypa/setuptools/issues/2941
- name: Install dependencies
Expand Down
20 changes: 20 additions & 0 deletions ci/azure/posix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,26 @@ jobs:
CONDA_PY: "38"
PATTERN: "not slow"
PYTEST_TARGET: "pandas/tests/[i-z]*"
py39_macos_1:
ENV_FILE: ci/deps/azure-macos-39.yaml
CONDA_PY: "39"
PATTERN: "not slow"
PYTEST_TARGET: "pandas/tests/[a-h]*"
py39_macos_2:
ENV_FILE: ci/deps/azure-macos-39.yaml
CONDA_PY: "39"
PATTERN: "not slow"
PYTEST_TARGET: "pandas/tests/[i-z]*"
py310_macos_1:
ENV_FILE: ci/deps/azure-macos-310.yaml
CONDA_PY: "310"
PATTERN: "not slow"
PYTEST_TARGET: "pandas/tests/[a-h]*"
py310_macos_2:
ENV_FILE: ci/deps/azure-macos-310.yaml
CONDA_PY: "310"
PATTERN: "not slow"
PYTEST_TARGET: "pandas/tests/[i-z]*"

steps:
- script: echo '##vso[task.prependpath]$(HOME)/miniconda3/bin'
Expand Down
14 changes: 14 additions & 0 deletions ci/azure/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,20 @@ jobs:
PYTEST_WORKERS: 2 # GH-42236
PYTEST_TARGET: "pandas/tests/[i-z]*"

py310_1:
ENV_FILE: ci/deps/azure-windows-310.yaml
CONDA_PY: "310"
PATTERN: "not slow and not high_memory"
PYTEST_WORKERS: 2 # GH-42236
PYTEST_TARGET: "pandas/tests/[a-h]*"

py310_2:
ENV_FILE: ci/deps/azure-windows-310.yaml
CONDA_PY: "310"
PATTERN: "not slow and not high_memory"
PYTEST_WORKERS: 2 # GH-42236
PYTEST_TARGET: "pandas/tests/[i-z]*"

steps:
- powershell: |
Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: pandas-dev
channels:
- defaults
dependencies:
- python=3.9
- python=3.10

# tools
- pytest>=6.0
Expand Down
51 changes: 51 additions & 0 deletions ci/deps/actions-310.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: pandas-dev
channels:
- conda-forge
dependencies:
- python=3.9

# test dependencies
- cython=0.29.24
- pytest>=6.0
- pytest-cov
- pytest-xdist>=1.31
- hypothesis>=5.5.3
- psutil

# required dependencies
- python-dateutil
- numpy
- pytz

# optional dependencies
- beautifulsoup4
- blosc
- bottleneck
- fastparquet
- fsspec
- html5lib
- gcsfs
- jinja2
- lxml
- matplotlib
# TODO: uncomment after numba supports py310
#- numba
- numexpr
- openpyxl
- odfpy
- pandas-gbq
- psycopg2
- pymysql
- pytables
- pyarrow
- pyreadstat
- pyxlsb
- s3fs
- scipy
- sqlalchemy
- tabulate
- xarray
- xlrd
- xlsxwriter
- xlwt
- zstandard
36 changes: 36 additions & 0 deletions ci/deps/azure-macos-310.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: pandas-dev
channels:
- defaults
- conda-forge
dependencies:
- python=3.10

# tools
- cython>=0.29.24
- pytest>=6.0
- pytest-xdist>=1.31
- hypothesis>=5.5.3
- pytest-azurepipelines

# pandas dependencies
- beautifulsoup4
- bottleneck
- html5lib
- jinja2
- lxml
- matplotlib
- nomkl
- numexpr
- numpy
- openpyxl
- pyarrow
- pyreadstat
- pytables
- python-dateutil==2.8.1
- pytz
- pyxlsb
- xarray
- xlrd
- xlsxwriter
- xlwt
- zstandard
4 changes: 1 addition & 3 deletions ci/deps/azure-macos-38.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ dependencies:
- python=3.8

# tools
- cython>=0.29.24
- pytest>=6.0
- pytest-xdist>=1.31
- hypothesis>=5.5.3
Expand Down Expand Up @@ -33,6 +34,3 @@ dependencies:
- xlsxwriter
- xlwt
- zstandard
- pip
- pip:
- cython>=0.29.24
36 changes: 36 additions & 0 deletions ci/deps/azure-macos-39.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: pandas-dev
channels:
- defaults
- conda-forge
dependencies:
- python=3.9

# tools
- cython>=0.29.24
- pytest>=6.0
- pytest-xdist>=1.31
- hypothesis>=5.5.3
- pytest-azurepipelines

# pandas dependencies
- beautifulsoup4
- bottleneck
- html5lib
- jinja2
- lxml
- matplotlib=3.3.2
- nomkl
- numexpr
- numpy=1.21.3
- openpyxl
- pyarrow=1.0.1
- pyreadstat
- pytables
- python-dateutil==2.8.1
- pytz
- pyxlsb
- xarray
- xlrd
- xlsxwriter
- xlwt
- zstandard
41 changes: 41 additions & 0 deletions ci/deps/azure-windows-310.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: pandas-dev
channels:
- conda-forge
- defaults
dependencies:
- python=3.10

# tools
- cython>=0.29.24
- pytest>=6.0
- pytest-xdist>=1.31
- hypothesis>=5.5.3
- pytest-azurepipelines

# pandas dependencies
- beautifulsoup4
- bottleneck
- fsspec>=0.8.0
- gcsfs
- html5lib
- jinja2
- lxml
- matplotlib
# TODO: uncomment after numba supports py310
#- numba
- numexpr
- numpy
- openpyxl
- pyarrow
- pytables
- python-dateutil
- pytz
- s3fs>=0.4.2
- scipy
- sqlalchemy
- xlrd
- xlsxwriter
- xlwt
- pyreadstat
- pyxlsb
- zstandard
2 changes: 1 addition & 1 deletion pandas/tests/plotting/frame/test_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,7 @@ def test_raise_error_on_datetime_time_data(self):
# GH 8113, datetime.time type is not supported by matplotlib in scatter
df = DataFrame(np.random.randn(10), columns=["a"])
df["dtime"] = date_range(start="2014-01-01", freq="h", periods=10).time
msg = "must be a string or a number, not 'datetime.time'"
msg = "must be a string or a (real )?number, not 'datetime.time'"

with pytest.raises(TypeError, match=msg):
df.plot(kind="scatter", x="dtime", y="a")
Expand Down