Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
1bad1f5
add testing 3.13 python to workflow
Sep 19, 2025
5426c19
remove other tests to speed up tests
Sep 19, 2025
51c5f8a
update integration tests for only 3.13
Sep 19, 2025
a7d2e3a
update integration tests to have py3.13 too
Sep 19, 2025
d4b25d6
update setup py for 3.13
Sep 19, 2025
3f8ca99
run both tests to see what happens
Sep 19, 2025
539bd8a
try if 3.10 works
Sep 19, 2025
a30d250
test
Sep 19, 2025
ada6026
add new setup block for 3.13
Sep 19, 2025
d14af8f
use pip for 13
Sep 19, 2025
d0ae933
revert integration test
Sep 19, 2025
a18d970
isolating pip block
Sep 19, 2025
d974266
add 3.13 to core
Sep 19, 2025
9f3797d
only use pip
Sep 19, 2025
00bcb1e
restart with just 3.13 addition
Sep 26, 2025
b22816f
trying to hardcode greenlet version just to test
Sep 26, 2025
de69b64
fix syntax issue from typo
Sep 26, 2025
7a301c9
refer to branch of idaes-pse on fork
Sep 26, 2025
5d23f58
refer to branch of idaes-pse on fork syntax fix
Sep 26, 2025
275c91d
refer to branch of idaes-pse on fork syntax fix
Sep 26, 2025
32be0e8
black formatting
Sep 26, 2025
2c0ff9d
change integration tests to also test with 3.13 python
Sep 29, 2025
86fa75e
Merge branch 'main' into issue-1668
ksbeattie Sep 29, 2025
4b5ebb3
add 3.13 to examples
Sep 29, 2025
7c05f41
update checkout version from 4 to 5
Sep 29, 2025
7ddc270
testing pytest site setup
Sep 29, 2025
9cb3c0f
testing to see if this will add 3.12 integration tests bacK
Sep 29, 2025
22f37c4
isolate for pytest
Sep 29, 2025
683eabf
now joining in tests for examples
Sep 30, 2025
b97d10a
add documentation
Oct 2, 2025
b56c0f4
refer to package idaes-ui
Oct 2, 2025
db70ca3
Merge branch 'main' into issue-1668
Oct 2, 2025
1764587
typo fix [skip ci]
Oct 2, 2025
e52523a
Merge branch 'main' into issue-1668
sufikaur Oct 2, 2025
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: 5 additions & 3 deletions .github/workflows/core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
os:
- linux
- win64
Expand All @@ -101,15 +101,17 @@ jobs:
# only generate coverage report for a single python version in the matrix
# to avoid overloading Codecov
cov-report: true

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: ./.github/actions/display-debug-info
- name: Set up Conda environment
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: ${{ env.IDAES_CONDA_ENV_NAME_DEV }}
python-version: ${{ matrix.python-version }}
miniforge-version: latest

- name: Set up idaes
uses: ./.github/actions/setup-idaes
with:
Expand All @@ -128,7 +130,7 @@ jobs:
name: coverage-report-${{ matrix.os }}
path: coverage.xml
if-no-files-found: error

upload-coverage:
name: Upload coverage report (Codecov)
needs: [pytest]
Expand Down
12 changes: 3 additions & 9 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,24 +87,20 @@ jobs:
run: |
import json
from os import environ as env

def _display_on_run_dashboard(msg):
# workflow warnings are displayed on the workflow run dashboard,
# so we use this as a way to display a short summary of why this workflow is being run
# without having to dig in each job's log output
print(f'::warning ::{msg}')
def _set_output(name, val):
print(f'::set-output name={name}::{val}')

event_name = env["GITHUB_EVENT_NAME"]
event_action = env["_GITHUB_EVENT_ACTION"]
is_pr = 'pull_request' in event_name.lower()
# if the event is not a PR event, the "is_pr_approved" env var will be set to an empty string,
# which cannot be parsed as valid json
is_pr_approved = json.loads(env.get("is_pr_approved") or "null")

workflow_trigger = 'undetermined'

if is_pr:
if event_action == 'labeled':
workflow_trigger = 'user_dispatch'
Expand All @@ -114,11 +110,9 @@ jobs:
workflow_trigger = 'unapproved_pr'
else:
workflow_trigger = 'not_pr'

msg = f'{workflow_trigger=} event/action={event_name}/{event_action or "N/A"} is_pr_approved={is_pr_approved or "N/A"}'
_display_on_run_dashboard(msg)
_set_output('workflow-trigger', workflow_trigger)

pytest:
name: pytest (py${{ matrix.python-version }}/${{ matrix.os }}/integration)
runs-on: ${{ matrix.runner-image }}
Expand All @@ -132,7 +126,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
os:
- linux
- win64
Expand Down Expand Up @@ -170,7 +164,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
os:
- linux
- win64
Expand Down Expand Up @@ -259,4 +253,4 @@ jobs:
run: |
pushd "$(mktemp -d)"
pip install pytest
pytest --pyargs idaes -W ignore -rs
pytest --pyargs idaes -W ignore -rs
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ for Python 3. The following sub-versions are supported:
* Python 3.10
* Python 3.11
* Python 3.12
* Python 3.13


> [!IMPORTANT]
> Note that Python 3.8 is no longer officially supported.
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
todo_include_todos = False

# Global constants for supported Python versions
IDAES_PV_MIN, IDAES_PV_MAX, IDAES_PV_DEFAULT = "3.9", "3.12", "3.10"
IDAES_PV_MIN, IDAES_PV_MAX, IDAES_PV_DEFAULT = "3.9", "3.13", "3.10"

# This block of text will be virtually present at the end of every file.
# Used here to define substitutions for re-used URLs, e.g. just add "|examples-site|" to
Expand Down
11 changes: 3 additions & 8 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ class ExtraDependencies:
"""

ui = [
# FIXME this must be changed to the PyPI distribution for the release
# "idaes-ui",
"idaes-ui @ git+https://github.com/IDAES/idaes-ui@main",
"idaes-ui",
]
omlt = [
"omlt==1.1", # fix the version for now as package evolves
Expand All @@ -52,11 +50,7 @@ class ExtraDependencies:
coolprop = [
"coolprop>=7.0", # idaes.generic_models.properties.general.coolprop
]
testing = [
"pytest",
"addheader",
"pyyaml",
]
testing = ["pytest", "addheader", "pyyaml"]

def __init__(self):
self._data = dict(type(self).__dict__)
Expand Down Expand Up @@ -156,6 +150,7 @@ def __getitem__(self, key):
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering :: Chemistry",
Expand Down
Loading