Skip to content
Open
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
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ jobs:
# Do not abort other tests if only a single one fails
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12", "3.13"]

steps:
-
name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v6
-
# Store the current date to use it as cache key for the environment
name: Get current date
id: date
run: echo "date=$(date +%Y-%m-%d)" >> "${GITHUB_OUTPUT}"
-
name: Create Environment with Mamba
uses: mamba-org/setup-micromamba@v1
uses: mamba-org/setup-micromamba@v3
with:
environment-name: climada_env_${{ matrix.python-version }}
environment-file: requirements/env_climada.yml
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
-
name: Upload Coverage Reports
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: coverage-report-core-unittests-py${{ matrix.python-version }}
path: coverage/
Expand Down
2 changes: 1 addition & 1 deletion doc/getting-started/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Windows
* - **Supported Version**
- ``3.11``
* - Allowed Versions
- ``3.10``, ``3.11``, ``3.12``
- ``3.11``, ``3.12``, ``3.13``

.. _install-choice:

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ name = "climada"
version = "6.1.1-dev"
description = "Framework for climate risk assessment and adaptation option appraisal"
readme = "README.md"
requires-python = ">=3.10,<3.13"
requires-python = ">=3.10,<3.14"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

requires-python = ">=3.11,<3.14"

Do we want to require above 3.10 since the test fail due to the time needed to build the environment?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't have a strong opinion on that 🤷 @spjuhel @emanuel-schmid maybe?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Well technically I think you can install, it just takes forever.

I quickly looked around to see if there's a way to "discourage" a python version without enforcing the requirement, but it does not seem to exist (understandable).

I don't have a strong opinion either, and there are conflicting views on this:

  1. Support all python versions that haven't reached End-of-Life is package works with them
  2. Only support versions tested against.

I'd slightly favour 2. (because otherwise if we do implement some feature not available in 3.10 at some point, we will not see it fail), also because 3.10 end of life is at the end of 2026, so that's reasonable.

Discuss this at next SCRUM?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Is there a particular reason for the failure? Maybe just a conda hickup that might resolve itself again in a few days?

Copy link
Copy Markdown
Collaborator

@spjuhel spjuhel Apr 10, 2026

Choose a reason for hiding this comment

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

Edited 12:32:

My guess is that the dependency tree solving for 3.10 takes forever (10-20min) with respect to >3.10 (a few minutes). And we have an auto-cancel at 20 min.

timeout-minutes: 20

We could increase the duration (but then I would move the test to develop-to-main PRs only, or to manual runs, to avoid the hassle?)

license = { text = "GNU General Public License v3 (GPLv3)" }
authors = [
{ name = "ETH", email = "climada-info@sympa.ethz.ch" }
Expand Down
Loading