Skip to content

Commit

Permalink
Backport PR #53027 on branch 2.0.x (CI: Add job to validate conda-for…
Browse files Browse the repository at this point in the history
…ge meta.yaml) (#53146)

Backport PR #53027: CI: Add job to validate conda-forge meta.yaml

Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
  • Loading branch information
meeseeksmachine and mroeschke committed May 9, 2023
1 parent 5962f0e commit e33e8ae
Show file tree
Hide file tree
Showing 2 changed files with 131 additions and 4 deletions.
42 changes: 38 additions & 4 deletions .github/workflows/package-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ on:
permissions:
contents: read

defaults:
run:
shell: bash -el {0}

jobs:
pip:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
Expand Down Expand Up @@ -44,9 +48,39 @@ jobs:
run: |
python -m pip install --upgrade pip setuptools wheel python-dateutil pytz numpy cython
python -m pip install versioneer[toml]
shell: bash -el {0}
- name: Pip install with extra
run: |
python -m pip install -e .[${{ matrix.extra }}] --no-build-isolation
shell: bash -el {0}
run: python -m pip install -e .[${{ matrix.extra }}] --no-build-isolation
conda_forge_recipe:
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11']
fail-fast: false
name: Test Conda Forge Recipe - Python ${{ matrix.python-version }}
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-conda-forge-recipe-${{ matrix.python-version }}
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up Python
uses: mamba-org/provision-with-micromamba@v15
with:
environment-file: false
environment-name: recipe-test
extra-specs: |
python=${{ matrix.python-version }}
boa
conda-verify
channels: conda-forge
cache-downloads: true
cache-env: true

- name: Build conda package
run: conda mambabuild ci --no-anaconda-upload --verify --strict-verify --output --output-folder .
93 changes: 93 additions & 0 deletions ci/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{% set version = "2.0.1" %}

package:
name: pandas
version: {{ version }}

source:
git_url: ../..

build:
number: 1
script:
- export PYTHONUNBUFFERED=1 # [ppc64le]
- {{ PYTHON }} -m pip install -vv --no-deps --ignore-installed . # [not unix]
- {{ PYTHON }} -m pip install -vv --no-deps --ignore-installed . --global-option="build_ext" --global-option="-j4" --no-use-pep517 # [unix]
skip: true # [py<39]

requirements:
build:
- python # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
- cython # [build_platform != target_platform]
- numpy # [build_platform != target_platform]
- {{ compiler('c') }}
- {{ compiler('cxx') }}
host:
- python
- pip
- setuptools >=61.0.0
- cython >=0.29.33,<3
- numpy >=1.21.6 # [py<311]
- numpy >=1.23.2 # [py>=311]
- versioneer
- tomli # [py<311]
run:
- python
- {{ pin_compatible('numpy') }}
- python-dateutil >=2.8.2
- pytz >=2020.1
- python-tzdata >=2022.1

test:
imports:
- pandas
commands:
- pip check
# Skip test suite on PyPy as it segfaults there
# xref: https://github.com/conda-forge/pandas-feedstock/issues/148
#
# Also skip `test_rolling_var_numerical_issues` on `ppc64le` as it is a known test failure.
# xref: https://github.com/conda-forge/pandas-feedstock/issues/149
{% set markers = ["not clipboard", "not single_cpu", "not db", "not network", "not slow"] %}
{% set markers = markers + ["not arm_slow"] %} # [aarch64 or ppc64le]
{% set extra_args = ["-n=2 -m " + " and ".join(markers)] %}
{% set tests_to_skip = "_not_a_real_test" %}
{% set tests_to_skip = tests_to_skip + " or test_rolling_var_numerical_issues" %} # [ppc64le]
{% set tests_to_skip = tests_to_skip + " or test_std_timedelta64_skipna_false" %} # [ppc64le]
{% set tests_to_skip = tests_to_skip + " or test_value_counts_normalized[M8[ns]]" %} # [ppc64le]
{% set tests_to_skip = tests_to_skip + " or test_to_datetime_format_YYYYMMDD_with_nat" %} # [ppc64le]
{% set tests_to_skip = tests_to_skip + " or (TestReductions and test_median_2d)" %} # [ppc64le]
{% set extra_args = extra_args + ["-k", "not (" + tests_to_skip + ")"] %}
- python -c "import pandas; pandas.test(extra_args={{ extra_args }})" # [python_impl == "cpython"]
requires:
- pip
- pytest >=7.0.0
- pytest-asyncio >=0.17.0
- pytest-xdist >=2.2.0
- pytest-cov
- hypothesis >=6.46.1
- tomli # [py<311]

about:
home: http://pandas.pydata.org
license: BSD-3-Clause
license_file: LICENSE
summary: Powerful data structures for data analysis, time series, and statistics
doc_url: https://pandas.pydata.org/docs/
dev_url: https://github.com/pandas-dev/pandas

extra:
recipe-maintainers:
- jreback
- jorisvandenbossche
- msarahan
- ocefpaf
- TomAugspurger
- WillAyd
- simonjayhawkins
- mroeschke
- datapythonista
- phofl
- lithomas1
- marcogorelli

0 comments on commit e33e8ae

Please sign in to comment.