Skip to content
Draft
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
28 changes: 17 additions & 11 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.13"
python-version: "3.14"
miniforge-version: latest
channels: conda-forge
conda-remove-defaults: "true"
Expand All @@ -84,7 +84,7 @@ jobs:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.13'
python-version: '3.14'
miniforge-version: latest
channels: conda-forge
conda-remove-defaults: "true"
Expand All @@ -105,11 +105,11 @@ jobs:
matrix:
include:
- operating-system: ubuntu-latest
python-version: '3.13'
python-version: '3.14'
environment-file: .ci_support/environment-openmpi.yml

- operating-system: ubuntu-latest
python-version: '3.13'
python-version: '3.14'
environment-file: .ci_support/environment-mpich.yml

steps:
Expand Down Expand Up @@ -302,13 +302,16 @@ jobs:
matrix:
include:
- operating-system: macos-latest
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-24.04-arm
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-22.04-arm
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-latest
python-version: '3.14'

- operating-system: ubuntu-latest
python-version: '3.13'
Expand Down Expand Up @@ -343,15 +346,18 @@ jobs:
matrix:
include:
- operating-system: macos-latest
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-latest
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-24.04-arm
python-version: '3.13'
python-version: '3.14'

- operating-system: ubuntu-22.04-arm
python-version: '3.14'

- operating-system: ubuntu-latest
python-version: '3.13'

- operating-system: ubuntu-latest
Expand Down Expand Up @@ -384,7 +390,7 @@ jobs:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.13"
python-version: "3.14"
miniforge-version: latest
channels: conda-forge
conda-remove-defaults: "true"
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ authors = [
readme = "README.md"
license = { file = "LICENSE" }
keywords = ["high performance computing", "hpc", "task scheduler", "slurm", "flux-framework", "executor"]
requires-python = ">3.9, <3.14"
requires-python = ">3.9, <3.15"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Topic :: Scientific/Engineering :: Physics",
Expand All @@ -27,6 +27,7 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
dependencies = [
"cloudpickle==3.1.2",
Expand Down
5 changes: 5 additions & 0 deletions tests/integration/test_pyiron_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from time import sleep
from typing import Callable
import unittest
import sys

from executorlib import SingleNodeExecutor
from executorlib.standalone.serialize import cloudpickle_register
Expand Down Expand Up @@ -55,6 +56,10 @@ def as_dynamic_foo(fnc: Callable):
return as_dynamic_foo


@unittest.skipIf(
sys.version_info.minor >= 14 and sys.version_info.minor >= 3,
"Test environment has to be Python <3.14 for dynamic objects.",
)
Comment on lines +59 to +62
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Bug in skipIf condition: .minor used twice instead of .major + .minor.

sys.version_info.minor >= 14 and sys.version_info.minor >= 3

Both sides reference .minor. The second clause (minor >= 3) is always True when the first (minor >= 14) is, making the and entirely redundant. The condition collapses to sys.version_info.minor >= 14, which happens to work for current Python 3.x releases but would silently misbehave on a future Python 4.x (e.g., 4.0 has minor=0, so no skip even if the same cloudpickle bug persists).

The idiomatic and correct form is a tuple comparison:

🐛 Proposed fix
 `@unittest.skipIf`(
-    sys.version_info.minor >= 14 and sys.version_info.minor >= 3,
+    sys.version_info >= (3, 14),
     "Test environment has to be Python <3.14 for dynamic objects.",
 )
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/integration/test_pyiron_workflow.py` around lines 59 - 62, The skip
condition incorrectly uses sys.version_info.minor twice; change the decorator's
condition to compare the version tuple instead of comparing .minor fields (e.g.,
replace the current sys.version_info.minor >= 14 and sys.version_info.minor >= 3
with a tuple comparison like sys.version_info >= (3, 14) or an equivalent
major/minor check) so the `@unittest.skipIf` using sys.version_info correctly
skips on Python versions >= 3.14; update the `@unittest.skipIf` expression that
references sys.version_info in the test_pyiron_workflow.py decorator
accordingly.

class TestDynamicallyDefinedObjects(unittest.TestCase):
def test_args(self):
"""
Expand Down
Loading