From f6d797fbe906c60bebc89a6a30f8d8af9f44afde Mon Sep 17 00:00:00 2001 From: Federico Berto Date: Sat, 26 Nov 2022 08:13:06 +0900 Subject: [PATCH 1/5] Update workflows --- .github/workflows/os-coverage.yml | 55 ++++++++++++++++++------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/.github/workflows/os-coverage.yml b/.github/workflows/os-coverage.yml index 7b33a7b..0955339 100644 --- a/.github/workflows/os-coverage.yml +++ b/.github/workflows/os-coverage.yml @@ -7,38 +7,47 @@ jobs: strategy: fail-fast: true max-parallel: 15 - matrix: - os: [ubuntu-18.04, ubuntu-20.04, ubuntu-22.04, macos-latest] - python-version: [3.7, 3.8, 3.9] + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ['3.7', '3.8', '3.9', '3.10'] exclude: - # temporary exclusion until py3.8 deps work on Windows - - python-version: 3.7 - os: windows-2019 - - python-version: 3.8 - os: windows-2019 - + - python-version: '3.7' + os: windows-latest # https://pytorch.org/get-started/locally/#windows-python (actually 3.7 seems to be the problem) + defaults: + run: + shell: bash steps: - - uses: actions/checkout@v2 + - name: Check out repository + uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - + + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + + - name: Load cached venv + id: cached-pip-wheels + uses: actions/cache@v3 + with: + path: ~/.cache + key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + - name: Install dependencies run: | - curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python - - source $HOME/.poetry/env - python -m pip install --upgrade --user pip pip install pytest pytest-cov - poetry lock - poetry build poetry install - poetry run pip install 'setuptools==59.5.0' - # pinning setuptools is a temporary fix to: pytorch-lightning 1.5.10 requires setuptools==59.5.0 - # supposedly poetry allows pinning ver. of setuptools in pyproject.ml files but it is not working atm https://github.com/python-poetry/poetry/issues/4511 - - - name: Run tests + poetry run pip install setuptools + + - name: Run pytest checks run: | - source $HOME/.poetry/env + source $VENV poetry run coverage run --source=torchdyn -m pytest + + - name: Report coverage + uses: codecov/codecov-action@v3.1.1 From a4346b7e35a40b8affd736b4cb648f1a59587cfe Mon Sep 17 00:00:00 2001 From: Federico Berto Date: Sat, 26 Nov 2022 08:25:43 +0900 Subject: [PATCH 2/5] Fix `sklearn` --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b178534..48ebb84 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ python = "^3.7" torch = "^1.8.1" torchsde="*" torchcde="^0.2.3" -sklearn = "*" +scikit-learn = "*" pytorch-lightning = "*" torchvision = "*" scipy = "*" From 95765b2fa0cd3824d4ca285098749f8dc6edf0ac Mon Sep 17 00:00:00 2001 From: Federico Berto Date: Sat, 26 Nov 2022 08:52:46 +0900 Subject: [PATCH 3/5] =?UTF-8?q?Hack=20for=20Torch=20=F0=9F=90=9B:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/os-coverage.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/os-coverage.yml b/.github/workflows/os-coverage.yml index 0955339..514f4ce 100644 --- a/.github/workflows/os-coverage.yml +++ b/.github/workflows/os-coverage.yml @@ -38,9 +38,10 @@ jobs: path: ~/.cache key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Install dependencies + - name: Install dependencies # hack for 🐛: don't let poetry try installing Torch https://github.com/pytorch/pytorch/issues/88049 run: | - pip install pytest pytest-cov + pip install pytest pytest-cov + pip install torch torchvision pytorch-lightning poetry install poetry run pip install setuptools From c33be50dbbf0eec3e2017b3f7a794f6603e6869e Mon Sep 17 00:00:00 2001 From: Federico Berto Date: Sat, 26 Nov 2022 09:10:12 +0900 Subject: [PATCH 4/5] =?UTF-8?q?Avoid=20Torch=20=F0=9F=90=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/os-coverage.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/os-coverage.yml b/.github/workflows/os-coverage.yml index 514f4ce..d88c761 100644 --- a/.github/workflows/os-coverage.yml +++ b/.github/workflows/os-coverage.yml @@ -40,9 +40,9 @@ jobs: - name: Install dependencies # hack for 🐛: don't let poetry try installing Torch https://github.com/pytorch/pytorch/issues/88049 run: | - pip install pytest pytest-cov - pip install torch torchvision pytorch-lightning - poetry install + pip install pytest pytest-cov papermill poethepoet>=0.10.0 + pip install torch>=1.8.1 torchvision pytorch-lightning scikit-learn torchcde>=0.2.3 scipy matplotlib ipykernel ipywidgets + poetry install --only-root poetry run pip install setuptools - name: Run pytest checks From e261febc0dbaba8fbc6c5945df28d79ab1070ed6 Mon Sep 17 00:00:00 2001 From: Federico Berto Date: Sat, 26 Nov 2022 09:11:55 +0900 Subject: [PATCH 5/5] =?UTF-8?q?Fix=20`torch`=20wheels=20issues=20on=20Mac?= =?UTF-8?q?=20=F0=9F=90=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/os-coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/os-coverage.yml b/.github/workflows/os-coverage.yml index d88c761..ec513bc 100644 --- a/.github/workflows/os-coverage.yml +++ b/.github/workflows/os-coverage.yml @@ -41,7 +41,7 @@ jobs: - name: Install dependencies # hack for 🐛: don't let poetry try installing Torch https://github.com/pytorch/pytorch/issues/88049 run: | pip install pytest pytest-cov papermill poethepoet>=0.10.0 - pip install torch>=1.8.1 torchvision pytorch-lightning scikit-learn torchcde>=0.2.3 scipy matplotlib ipykernel ipywidgets + pip install torch>=1.8.1 torchvision pytorch-lightning scikit-learn torchsde torchcde>=0.2.3 scipy matplotlib ipykernel ipywidgets poetry install --only-root poetry run pip install setuptools