Skip to content

Commit

Permalink
Merge pull request #1232 from openml/develop
Browse files Browse the repository at this point in the history
Release 0.13.1
  • Loading branch information
mfeurer authored Mar 22, 2023
2 parents d2ccfe9 + bb3793d commit 3380bbb
Show file tree
Hide file tree
Showing 94 changed files with 2,577 additions and 1,008 deletions.
2 changes: 1 addition & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ select = C,E,F,W,B,T
ignore = E203, E402, W503
per-file-ignores =
*__init__.py:F401
*cli.py:T001
*cli.py:T201
exclude =
venv
examples
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2

updates:
# This will check for updates to github actions every day
# https://docs.github.com/en/[email protected]/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
4 changes: 2 additions & 2 deletions .github/workflows/dist.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ jobs:
dist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Build dist
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@ jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install dependencies
run: |
pip install -e .[docs,examples,examples_unix]
# dependency "fanova" does not work with numpy 1.24 or later
# https://github.com/automl/fanova/issues/108
pip install numpy==1.23.5
- name: Make docs
run: |
cd doc
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ jobs:
run-all-files:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup Python 3.7
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.7
- name: Install pre-commit
Expand Down
29 changes: 23 additions & 6 deletions .github/workflows/release_docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,46 @@ name: release-docker
on:
push:
branches:
- 'main'
- 'develop'
- 'docker'

jobs:

docker:

runs-on: ubuntu-latest

steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: actions/checkout@v2

- name: Check out the repo
uses: actions/checkout@v3

- name: Extract metadata (tags, labels) for Docker Hub
id: meta_dockerhub
uses: docker/metadata-action@v4
with:
images: "openml/openml-python"

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: ./docker/
push: true
tags: openml/openml-python:latest
tags: ${{ steps.meta_dockerhub.outputs.tags }}
labels: ${{ steps.meta_dockerhub.outputs.labels }}

- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
117 changes: 117 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Tests

on: [push, pull_request]

jobs:
test:
name: (${{ matrix.os }}, Py${{ matrix.python-version }}, sk${{ matrix.scikit-learn }}, sk-only:${{ matrix.sklearn-only }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [3.7, 3.8]
scikit-learn: [0.21.2, 0.22.2, 0.23.1, 0.24]
os: [ubuntu-latest]
sklearn-only: ['true']
exclude: # no scikit-learn 0.21.2 release for Python 3.8
- python-version: 3.8
scikit-learn: 0.21.2
include:
- python-version: 3.6
scikit-learn: 0.18.2
scipy: 1.2.0
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.19.2
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.20.2
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.21.2
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.22.2
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.23.1
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.6
scikit-learn: 0.24
os: ubuntu-20.04
sklearn-only: 'true'
- python-version: 3.8
scikit-learn: 0.23.1
code-cov: true
sklearn-only: 'false'
os: ubuntu-latest
- os: windows-latest
sklearn-only: 'false'
scikit-learn: 0.24.*
fail-fast: false
max-parallel: 4

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup Python ${{ matrix.python-version }}
if: matrix.os != 'windows-latest' # windows-latest only uses preinstalled Python (3.7.9)
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install test dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test]
- name: Install scikit-learn ${{ matrix.scikit-learn }}
run: |
pip install scikit-learn==${{ matrix.scikit-learn }}
- name: Install numpy for Python 3.8
# Python 3.8 & scikit-learn<0.24 requires numpy<=1.23.5
if: ${{ matrix.python-version == '3.8' && contains(fromJSON('["0.23.1", "0.22.2", "0.21.2"]'), matrix.scikit-learn) }}
run: |
pip install numpy==1.23.5
- name: Install scipy ${{ matrix.scipy }}
if: ${{ matrix.scipy }}
run: |
pip install scipy==${{ matrix.scipy }}
- name: Store repository status
id: status-before
run: |
echo "::set-output name=BEFORE::$(git status --porcelain -b)"
- name: Run tests on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
if [ ${{ matrix.code-cov }} ]; then codecov='--cov=openml --long --cov-report=xml'; fi
# Most of the time, running only the scikit-learn tests is sufficient
if [ ${{ matrix.sklearn-only }} = 'true' ]; then sklearn='-m sklearn'; fi
echo pytest -n 4 --durations=20 --timeout=600 --timeout-method=thread --dist load -sv $codecov $sklearn --reruns 5 --reruns-delay 1 -o log_cli=true
pytest -n 4 --durations=20 --timeout=600 --timeout-method=thread --dist load -sv $codecov $sklearn --reruns 5 --reruns-delay 1 -o log_cli=true
- name: Run tests on Windows
if: matrix.os == 'windows-latest'
run: | # we need a separate step because of the bash-specific if-statement in the previous one.
pytest -n 4 --durations=20 --timeout=600 --timeout-method=thread --dist load -sv --reruns 5 --reruns-delay 1
- name: Check for files left behind by test
if: matrix.os != 'windows-latest' && always()
run: |
before="${{ steps.status-before.outputs.BEFORE }}"
after="$(git status --porcelain -b)"
if [[ "$before" != "$after" ]]; then
echo "git status from before: $before"
echo "git status from after: $after"
echo "Not all generated files have been deleted!"
exit 1
fi
- name: Upload coverage
if: matrix.code-cov && always()
uses: codecov/codecov-action@v3
with:
files: coverage.xml
fail_ci_if_error: true
verbose: true
74 changes: 0 additions & 74 deletions .github/workflows/ubuntu-test.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
*~
doc/generated
examples/.ipynb_checkpoints
venv

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down Expand Up @@ -75,6 +77,7 @@ target/
# IDE
.idea
*.swp
.vscode

# MYPY
.mypy_cache
Expand Down
26 changes: 16 additions & 10 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,28 +1,34 @@
repos:
- repo: https://github.com/psf/black
rev: 19.10b0
rev: 22.6.0
hooks:
- id: black
args: [--line-length=100]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.761
rev: v0.961
hooks:
- id: mypy
name: mypy openml
files: openml/*
files: openml/.*
additional_dependencies:
- types-requests
- types-python-dateutil
- id: mypy
name: mypy tests
files: tests/*
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.3
files: tests/.*
additional_dependencies:
- types-requests
- types-python-dateutil
- repo: https://github.com/pycqa/flake8
rev: 4.0.1
hooks:
- id: flake8
name: flake8 openml
files: openml/*
files: openml/.*
additional_dependencies:
- flake8-print==3.1.4
- flake8-print==5.0.0
- id: flake8
name: flake8 tests
files: tests/*
files: tests/.*
additional_dependencies:
- flake8-print==3.1.4
- flake8-print==5.0.0
Loading

0 comments on commit 3380bbb

Please sign in to comment.