@@ -29,14 +29,15 @@ jobs:
2929 fail-fast : true
3030 matrix :
3131 # https://github.com/actions/runner-images?tab=readme-ov-file#available-images
32- python-version : [ '3.11', '3.12', '3.13']
33- os : [ 'macos-14 ' ]
32+ python-version : [ '3.11', '3.12', '3.13', '3.14' ]
33+ os : [ 'macos-15 ' ]
3434
3535 runs-on : ${{ matrix.os }}
3636 name : " Build 🛞 (${{ matrix.python-version }}, ${{ matrix.os }})"
3737 env :
3838 INSTALL_DIR : ${{ inputs.INSTALL_DIR }}
3939 SYSTEM_VERSION_COMPAT : 0
40+ MACOSX_DEPLOYMENT_TARGET : ' 15.0'
4041 steps :
4142
4243 - name : Echo env and inputs
5354
5455 - name : Cache Homebrew Bundler RubyGems
5556 id : cache
56- uses : actions/cache@v4
57+ uses : actions/cache@v5
5758 with :
5859 path : ${{ steps.set-up-homebrew.outputs.gems-path }}
5960 key : ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }}
6465 run : brew install-bundler-gems
6566
6667 - name : Set up Python ${{ matrix.python-version }}
67- uses : actions/setup-python@v5
68+ uses : actions/setup-python@v6
6869 with :
6970 python-version : ${{ matrix.python-version }}
7071
@@ -77,14 +78,14 @@ jobs:
7778 which python
7879 which pip
7980 python -c "import platform; mac_version=platform.mac_ver(); print('macOS version: '+mac_version[0])"
80- - uses : actions/cache@v4
81+ - uses : actions/cache@v5
8182 id : cache-package
8283 with :
8384 key : ${{ matrix.os }}_python-${{ matrix.python-version }}_boost-${{ inputs.BOOST_VERSION }}_dakota-${{ inputs.DAKOTA_VERSION }}
8485 path : ${{ github.workspace }}/python-${{ matrix.python-version}}_boost-${{ inputs.BOOST_VERSION }}_dakota-${{ inputs.DAKOTA_VERSION }}.tar.gz
8586
8687 - name : Checkout Carolina
87- uses : actions/checkout@v4
88+ uses : actions/checkout@v6
8889 with :
8990 fetch-depth : 0
9091
9697 run : |
9798 python -m pip install -U pip
9899 python -m pip install numpy
100+ python -m pip install "cmake<4"
99101
100102 - name : Build needed boost libraries
101103 if : steps.cache-package.outputs.cache-hit != 'true'
@@ -162,15 +164,23 @@ jobs:
162164 patch -p1 < $CAROLINA_DIR/dakota_manylinux_install_files/workdirhelper_boost_filesystem.patch
163165 patch -p1 < $CAROLINA_DIR/dakota_manylinux_install_files/CMakeLists_includes.patch
164166
167+ # Fix JEGA keyed_registry.hpp.inl bug (upstream fix: dakota-packages commit b837a87)
168+ JEGA_KEYED_REG=$(find . -path '*/JEGA/eddy/utilities/include/inline/keyed_registry.hpp.inl')
169+ if [ -n "$JEGA_KEYED_REG" ]; then
170+ echo "Applying JEGA keyed_registry fix to $JEGA_KEYED_REG ..."
171+ sed -i '' 's/const KeyType& value/const KeyType\& key/' "$JEGA_KEYED_REG"
172+ sed -i '' 's/this->find(this->key)/this->find(key)/' "$JEGA_KEYED_REG"
173+ fi
174+
165175 PYTHON_INCLUDE_DIR="$(python -c "from sysconfig import get_paths as gp; g=gp(); print(f\"{g['include']} \")")"
166176
167177 mkdir -p build
168178 cd build
169179
170180 cmake \
171- -DCMAKE_CXX_STANDARD=14 \
181+ -DCMAKE_CXX_STANDARD=17 \
172182 -DBUILD_SHARED_LIBS=ON \
173- -DCMAKE_CXX_FLAGS="-I$PYTHON_INCLUDE_DIR" \
183+ -DCMAKE_CXX_FLAGS="-I$PYTHON_INCLUDE_DIR -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -D_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS " \
174184 -DDAKOTA_PYTHON_DIRECT_INTERFACE=ON \
175185 -DDAKOTA_PYTHON_DIRECT_INTERFACE_NUMPY=ON \
176186 -DDAKOTA_DLL_API=OFF \
@@ -192,12 +202,12 @@ jobs:
192202
193203 - name : Cache boost and dakota
194204 if : steps.cache-package.outputs.cache-hit != 'true'
195- uses : actions/cache/save@v4
205+ uses : actions/cache/save@v5
196206 with :
197207 path : ${{ github.workspace }}/python-${{ matrix.python-version}}_boost-${{ inputs.BOOST_VERSION }}_dakota-${{ inputs.DAKOTA_VERSION }}.tar.gz
198208 key : ${{ matrix.os }}_python-${{ matrix.python-version }}_boost-${{ inputs.BOOST_VERSION }}_dakota-${{ inputs.DAKOTA_VERSION }}
199209
200- - uses : actions/cache/restore@v4
210+ - uses : actions/cache/restore@v5
201211 id : restore-cached-package
202212 with :
203213 key : ${{ matrix.os }}_python-${{ matrix.python-version }}_boost-${{ inputs.BOOST_VERSION }}_dakota-${{ inputs.DAKOTA_VERSION }}
@@ -219,7 +229,7 @@ jobs:
219229 echo "DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${HOME}/${INSTALL_DIR}/lib:$INSTALL_DIR/bin" >> ${GITHUB_ENV}
220230
221231 - name : Checkout Carolina
222- uses : actions/checkout@v4
232+ uses : actions/checkout@v6
223233 with :
224234 fetch-depth : 0
225235
@@ -230,17 +240,10 @@ jobs:
230240 arch_ver=$(uname -m)
231241
232242 # hint regarding architecture to avoid universal wheel generated
233- export _PYTHON_HOST_PLATFORM="macosx-11.0 -$arch_ver"
243+ export _PYTHON_HOST_PLATFORM="macosx-${MACOSX_DEPLOYMENT_TARGET} -$arch_ver"
234244 export ARCHFLAGS="-arch $arch_ver"
235245
236- target_version=$(sw_vers --productVersion | cut -d . -f 1)
237-
238- # the arm64 builds require deployment targets >= 13.0
239- if [ "$arch_ver" == "arm64" ]; then
240- export MACOSX_DEPLOYMENT_TARGET="${target_version}.0"
241- fi
242-
243- pip install delocate==0.10.7
246+ pip install delocate
244247 python -m pip install .
245248 PYTHON_VERSION_TRIM=$(echo ${{ matrix.python-version }} | tr -d ".")
246249 echo $PYTHON_VERSION_TRIM
@@ -293,7 +296,7 @@ jobs:
293296 DYLD_LIBRARY_PATH=${EXTENDED_DYLD_LIBRARY_PATH} delocate-wheel -w /tmp/carolina_dist -v $unfixed_wheel_path
294297 echo "Output new carolina wheel to /tmp/carolina_dist"
295298 ls -lh /tmp/carolina_dist
296- - uses : actions/upload-artifact@v4
299+ - uses : actions/upload-artifact@v7
297300 id : cache-carolina_wheel
298301 with :
299302 name : ${{ matrix.os }}_py-${{ matrix.python-version }}_wheel
@@ -309,17 +312,17 @@ jobs:
309312 strategy :
310313 fail-fast : false
311314 matrix :
312- python-version : [ '3.11', '3.12', '3.13']
313- os : [ 'macos-14 ' ]
315+ python-version : [ '3.11', '3.12', '3.13', '3.14' ]
316+ os : [ 'macos-15 ' ]
314317
315318 runs-on : ${{ matrix.os }}
316319 steps :
317- - uses : actions/checkout@v4
320+ - uses : actions/checkout@v6
318321 with :
319322 fetch-depth : 0
320323
321324 - name : Set up Python ${{ matrix.python-version }}
322- uses : actions/setup-python@v5
325+ uses : actions/setup-python@v6
323326 with :
324327 python-version : ${{ matrix.python-version }}
325328 cache : " pip"
@@ -328,13 +331,14 @@ jobs:
328331 pyproject.toml
329332
330333 - name : Download Carolina artifact
331- uses : actions/download-artifact@v4
334+ uses : actions/download-artifact@v8
332335 with :
333336 path : /tmp/artifacts
334337
335338 - name : Find the Carolina wheel
336339 run : |
337340 python --version
341+ pip install -U pip
338342
339343 pyver_nodot=$(echo ${{ matrix.python-version }} | sed 's/\.//g')
340344 arch_ver=$(uname -m)
0 commit comments