Skip to content

Commit

Permalink
Merge branch 'main' into numbagg
Browse files Browse the repository at this point in the history
* main: (68 commits)
  convert datetime: micro-optimizations (#261)
  compatibility with `numpy>=2.0` (#257)
  replace the deprecated `provision-with-micromamba` with `setup-micromamba` (#258)
  Fix some typing errors in asv_bench and tests (#253)
  [pre-commit.ci] pre-commit autoupdate (#250)
  typing fixes (#235)
  Fix test failure on i386 (#248)
  Delete resample_reduce (#246)
  Bump codecov/codecov-action from 3.1.3 to 3.1.4 (#243)
  Enable nanargmax, nanargmin (#171)
  Support nanfirst, nanlast with simple combine algo (#240)
  Check method only for dask reductions. (#241)
  Optimize broadcasting (#230)
  Handle min_count=0 (#238)
  Try and fix dtypes on 3.8,3.10 windows
  Preserve input dtypes now that pandas can do it.
  Add pytest-pretty to envs
  factorize early as much as possible
  Bump codecov/codecov-action from 3.1.1 to 3.1.3 (#239)
  [pre-commit.ci] pre-commit autoupdate (#229)
  ...
  • Loading branch information
dcherian committed Sep 28, 2023
2 parents fea47a5 + 5ea713e commit 4c78f8e
Show file tree
Hide file tree
Showing 60 changed files with 22,487 additions and 2,356 deletions.
4 changes: 4 additions & 0 deletions .git_archival.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node: $Format:%H$
node-date: $Format:%cI$
describe-name: $Format:%(describe:tags=true)$
ref-names: $Format:%D$
7 changes: 4 additions & 3 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@ jobs:
fetch-depth: 0

- name: Set up conda environment
uses: mamba-org/provision-with-micromamba@v13
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/environment.yml
environment-name: flox-tests
cache-env: true
# extra-specs: |
init-shell: bash
cache-environment: true
# create-args: |
# python="${{ matrix.python-version }}"

# - name: Setup some dependencies
Expand Down
45 changes: 32 additions & 13 deletions .github/workflows/ci-additional.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- uses: xarray-contrib/ci-trigger@v1.1
- uses: xarray-contrib/ci-trigger@v1.2
id: detect-trigger
with:
keyword: "[skip-ci]"
Expand Down Expand Up @@ -53,14 +53,15 @@ jobs:
echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Setup micromamba
uses: mamba-org/provision-with-micromamba@34071ca7df4983ccd272ed0d3625818b27b70dcc
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ${{env.CONDA_ENV_FILE}}
environment-name: flox-tests
extra-specs: |
python=${{env.PYTHON_VERSION}}
cache-env: true
init-shell: bash
cache-environment: true
cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: |
python=${{ env.PYTHON_VERSION }}
- name: Install flox
run: |
Expand All @@ -71,7 +72,15 @@ jobs:
conda list
- name: Run doctests
run: |
python -m pytest --doctest-modules flox --ignore flox/tests
python -m pytest --doctest-modules flox --ignore flox/tests --cov=./ --cov-report=xml
- name: Upload code coverage to Codecov
uses: codecov/[email protected]
with:
file: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS
name: codecov-umbrella
fail_ci_if_error: false

mypy:
name: Mypy
Expand All @@ -94,15 +103,16 @@ jobs:
run: |
echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Setup micromamba
uses: mamba-org/provision-with-micromamba@34071ca7df4983ccd272ed0d3625818b27b70dcc
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ${{env.CONDA_ENV_FILE}}
environment-name: xarray-tests
extra-specs: |
python=${{env.PYTHON_VERSION}}
cache-env: true
environment-name: flox-tests
init-shell: bash
cache-environment: true
cache-env-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
- name: Install xarray
create-args: |
python=${{ env.PYTHON_VERSION }}
- name: Install flox
run: |
python -m pip install --no-deps -e .
- name: Version info
Expand All @@ -115,4 +125,13 @@ jobs:
- name: Run mypy
run: |
python -m mypy --install-types --non-interactive
python -m mypy --install-types --non-interactive --cobertura-xml-report mypy_report
- name: Upload mypy coverage to Codecov
uses: codecov/[email protected]
with:
file: mypy_report/cobertura.xml
flags: mypy
env_vars: PYTHON_VERSION
name: codecov-umbrella
fail_ci_if_error: false
63 changes: 27 additions & 36 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-latest", "windows-latest"]
python-version: ["3.8", "3.10"]
steps:
- uses: actions/checkout@v3
Expand All @@ -34,22 +34,22 @@ jobs:
run: |
echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
- name: Set up conda environment
uses: mamba-org/provision-with-micromamba@v13
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/environment.yml
environment-name: flox-tests
cache-env: true
extra-specs: |
python="${{ matrix.python-version }}"
init-shell: bash
cache-environment: true
create-args: |
python=${{ matrix.python-version }}
- name: Install flox
run: |
python -m pip install -e .
conda list
python -m pip install --no-deps -e .
- name: Run Tests
run: |
pytest -n auto --cov=./ --cov-report=xml
- name: Upload code coverage to Codecov
uses: codecov/[email protected].1
uses: codecov/[email protected].4
with:
file: ./coverage.xml
flags: unittests
Expand Down Expand Up @@ -78,38 +78,28 @@ jobs:
with:
fetch-depth: 0 # Fetch all history for all branches and tags.
- name: Set up conda environment
uses: mamba-org/provision-with-micromamba@v13
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/${{ matrix.env }}.yml
environment-file: ci/environment.yml
environment-name: flox-tests
cache-env: true
extra-specs: |
python="${{ matrix.python-version }}"
init-shell: bash
cache-environment: true
create-args: |
python=${{ matrix.python-version }}
- name: Install flox
run: |
python -m pip install --no-deps -e .
- name: Run tests
run: |
python -m pytest -n auto
upstream-dev:
name: upstream-dev
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v3
- name: Set up conda environment
uses: mamba-org/provision-with-micromamba@v13
python -m pytest -n auto --cov=./ --cov-report=xml
- name: Upload code coverage to Codecov
uses: codecov/[email protected]
with:
environment-file: ci/upstream-dev-env.yml
environment-name: flox-tests
extra-specs: |
python="3.10"
- name: Run Tests
run: |
pytest -n 2
file: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS
name: codecov-umbrella
fail_ci_if_error: false

xarray-groupby:
name: xarray-groupby
Expand All @@ -123,13 +113,14 @@ jobs:
repository: 'pydata/xarray'
fetch-depth: 0 # Fetch all history for all branches and tags.
- name: Set up conda environment
uses: mamba-org/provision-with-micromamba@v13
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/requirements/environment.yml
environment-name: xarray-tests
cache-env: true
extra-specs: |
python="3.10"
init-shell: bash
cache-environment: true
create-args: |
python=3.10
- name: Install xarray
run: |
python -m pip install --no-deps .
Expand Down
89 changes: 89 additions & 0 deletions .github/workflows/testpypi-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Build and Upload to TestPyPI

on:
push:
branches:
- "main"
pull_request:
types: [opened, reopened, synchronize, labeled]
branches:
- "*"
workflow_dispatch:

# no need for concurrency limits

jobs:
build-artifacts:
if: ${{ contains( github.event.pull_request.labels.*.name, 'test-build') && github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/setup-python@v4
name: Install Python
with:
python-version: "3.10"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build twine
python -m pip install tomli tomli_w
# - name: Disable local versions
# run: |
# python .github/workflows/configure-testpypi-version.py pyproject.toml
# git update-index --assume-unchanged pyproject.toml
# cat pyproject.toml

- name: Build tarball and wheels
run: |
git clean -xdf
python -m build
- name: Check built artifacts
run: |
python -m twine check --strict dist/*
if [ -f dist/flox-999.tar.gz ]; then
echo "❌ INVALID VERSION NUMBER"
exit 1
else
echo "✅ Looks good"
fi
- uses: actions/upload-artifact@v3
with:
name: releases
path: dist

test-built-dist:
needs: build-artifacts
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: "3.10"
- uses: actions/download-artifact@v3
with:
name: releases
path: dist
- name: List contents of built dist
run: |
ls -ltrh
ls -ltrh dist
- name: Verify the built dist/wheel is valid
run: |
python -m pip install --upgrade pip
python -m pip install dist/flox*.whl
# python -m cf_xarray.scripts.print_versions
# - name: Publish package to TestPyPI
# uses: pypa/[email protected]
# with:
# password: ${{ secrets.TESTPYPI_TOKEN }}
# repository_url: https://test.pypi.org/legacy/
# verbose: true
64 changes: 64 additions & 0 deletions .github/workflows/upstream-dev-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CI Upstream
on:
push:
branches:
- main
pull_request:
types: [opened, reopened, synchronize, labeled]
branches:
- main
schedule:
- cron: "0 0 * * *" # Daily “At 00:00” UTC
workflow_dispatch: # allows you to trigger the workflow run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
upstream-dev:
name: upstream-dev
runs-on: ubuntu-latest
if: ${{ (contains(github.event.pull_request.labels.*.name, 'test-upstream') && github.event_name == 'pull_request') || github.event_name == 'workflow_dispatch' }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history for all branches and tags.
- name: Set environment variables
run: |
echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
- name: Set up conda environment
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/upstream-dev-env.yml
environment-name: flox-tests
init-shell: bash
cache-environment: true
create-args: >-
python=${{ matrix.python-version }}
pytest-reportlog
- name: Install flox
run: |
python -m pip install --no-deps -e .
- name: Run Tests
if: success()
id: status
run: |
pytest -rf -n auto --cov=./ --cov-report=xml \
--report-log output-${{ matrix.python-version }}-log.jsonl
- name: Generate and publish the report
if: |
failure()
&& steps.status.outcome == 'failure'
&& github.event_name == 'schedule'
&& github.repository_owner == 'xarray-contrib'
uses: xarray-contrib/issue-from-pytest-log@v1
with:
log-path: output-${{ matrix.python-version }}-log.jsonl
Loading

0 comments on commit 4c78f8e

Please sign in to comment.