Skip to content

Commit c783286

Browse files
authored
Fix failing Windows CI (#94)
* removed bad compile flag * prepared version patch bump to 3.2.1
1 parent 985fd33 commit c783286

8 files changed

Lines changed: 68 additions & 10 deletions

File tree

.github/workflows/basic_build.yml

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -417,12 +417,19 @@ jobs:
417417
submodules: true
418418

419419
- name: Set up Fortran compiler
420-
if: ${{ runner.os != 'Windows' || matrix.toolchain.fcompiler != 'gcc' }}
420+
if: ${{ runner.os == 'Linux' || (runner.os == 'Windows' && matrix.toolchain.fcompiler != 'gcc') }}
421421
uses: fortran-lang/setup-fortran@v1
422422
with:
423423
compiler: ${{ matrix.toolchain.fcompiler }}
424424
version: ${{ matrix.toolchain.fversion }}
425425

426+
- name: Set up Fortran compiler (macOS, gfortran)
427+
if: ${{ runner.os == 'macOS' && matrix.toolchain.fcompiler == 'gcc' }}
428+
run: |
429+
brew update
430+
brew install gcc@14
431+
echo "FC=gfortran-14" >> "$GITHUB_ENV"
432+
426433
- name: Set up Fortran compiler (Windows, gfortran)
427434
if: ${{ runner.os == 'Windows' && matrix.toolchain.fcompiler == 'gcc' }}
428435
run: |
@@ -444,10 +451,18 @@ jobs:
444451
}
445452
shell: pwsh
446453

447-
- name: Set up C Compiler
448-
if: ${{matrix.toolchain.ccompiler == 'msvc'}}
454+
- name: Set up MSVC toolchain (Windows MSVC/Intel)
455+
if: ${{ runner.os == 'Windows' && (matrix.toolchain.ccompiler == 'msvc' || matrix.toolchain.fcompiler == 'intel') }}
449456
uses: ilammy/msvc-dev-cmd@v1
450457

458+
- name: Remove MinGW/MSYS paths for Windows Intel builds
459+
if: ${{ runner.os == 'Windows' && matrix.toolchain.fcompiler == 'intel' }}
460+
shell: pwsh
461+
run: |
462+
$parts = $env:PATH -split ';'
463+
$clean = $parts | Where-Object { $_ -and ($_ -notmatch 'mingw') -and ($_ -notmatch 'msys') -and ($_ -notmatch 'strawberry') }
464+
"PATH=$($clean -join ';')" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
465+
451466
- name: Install build tools
452467
run: |
453468
python -m pip install --upgrade pip
@@ -474,9 +489,15 @@ jobs:
474489
-DSKIP_ROBUST=YES
475490
cmake --build build/extern/gfe --target install
476491
477-
- name: Configure (linux)
492+
- name: Configure (Ninja)
478493
if: ${{runner.os != 'Windows' || matrix.toolchain.ccompiler != 'msvc'}}
479494
run: |
495+
cmake_fortran_flags=()
496+
if [ "${{ matrix.toolchain.fcompiler }}" = "gcc" ]; then
497+
# This is a gfortran-only flag; Windows ifx fails compiler detection with it.
498+
cmake_fortran_flags+=(-DCMAKE_Fortran_FLAGS="-ffree-line-length-none")
499+
fi
500+
480501
cmake -S . -B build -G Ninja \
481502
-DCMAKE_PREFIX_PATH=build/install \
482503
-DCMAKE_BUILD_TYPE=Debug \
@@ -486,7 +507,7 @@ jobs:
486507
-DCEA_ENABLE_BIND_PYTHON=OFF \
487508
-DCEA_ENABLE_BIND_MATLAB=OFF \
488509
-DCEA_ENABLE_BIND_EXCEL=OFF \
489-
-DCMAKE_Fortran_FLAGS="-ffree-line-length-none"
510+
"${cmake_fortran_flags[@]}"
490511
491512
- name: Configure (msvc)
492513
if: ${{runner.os == 'Windows' && matrix.toolchain.ccompiler == 'msvc'}}

.github/workflows/publish_wheels.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ jobs:
7979
CIBW_TEST_ENVIRONMENT: "CEA_DATA_DIR={project}/data"
8080
CIBW_ENVIRONMENT_MACOS: ${{ matrix.os == 'macos-14' && 'FC=gfortran-14 MACOSX_DEPLOYMENT_TARGET=14.0' || 'FC=gfortran-14 MACOSX_DEPLOYMENT_TARGET=15.0' }}
8181
CIBW_ENVIRONMENT_WINDOWS: "FC=ifx CC=icx CXX=icx"
82+
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: >-
83+
delvewheel repair
84+
--add-path "{project}/build/py-build/source/bind/c"
85+
-w {dest_dir}
86+
-v {wheel}
8287
CMAKE_ARGS: "-DCEA_BUILD_TESTING=OFF"
8388
run: |
8489
cibuildwheel --output-dir dist

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,39 @@ All notable user-visible changes to this project are documented here.
55
## [Unreleased]
66

77
### Changed
8+
9+
### Fixed
10+
11+
### Added
12+
13+
## [3.2.1] - 2026-06-23
14+
15+
### Changed
16+
- Legacy CLI `outp long` now enables extra-precision numeric output formatting
17+
across equilibrium, rocket, shock, and detonation reports.
818
- Python `cea.eq_solve` remains a deprecated compatibility shim, but now
919
returns the legacy object-based `EqSolution` result again via the compiled
1020
binding instead of forwarding to the MATLAB wrapper.
21+
- Python initialization is quiet at the default log level; database load paths
22+
are printed only when the log level is `LOG_INFO` or `LOG_DEBUG`.
1123
- MATLAB-facing docs now point to the Python package namespace instead of an
1224
active separate MATLAB extension.
1325

1426
### Fixed
27+
- C and Python binding calls now recover fatal Fortran `abort` paths as
28+
`CEA_FORTRAN_ABORT` / Python `RuntimeError` with the recovered message instead
29+
of terminating the caller process.
30+
- Legacy input parsing now treats bare `h` and `u` reactant energy units as
31+
`J/mole`, matching the intended molar default.
32+
- Legacy SI transport output now labels conductivity as
33+
`MILLIWATTS/(CM)(K)` instead of the non-SI millicalorie label.
34+
- Rocket throat states are now marked complete so throat properties are printed
35+
even when no exit-cone condition is requested.
36+
- Corrected the malformed Paraffin reactant record in `data/thermo.inp`.
1537

1638
### Added
39+
- Added the public `CEA_FORTRAN_ABORT` error code and C helpers for retrieving
40+
the last recovered fatal Fortran error message.
1741
- Added a pure-Python `cea.matlab` module with a Matlab-oriented `eq_solve`
1842
entry point that returns a flat Python namespace of scalars, arrays, and
1943
dictionaries.

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
88
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
99
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
1010
project(CEA
11-
VERSION 3.2.0
11+
VERSION 3.2.1
1212
LANGUAGES Fortran
1313
)
1414

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ For most users, install the published Python package directly:
4040
This is the fastest path to start using the Python API (`import cea`) without
4141
building from source.
4242

43+
The Python package requires Python 3.11 or newer.
44+
4345
If you need the legacy CLI executable (`cea`) or C/Fortran build artifacts, use
4446
the source build path below.
4547

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
copyright = ''
2323
author = 'Mark Leader'
2424
version = '3.2'
25-
release = '3.2.0'
25+
release = '3.2.1'
2626

2727
# -- General configuration ---------------------------------------------------
2828
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

source/bind/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,14 @@ if (CEA_ENABLE_BIND_PYTHON)
8181
add_dependencies(libcea compile_databases)
8282
endif()
8383
# the compiled library
84-
install(TARGETS libcea DESTINATION lib)
85-
install(TARGETS cea_bindc DESTINATION lib)
84+
install(TARGETS libcea
85+
RUNTIME DESTINATION lib
86+
LIBRARY DESTINATION lib
87+
)
88+
install(TARGETS cea_bindc
89+
RUNTIME DESTINATION lib
90+
LIBRARY DESTINATION lib
91+
)
8692
# default data files (compiled during build)
8793
install(FILES ${CMAKE_BINARY_DIR}/thermo.lib DESTINATION data)
8894
install(FILES ${CMAKE_BINARY_DIR}/trans.lib DESTINATION data)

source/bind/python/cea/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "3.2.0"
1+
__version__ = "3.2.1"
22

33
# initialize libcea, loading in the default data files
44
from cea.lib.libcea import init as libcea_init

0 commit comments

Comments
 (0)