From 48850220268f575847b7391f49b1e048d32e1ea9 Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 15:06:07 -0400 Subject: [PATCH 01/18] increment version to 2.0.12 --- __init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index bc4c46a..2c488f9 100644 --- a/__init__.py +++ b/__init__.py @@ -1 +1 @@ -__version__ = '2.0.11' +__version__ = '2.0.12' From d1a450a365e2a006001914975f5c11e268738cb8 Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 17:25:53 -0400 Subject: [PATCH 02/18] change default pyoptsparse versions --- .github/workflows/test_workflow.yml | 22 ++++++++++++++++++++++ build_pyoptsparse.py | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 5ebfa82..d582bb5 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -64,6 +64,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test default version on Ubuntu with NumPy 2.x + - NAME: Ubuntu Baseline + OS: ubuntu-latest + PY: '3.13' + NUMPY: '2.2' + SCIPY: '1.15' + MPICC: 4 + PYOPTSPARSE: 'default' + # PAROPT: true + SNOPT: 7.7 + # test baseline versions on Ubuntu without MPI - NAME: Ubuntu Baseline, no MPI OS: ubuntu-latest @@ -84,6 +95,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test default version on MacOS with NumPy 2.x + - NAME: MacOS Baseline + OS: macos-14 + PY: '3.13' + NUMPY: '2.2' + SCIPY: '1.15' + MPICC: 4 + PYOPTSPARSE: 'default' + # PAROPT: true + SNOPT: 7.7 + # test latest versions - NAME: Ubuntu Latest OS: ubuntu-latest diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 4741a5f..1ff9ed1 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -12,6 +12,7 @@ from colors import * from shutil import which from packaging.version import Version, parse +import numpy # Default options that the user can change with command line switches @@ -80,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.10.1', + 'branch': 'v2.12.0' if Version(numpy.__version__) < Version("2") else 'v2.13.0' 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From 4239e189427c5877894e9fc2901d208c266e22ac Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 17:31:26 -0400 Subject: [PATCH 03/18] comma --- build_pyoptsparse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 1ff9ed1..c56a5b3 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -81,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.12.0' if Version(numpy.__version__) < Version("2") else 'v2.13.0' + 'branch': 'v2.12.0' if Version(numpy.__version__) < Version('2') else 'v2.13.0', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From c12271d319ce1f19eb0aa4b0bcb23257271c1b56 Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 18:02:27 -0400 Subject: [PATCH 04/18] default213 --- .github/workflows/test_workflow.yml | 42 ++++++++++++++--------------- build_pyoptsparse.py | 5 ++-- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index d582bb5..7f7aafb 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -64,8 +64,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test baseline versions on Ubuntu without MPI + - NAME: Ubuntu Baseline, no MPI + OS: ubuntu-latest + PY: '3.12' + NUMPY: '1.26' + SCIPY: '1.13' + PYOPTSPARSE: 'default' + SNOPT: 7.7 + # test default version on Ubuntu with NumPy 2.x - - NAME: Ubuntu Baseline + - NAME: Ubuntu Default OS: ubuntu-latest PY: '3.13' NUMPY: '2.2' @@ -75,15 +84,6 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test baseline versions on Ubuntu without MPI - - NAME: Ubuntu Baseline, no MPI - OS: ubuntu-latest - PY: '3.12' - NUMPY: '1.26' - SCIPY: '1.13' - PYOPTSPARSE: 'default' - SNOPT: 7.7 - # test baseline versions on MacOS - NAME: MacOS Baseline OS: macos-13 @@ -95,17 +95,6 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test default version on MacOS with NumPy 2.x - - NAME: MacOS Baseline - OS: macos-14 - PY: '3.13' - NUMPY: '2.2' - SCIPY: '1.15' - MPICC: 4 - PYOPTSPARSE: 'default' - # PAROPT: true - SNOPT: 7.7 - # test latest versions - NAME: Ubuntu Latest OS: ubuntu-latest @@ -117,6 +106,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test default version on MacOS with NumPy 2.x + - NAME: MacOS Default + OS: macos-14 + PY: '3.13' + NUMPY: '2.2' + SCIPY: '1.15' + MPICC: 4 + PYOPTSPARSE: 'default' + # PAROPT: true + SNOPT: 7.7 + # test oldest supported versions - NAME: Ubuntu Oldest OS: ubuntu-latest diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index c56a5b3..763366c 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -11,8 +11,7 @@ import tempfile from colors import * from shutil import which -from packaging.version import Version, parse -import numpy +from packaging.version import parse # Default options that the user can change with command line switches @@ -81,7 +80,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.12.0' if Version(numpy.__version__) < Version('2') else 'v2.13.0', + 'branch': 'v2.13.0', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From 98a62b7c3e800691e4e13e1cbe0f7d9fe1522960 Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 18:13:29 -0400 Subject: [PATCH 05/18] v2.10def --- build_pyoptsparse.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 763366c..fb96a97 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -12,6 +12,7 @@ from colors import * from shutil import which from packaging.version import parse +import numpy # Default options that the user can change with command line switches @@ -80,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.13.0', + 'branch': 'v2.10.1' if parse(numpy.__version__) < parse('2.0') else 'v2.13.0', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From 6aa6d374b28ec6048083379f589babac013abfa8 Mon Sep 17 00:00:00 2001 From: swryan Date: Mon, 10 Mar 2025 19:03:47 -0400 Subject: [PATCH 06/18] mac13 --- .github/workflows/test_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 7f7aafb..8da9155 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -108,7 +108,7 @@ jobs: # test default version on MacOS with NumPy 2.x - NAME: MacOS Default - OS: macos-14 + OS: macos-13 PY: '3.13' NUMPY: '2.2' SCIPY: '1.15' From 1fae3e95f4d8a6c4bfb2462d997c0b1229230f60 Mon Sep 17 00:00:00 2001 From: swryan Date: Thu, 10 Apr 2025 10:16:44 -0400 Subject: [PATCH 07/18] default2 --- .github/workflows/test_workflow.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 8da9155..c6c1716 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -74,10 +74,10 @@ jobs: SNOPT: 7.7 # test default version on Ubuntu with NumPy 2.x - - NAME: Ubuntu Default + - NAME: Ubuntu Default (Numpy 2.x) OS: ubuntu-latest PY: '3.13' - NUMPY: '2.2' + NUMPY: '2' SCIPY: '1.15' MPICC: 4 PYOPTSPARSE: 'default' @@ -107,10 +107,10 @@ jobs: SNOPT: 7.7 # test default version on MacOS with NumPy 2.x - - NAME: MacOS Default + - NAME: MacOS Default (Numpy 2.x) OS: macos-13 PY: '3.13' - NUMPY: '2.2' + NUMPY: '2' SCIPY: '1.15' MPICC: 4 PYOPTSPARSE: 'default' From a66b7a0d76fc4789f25cd02d7999992a13661b10 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 13:06:26 -0400 Subject: [PATCH 08/18] add logic for pyOS v2.14 --- .github/workflows/test_workflow.yml | 15 ++++++++++++++- build_pyoptsparse.py | 12 ++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index c6c1716..c62df48 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -95,7 +95,7 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test latest versions + # test latest release versions - NAME: Ubuntu Latest OS: ubuntu-latest PY: 3 @@ -106,6 +106,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test latest development version + - NAME: Ubuntu Latest + OS: ubuntu-latest + PY: 3 + NUMPY: 2 + SCIPY: 1 + MPICC: 4 + PYOPTSPARSE: 'dev' + # PAROPT: true + SNOPT: 7.7 + # test default version on MacOS with NumPy 2.x - NAME: MacOS Default (Numpy 2.x) OS: macos-13 @@ -278,6 +289,8 @@ jobs: if [[ "${{ matrix.PYOPTSPARSE }}" == "default" ]]; then BRANCH="" + if [[ "${{ matrix.PYOPTSPARSE }}" == "dev" ]]; then + BRANCH="dev" elif [[ "${{ matrix.PYOPTSPARSE }}" == "latest" ]]; then LATEST_URL=`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/mdolab/pyoptsparse/releases/latest` LATEST_VER=`echo $LATEST_URL | awk '{split($0,a,"/tag/"); print a[2]}'` diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index fb96a97..1a6ff86 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -603,7 +603,7 @@ def git_clone(build_key:str, auto_delete:bool=True): note_ok() pushd(dir_name) - if d["branch"]: + if d["branch"] and d["branch"] != 'dev': # We don't care about the "detached HEAD" warning: run_cmd(cmd_list=['git', 'config', '--local', 'advice.detachedHead', 'false']) note(f'Checking out branch {d["branch"]}') @@ -719,7 +719,6 @@ def install_paropt_from_src(): Git clone the PAROPT repo, build the library, and install it and the include files. """ build_dir = git_clone('paropt') - pip_install(['Cython'], pkg_desc='Cython') # Use build defaults as per ParOpt instructions: Path('Makefile.in.info').rename('Makefile.in') @@ -784,11 +783,15 @@ def install_ipopt(config_opts:list=None): if allow_install_with_conda() and opts['force_build'] is False: try: install_conda_pkg('ipopt') + if opts['pyoptsparse_version'] >= parse('2.14'): + install_conda_pkg('cyipopt') return except Exception as e: try_fallback('IPOPT', e) install_ipopt_from_src(config_opts=config_opts) + if opts['pyoptsparse_version'] >= parse('2.14'): + pip_install(['cyipopt', '--use-pep517'], pkg_desc='cyipopt') def install_mumps(): """ Install MUMPS either through conda or building. """ @@ -918,6 +921,8 @@ def patch_pyoptsparse_src(): def install_pyoptsparse_from_src(): """ Git clone the pyOptSparse repo and use pip to install it. """ + pip_install(['Cython'], pkg_desc='Cython') + # First, build PAROPT if selected: if opts['include_paropt'] is True: install_paropt_from_src() @@ -928,6 +933,9 @@ def install_pyoptsparse_from_src(): os.environ['IPOPT_INC'] = get_coin_inc_dir() os.environ['IPOPT_LIB'] = str(Path(opts["prefix"]) / 'lib') os.environ['IPOPT_DIR'] = str(Path(opts["prefix"])) + if opts['pyoptsparse_version'] >= parse('2.14'): + os.environ['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH'] + ':' + \ + os.environ['IPOPT_DIR'] + '/lib/pkgconfig' os.environ['CFLAGS'] = '-Wno-implicit-function-declaration -std=c99' # Pull in SNOPT source: From c710658eb107ed1d1918373bf9474f007dc7ad3e Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 13:20:39 -0400 Subject: [PATCH 09/18] update test workflow --- .github/workflows/test_workflow.yml | 41 +++++++++++------------------ 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index c62df48..0f207f5 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -86,8 +86,8 @@ jobs: # test baseline versions on MacOS - NAME: MacOS Baseline - OS: macos-13 - PY: '3.11' + OS: macos-latest + PY: '3.12' NUMPY: '1.26' SCIPY: '1.13' MPICC: 4 @@ -95,6 +95,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test default version on MacOS with NumPy 2.x + - NAME: MacOS Default (Numpy 2.x) + OS: macos-latest + PY: '3.13' + NUMPY: '2' + SCIPY: '1.15' + MPICC: 4 + PYOPTSPARSE: 'default' + # PAROPT: true + SNOPT: 7.7 + # test latest release versions - NAME: Ubuntu Latest OS: ubuntu-latest @@ -117,17 +128,6 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test default version on MacOS with NumPy 2.x - - NAME: MacOS Default (Numpy 2.x) - OS: macos-13 - PY: '3.13' - NUMPY: '2' - SCIPY: '1.15' - MPICC: 4 - PYOPTSPARSE: 'default' - # PAROPT: true - SNOPT: 7.7 - # test oldest supported versions - NAME: Ubuntu Oldest OS: ubuntu-latest @@ -150,8 +150,8 @@ jobs: # test baseline versions on MacOS without MPI with forced build - NAME: MacOS Baseline, no MPI, forced build - OS: macos-13 - PY: '3.11' + OS: macos-latest + PY: '3.12' NUMPY: '1.26' SCIPY: '1.13' PYOPTSPARSE: 'default' @@ -169,17 +169,6 @@ jobs: SNOPT: 7.7 FORCE_BUILD: true - # test baseline versions on MacOS latest (ARM64) - - NAME: MacOS Baseline on ARM - OS: macos-latest - PY: '3.12' - NUMPY: '1.26' - SCIPY: '1.13' - BREW: true - MPICC: 4 - PYOPTSPARSE: 'default' - SNOPT: 7.7 - runs-on: ${{ matrix.OS }} name: ${{ matrix.NAME }} From 5126713806ac8b4e8a55337dedd355536cf2469d Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 13:30:04 -0400 Subject: [PATCH 10/18] fix dev --- .github/workflows/test_workflow.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 0f207f5..36ec456 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -278,8 +278,6 @@ jobs: if [[ "${{ matrix.PYOPTSPARSE }}" == "default" ]]; then BRANCH="" - if [[ "${{ matrix.PYOPTSPARSE }}" == "dev" ]]; then - BRANCH="dev" elif [[ "${{ matrix.PYOPTSPARSE }}" == "latest" ]]; then LATEST_URL=`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/mdolab/pyoptsparse/releases/latest` LATEST_VER=`echo $LATEST_URL | awk '{split($0,a,"/tag/"); print a[2]}'` From 73ab179d56c3a4b41b8452924a8904e9f65993ec Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 13:56:33 -0400 Subject: [PATCH 11/18] 2.13.1 --- .github/workflows/test_workflow.yml | 15 ++------------- build_pyoptsparse.py | 6 +++--- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 36ec456..b166c3e 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -26,13 +26,14 @@ on: - '' - 'Ubuntu Baseline' - 'Ubuntu Baseline, no MPI' + - 'Ubuntu Default (Numpy 2.x)'' - 'MacOS Baseline' + - 'MacOS Default (Numpy 2.x)'' - 'Ubuntu Latest' - 'Ubuntu Oldest' - 'Ubuntu Baseline, no MPI, forced build' - 'MacOS Baseline, no MPI, forced build' - 'Ubuntu Latest, no MPI, forced build' - - 'MacOS Baseline on ARM' required: false default: '' debug_enabled: @@ -117,17 +118,6 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test latest development version - - NAME: Ubuntu Latest - OS: ubuntu-latest - PY: 3 - NUMPY: 2 - SCIPY: 1 - MPICC: 4 - PYOPTSPARSE: 'dev' - # PAROPT: true - SNOPT: 7.7 - # test oldest supported versions - NAME: Ubuntu Oldest OS: ubuntu-latest @@ -157,7 +147,6 @@ jobs: PYOPTSPARSE: 'default' SNOPT: 7.7 FORCE_BUILD: true - XCODE: '14.2' # test latest versions without MPI with forced build - NAME: Ubuntu Latest, no MPI, forced build diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 1a6ff86..9cdce66 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -81,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.10.1' if parse(numpy.__version__) < parse('2.0') else 'v2.13.0', + 'branch': 'v2.10.1' if parse(numpy.__version__) < parse('2.0') else 'v2.13.1', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { @@ -505,7 +505,7 @@ def install_conda_pkg(pkg_name:str): The name of the package to install. """ note(f'Installing {pkg_name.upper()} with conda') - install_args = ['install', '-y', pkg_name] + install_args = ['install', '-q', '-y', pkg_name] run_conda_cmd(cmd_args=install_args) note_ok() @@ -603,7 +603,7 @@ def git_clone(build_key:str, auto_delete:bool=True): note_ok() pushd(dir_name) - if d["branch"] and d["branch"] != 'dev': + if d["branch"]: # We don't care about the "detached HEAD" warning: run_cmd(cmd_list=['git', 'config', '--local', 'advice.detachedHead', 'false']) note(f'Checking out branch {d["branch"]}') From 4c0e458a3b610bf9c86460f8395c1483885b240c Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 13:58:02 -0400 Subject: [PATCH 12/18] thanks for the help, vs code --- .github/workflows/test_workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index b166c3e..6c668c4 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -26,9 +26,9 @@ on: - '' - 'Ubuntu Baseline' - 'Ubuntu Baseline, no MPI' - - 'Ubuntu Default (Numpy 2.x)'' + - 'Ubuntu Default (Numpy 2.x)' - 'MacOS Baseline' - - 'MacOS Default (Numpy 2.x)'' + - 'MacOS Default (Numpy 2.x)' - 'Ubuntu Latest' - 'Ubuntu Oldest' - 'Ubuntu Baseline, no MPI, forced build' From 918249aeaf2ebd398f0f7665b2be9610d57f5322 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 14:14:35 -0400 Subject: [PATCH 13/18] default2.13 --- .github/workflows/test_workflow.yml | 5 +++-- build_pyoptsparse.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 6c668c4..351d068 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -140,13 +140,14 @@ jobs: # test baseline versions on MacOS without MPI with forced build - NAME: MacOS Baseline, no MPI, forced build - OS: macos-latest - PY: '3.12' + OS: macos-13 + PY: '3.11' NUMPY: '1.26' SCIPY: '1.13' PYOPTSPARSE: 'default' SNOPT: 7.7 FORCE_BUILD: true + XCODE: '14.2' # test latest versions without MPI with forced build - NAME: Ubuntu Latest, no MPI, forced build diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 9cdce66..9171b0e 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -81,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.10.1' if parse(numpy.__version__) < parse('2.0') else 'v2.13.1', + 'branch': 'v2.13.1', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From 92ae99ce74ac1e562f42420662b3a050141fc3eb Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 14:35:06 -0400 Subject: [PATCH 14/18] macos --- .github/workflows/test_workflow.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 351d068..1ed20cb 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -87,8 +87,8 @@ jobs: # test baseline versions on MacOS - NAME: MacOS Baseline - OS: macos-latest - PY: '3.12' + OS: macos-13 + PY: '3.11' NUMPY: '1.26' SCIPY: '1.13' MPICC: 4 @@ -98,7 +98,7 @@ jobs: # test default version on MacOS with NumPy 2.x - NAME: MacOS Default (Numpy 2.x) - OS: macos-latest + OS: macos-13 PY: '3.13' NUMPY: '2' SCIPY: '1.15' @@ -107,6 +107,17 @@ jobs: # PAROPT: true SNOPT: 7.7 + # test baseline versions on MacOS latest (ARM64) + - NAME: MacOS Baseline on ARM + OS: macos-latest + PY: '3.12' + NUMPY: '1.26' + SCIPY: '1.13' + BREW: true + MPICC: 4 + PYOPTSPARSE: 'default' + SNOPT: 7.7 + # test latest release versions - NAME: Ubuntu Latest OS: ubuntu-latest From 85314c7a9fdd5e8b511212aa381a46513aa971e3 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 14:46:45 -0400 Subject: [PATCH 15/18] old default --- build_pyoptsparse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 9171b0e..9cdce66 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -81,7 +81,7 @@ 'include_file': 'IpoptConfig.h' }, 'pyoptsparse': { - 'branch': 'v2.13.1', + 'branch': 'v2.10.1' if parse(numpy.__version__) < parse('2.0') else 'v2.13.1', 'url': 'https://github.com/mdolab/pyoptsparse.git', }, 'hsl': { From ad2a6dd181315bb86e18b299dc03e11d00786723 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 14:57:40 -0400 Subject: [PATCH 16/18] rename --- .github/workflows/test_workflow.yml | 42 ++++++++++++++--------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 1ed20cb..07db87b 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -24,15 +24,15 @@ on: type: choice options: - '' - - 'Ubuntu Baseline' - - 'Ubuntu Baseline, no MPI' - - 'Ubuntu Default (Numpy 2.x)' - - 'MacOS Baseline' - - 'MacOS Default (Numpy 2.x)' + - 'Ubuntu Default' + - 'Ubuntu Default, no MPI' + - 'Ubuntu Default, Numpy 2.x' + - 'MacOS Default' + - 'MacOS Default, Numpy 2.x' - 'Ubuntu Latest' - 'Ubuntu Oldest' - - 'Ubuntu Baseline, no MPI, forced build' - - 'MacOS Baseline, no MPI, forced build' + - 'Ubuntu Default, no MPI, forced build' + - 'MacOS Default, no MPI, forced build' - 'Ubuntu Latest, no MPI, forced build' required: false default: '' @@ -54,8 +54,8 @@ jobs: fail-fast: false matrix: include: - # test baseline versions on Ubuntu - - NAME: Ubuntu Baseline + # test default version on Ubuntu + - NAME: Ubuntu Default OS: ubuntu-latest PY: '3.12' NUMPY: '1.26' @@ -65,8 +65,8 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test baseline versions on Ubuntu without MPI - - NAME: Ubuntu Baseline, no MPI + # test default version on Ubuntu without MPI + - NAME: Ubuntu Default, no MPI OS: ubuntu-latest PY: '3.12' NUMPY: '1.26' @@ -75,7 +75,7 @@ jobs: SNOPT: 7.7 # test default version on Ubuntu with NumPy 2.x - - NAME: Ubuntu Default (Numpy 2.x) + - NAME: Ubuntu Default, Numpy 2.x OS: ubuntu-latest PY: '3.13' NUMPY: '2' @@ -85,8 +85,8 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test baseline versions on MacOS - - NAME: MacOS Baseline + # test default version on MacOS + - NAME: MacOS Default OS: macos-13 PY: '3.11' NUMPY: '1.26' @@ -107,8 +107,8 @@ jobs: # PAROPT: true SNOPT: 7.7 - # test baseline versions on MacOS latest (ARM64) - - NAME: MacOS Baseline on ARM + # test default version on MacOS latest (ARM64) + - NAME: MacOS Default on ARM OS: macos-latest PY: '3.12' NUMPY: '1.26' @@ -139,8 +139,8 @@ jobs: NO_IPOPT: true SNOPT: 7.2 - # test baseline versions on Ubuntu without MPI with forced build - - NAME: Ubuntu Baseline, no MPI, forced build + # test default version on Ubuntu without MPI with forced build + - NAME: Ubuntu Default, no MPI, forced build OS: ubuntu-latest PY: '3.12' NUMPY: '1.26' @@ -149,8 +149,8 @@ jobs: SNOPT: 7.7 FORCE_BUILD: true - # test baseline versions on MacOS without MPI with forced build - - NAME: MacOS Baseline, no MPI, forced build + # test default version on MacOS without MPI with forced build + - NAME: MacOS Default, no MPI, forced build OS: macos-13 PY: '3.11' NUMPY: '1.26' @@ -160,7 +160,7 @@ jobs: FORCE_BUILD: true XCODE: '14.2' - # test latest versions without MPI with forced build + # test latest version without MPI with forced build - NAME: Ubuntu Latest, no MPI, forced build OS: ubuntu-latest PY: 3 From 0e3bc9c61a04399cecf5139bd9621f670dfa0760 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 15:01:30 -0400 Subject: [PATCH 17/18] rename2 --- .github/workflows/test_workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_workflow.yml b/.github/workflows/test_workflow.yml index 07db87b..9ebad3d 100644 --- a/.github/workflows/test_workflow.yml +++ b/.github/workflows/test_workflow.yml @@ -97,7 +97,7 @@ jobs: SNOPT: 7.7 # test default version on MacOS with NumPy 2.x - - NAME: MacOS Default (Numpy 2.x) + - NAME: MacOS Default, Numpy 2.x OS: macos-13 PY: '3.13' NUMPY: '2' From bc51cdf3462b55dfc04ce9b4b27d36d3670b6e36 Mon Sep 17 00:00:00 2001 From: swryan Date: Fri, 25 Apr 2025 17:13:16 -0400 Subject: [PATCH 18/18] move pkgconfig --- build_pyoptsparse.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build_pyoptsparse.py b/build_pyoptsparse.py index 9cdce66..7a49b9c 100755 --- a/build_pyoptsparse.py +++ b/build_pyoptsparse.py @@ -780,6 +780,11 @@ def install_ipopt(config_opts:list=None): config_opts : list Additional options to use with the IPOPT configure script if building. """ + if opts['pyoptsparse_version'] >= parse('2.14'): + pkg_path = os.environ['PKG_CONFIG_PATH'] + ':' if 'PKG_CONFIG_PATH' in os.environ else '' + pkg_dir = Path(opts['prefix']) / 'lib' / 'pkgconfig' + os.environ['PKG_CONFIG_PATH'] = pkg_path + str(pkg_dir) + if allow_install_with_conda() and opts['force_build'] is False: try: install_conda_pkg('ipopt') @@ -933,9 +938,6 @@ def install_pyoptsparse_from_src(): os.environ['IPOPT_INC'] = get_coin_inc_dir() os.environ['IPOPT_LIB'] = str(Path(opts["prefix"]) / 'lib') os.environ['IPOPT_DIR'] = str(Path(opts["prefix"])) - if opts['pyoptsparse_version'] >= parse('2.14'): - os.environ['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH'] + ':' + \ - os.environ['IPOPT_DIR'] + '/lib/pkgconfig' os.environ['CFLAGS'] = '-Wno-implicit-function-declaration -std=c99' # Pull in SNOPT source: