Skip to content
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b2a320c
Update build_wheel.yml
michaeltryby Aug 18, 2025
c20e38e
Update CMakeLists.txt
michaeltryby Aug 18, 2025
c2e7d19
Update Python version and dependencies in workflow
michaeltryby Aug 25, 2025
d98c998
Update OS and Python versions in CI workflow
michaeltryby Aug 25, 2025
637e46b
Update CIBW_SKIP to include cp-*38
michaeltryby Aug 25, 2025
f024b87
Revise unit test workflow for OS and action updates
michaeltryby Aug 25, 2025
451e465
Simplify unit test workflow by removing sys_pkgs
michaeltryby Aug 25, 2025
f962411
Add ninja requirement for macOS platform
michaeltryby Aug 25, 2025
55c698a
Fix SWIG_COMPILE_DEFINITIONS in CMakeLists.txt
michaeltryby Aug 25, 2025
221cb7e
Fix SWIG_COMPILE_DEFINITIONS for solver target
michaeltryby Aug 25, 2025
eb75de2
Change macOS deployment target in setup.py
michaeltryby Aug 25, 2025
9b818a6
Merge pull request #136 from michaeltryby/dev-build
michaeltryby Aug 25, 2025
0f59a2a
Update build system for CMake 4 and OpenMP 17.0.1
michaeltryby Aug 30, 2025
7d08b48
Merge branch 'dev' into dev-build
michaeltryby Aug 30, 2025
6173b78
Merge pull request #138 from michaeltryby/dev-build
michaeltryby Aug 30, 2025
8264fee
Make series test end period inclusive
michaeltryby Aug 30, 2025
1028402
Swith to develop
michaeltryby Aug 30, 2025
2cc7dbc
Unpin build requirements
michaeltryby Aug 30, 2025
a3c8b98
Merge branch 'dev' into dev
michaeltryby Aug 30, 2025
162acf9
Merge pull request #139 from michaeltryby/dev
michaeltryby Aug 30, 2025
9030d7f
update swig
karosc Aug 30, 2025
2dd627c
Merge pull request #140 from karosc/dev_update_swig
karosc Aug 31, 2025
ad1c88e
Bump checkout and setup-python actions
michaeltryby Aug 31, 2025
6e5ef9b
Enhance artifact handling
michaeltryby Aug 31, 2025
e31109c
Fix wheel artifact upload path in workflow
michaeltryby Aug 31, 2025
bd59d64
Fix wheel artifact upload path in workflow
michaeltryby Aug 31, 2025
dca2b01
Fix wheel filename retrieval in workflow
michaeltryby Aug 31, 2025
efd6d42
Fix path for wheel artifact upload
michaeltryby Aug 31, 2025
d3f2188
Fix path for wheel artifact upload in workflow
michaeltryby Aug 31, 2025
eeab848
Fix artifact name handling in build_wheel.yml
michaeltryby Aug 31, 2025
6ec1150
Simplify get_wheel step in build_wheel.yml
michaeltryby Aug 31, 2025
61e659b
Fix syntax error in artifact upload step
michaeltryby Aug 31, 2025
3a68736
Update wheel artifact upload path in workflow
michaeltryby Aug 31, 2025
cf51a66
Update wheel artifact upload step in workflow
michaeltryby Aug 31, 2025
2ab1a85
Update artifact name for wheel uploads
michaeltryby Aug 31, 2025
32f5ae9
Update wheel artifact name to include python version
michaeltryby Aug 31, 2025
91108e2
Update macOS deployment target and skip Python versions
michaeltryby Aug 31, 2025
e2aaa24
Update cmake_args for macOS in setup.py
michaeltryby Aug 31, 2025
a0f808d
Add MACOSX_DEPLOYMENT_TARGET to unit test workflow
michaeltryby Aug 31, 2025
5da0156
Change macOS architecture from x86_64 to arm64
michaeltryby Aug 31, 2025
a5178ae
Fix MACOSX_DEPLOYMENT_TARGET format in workflow
michaeltryby Aug 31, 2025
083390b
Change MACOSX_DEPLOYMENT_TARGET to string format
michaeltryby Aug 31, 2025
f77c28d
Update macOS architecture settings in build workflow
michaeltryby Sep 1, 2025
4de8ffa
Update GitHub Actions workflow for building wheels
michaeltryby Sep 1, 2025
b08774a
Add Python 3.13 to build matrix in workflows
michaeltryby Sep 1, 2025
a620d26
Update test requirements for pytest and numpy
michaeltryby Sep 1, 2025
7fab378
Merge pull request #142 from pyswmm/dev-wheel-build
michaeltryby Sep 1, 2025
0534806
Move OpenMP to swmm-solver
michaeltryby Sep 3, 2025
5578c8e
Merge pull request #145 from michaeltryby/dev-openmp
michaeltryby Sep 3, 2025
03a41f3
Staging Release Changes
bemcdonnell Sep 4, 2025
b699a6e
Merge pull request #148 from pyswmm/staging_release
bemcdonnell Sep 4, 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
47 changes: 24 additions & 23 deletions .github/workflows/build_wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,32 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: true
uses: actions/checkout@v5

- name: Install Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.7
python-version: '3.10'

- name: Build wheel
run: |
pip install wheel
python setup.py bdist_wheel
- uses: actions/upload-artifact@v3

- name: Upload wheel artifact
uses: actions/upload-artifact@v4
with:
name: nrtest-swmm-wheel
path: nrtest-swmm/dist/*.whl




build_wheels:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-2022, macos-12]
pyver: [cp38, cp39, cp310, cp311, cp312]
os: [ubuntu-latest, windows-latest, macos-latest]
pyver: [cp39, cp310, cp311, cp312, cp313]

steps:
- name: Checkout repo
Expand All @@ -56,10 +56,11 @@ jobs:
submodules: true

- name: Build wheels
uses: pypa/cibuildwheel@v2.17.0
uses: pypa/cibuildwheel@v3.1.4
with:
package-dir: ./swmm-toolkit
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
CIBW_TEST_COMMAND: "pytest {package}/tests"
CIBW_BEFORE_TEST: pip install -r {package}/test-requirements.txt
# mac needs ninja to build
Expand All @@ -70,31 +71,31 @@ jobs:
# configure cibuildwheel to build native archs ('auto'), and some emulated ones
CIBW_ARCHS_LINUX: x86_64
CIBW_ARCHS_WINDOWS: AMD64
CIBW_ARCHS_MACOS: x86_64
CIBW_ARCHS_MACOS: x86_64 arm64
# only build current supported python: https://devguide.python.org/versions/
# don't build pypy or musllinux to save build time. TODO: find a good way to support those archs
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_SKIP: cp36-* cp37-* pp* *-musllinux*
CIBW_SKIP: cp38-* pp* *-musllinux*
# Will avoid testing on emulated architectures
# Skip trying to test arm64 builds on Intel Macs
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *-macosx_arm64 *-macosx_universal2:arm64"
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *-macosx_universal2:arm64"
CIBW_BUILD_VERBOSITY: 1

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.pyver }}
path: ./wheelhouse/*.whl

build_cross_wheels:
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest,macos-12]
pyver: [cp38, cp39, cp310, cp311, cp312]
pyver: [cp39, cp310, cp311, cp312, cp313]

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v5
with:
submodules: true

Expand All @@ -105,7 +106,7 @@ jobs:
platforms: all

- name: Build wheels
uses: pypa/cibuildwheel@v2.17.0
uses: pypa/cibuildwheel@v3.1.4
with:
package-dir: ./swmm-toolkit
env:
Expand All @@ -114,13 +115,13 @@ jobs:
CIBW_BEFORE_BUILD_LINUX: rm -f $(which swig) && rm -f $(which swig4.0)
# configure cibuildwheel to build native archs ('auto'), and some emulated ones
CIBW_ARCHS_LINUX: aarch64
CIBW_ARCHS_MACOS: arm64
# only build current supported python: https://devguide.python.org/versions/
# don't build pypy or musllinux to save build time. TODO: find a good way to support those archs
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_SKIP: cp36-* cp37-* pp* *-musllinux*
CIBW_SKIP: cp-*38 pp* *-musllinux*
CIBW_BUILD_VERBOSITY: 1

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: wheels-linux-aarch64-${{ matrix.pyver }}
path: ./wheelhouse/*.whl
21 changes: 9 additions & 12 deletions .github/workflows/unit_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,31 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [windows-2022, macos-12, ubuntu-latest]
os: [windows-latest, ubuntu-latest, macos-latest]
include:
- os: windows-2022
sys_pkgs: choco install swig
- os: windows-latest
activate: ./build-env/Scripts/activate

- os: macos-12
sys_pkgs: brew install swig ninja
- os: macos-latest
activate: source ./build-env/bin/activate

- os: ubuntu-latest
activate: source ./build-env/bin/activate

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true

- name: Install Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install required system packages
run: ${{matrix.sys_pkgs}}
python-version: "3.10"

- name: Build wheel in virtual env
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
run: |
python -m venv --clear ./build-env
${{matrix.activate}}
Expand All @@ -60,4 +57,4 @@ jobs:
run: |
pip install -r test-requirements.txt
pip install --no-index --find-links=./dist swmm_toolkit
pytest
pytest
14 changes: 2 additions & 12 deletions swmm-toolkit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# CMakeLists.txt - CMake configuration file for swmm-toolkit python package
#
# Created: Feb 6, 2020
# Modified Jun 7, 2021
# Modified Sep 2, 2025
#
# Author: See AUTHORS
#
Expand All @@ -11,7 +11,7 @@
################## CMAKELISTS FOR SWMM-TOOLKIT PROJECT ###################
################################################################################

cmake_minimum_required (VERSION 3.17)
cmake_minimum_required (VERSION 4.0.2)

project(swmm-toolkit
VERSION
Expand All @@ -36,16 +36,6 @@ cmake_policy(SET CMP0078 NEW)
cmake_policy(SET CMP0086 NEW)
include(${SWIG_USE_FILE})

# If wheel build on Apple fetch and build OpenMP Library
if (APPLE)
include(./extern/openmp.cmake)
else()
find_package(OpenMP
REQUIRED
OPTIONAL_COMPONENTS
C
)
endif()

# Add project subdirectories
add_subdirectory(swmm-solver)
Expand Down
10 changes: 5 additions & 5 deletions swmm-toolkit/build-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@



setuptools == 65.5.1
wheel == 0.38.1
scikit-build == 0.11.1
cmake == 3.21
swig == 4.0.2
setuptools
wheel
scikit-build
cmake
swig
Loading
Loading