Skip to content

WIP: Modernize IDAES extensions toolchain / binaries - #278

Closed
mrmundt wants to merge 328 commits into
IDAES:mainfrom
mrmundt:modernize
Closed

WIP: Modernize IDAES extensions toolchain / binaries#278
mrmundt wants to merge 328 commits into
IDAES:mainfrom
mrmundt:modernize

Conversation

@mrmundt

@mrmundt mrmundt commented Dec 12, 2025

Copy link
Copy Markdown
Contributor

Summary

This is not fully complete yet - I need to update a bit of documentation before we can consider this to be truly ready to go. However, there is a full set of new binaries on my fork at https://github.com/mrmundt/idaes-ext/releases/tag/5.0.0rc1 that I want folks to play with for the time being.

Updates include...

  • Entirely updated toolchain (boost, PETSc, HSL, etc.)
  • HSL support for Mac Intel
  • NO Metis support for MacOS Apple Silicon due to compatibility issues
  • Builds for ubuntu 20.04, 22.04, 24.04, el8, el9, (x86_64 and aarch64), mac (x86_64 and arm64), and windows (x86_64 only)
  • Reorganized tarball layout to use a more standard bin/lib/share structure:
    • Old layout:
      • idaes-lib-*.tar.gz - various libraries and helm_data/.
        - idaes-solvers-*.tar.gz - various solver executables and libraries.
      • idaes-petsc-*.tar.gz - petsc executable and petscpy/.
    • New layout:
      • New idaes-functions-*.tar.gz tarball:
        • lib/ - libraries from idaes-lib-*
        • helm_data/ - from idaes-lib-*
      • idaes-solvers-*.tar.gz now contains:
        • bin/ - solver and petsc executables (all executables)
        • lib/ - shared libraries from idaes-solvers-*, petscpy/, and (NEW) pkgconfig/
        • share/ - documentation
    • The separate idaes-lib-*.tar.gz and idaes-petsc-*.tar.gz tarballs are no longer produced;
      their contents have been folded into idaes-functions-*.tar.gz and idaes-solvers-*.tar.gz.
      The tarballs can be unpacked in one directory, causing the two separate lib folders to merge contents.
  • Release no longer includes ipopt_l1 and ipopt_sens_l1

@mrmundt
mrmundt requested a review from Robbybp December 12, 2025 19:57
@mrmundt

mrmundt commented Dec 12, 2025

Copy link
Copy Markdown
Contributor Author

Other things we need to do:

  1. Make an IDAES-specific cyipopt copy with my changes from https://github.com/mrmundt/cyipopt/tree/idaes-ipopt
  2. Update IDAES-ipopt with the changes from https://github.com/mrmundt/Ipopt/tree/stable/3.14
  3. After all of that is done... Make necessary updates to idaes-pse such that get-extensions functions correctly given the new structure of the tarballs

@Robbybp

Robbybp commented Dec 12, 2025

Copy link
Copy Markdown
Member

Very very exciting! This is all with the latest HSL?

NO Metis support for MacOS Apple Silicon due to compatibility issues

Is this with Metis 4 or Metis 5?

Make an IDAES-specific cyipopt copy with my changes from https://github.com/mrmundt/cyipopt/tree/idaes-ipopt

Is this related to mechmotum/cyipopt#277? CyIpopt should support pkg-config on Windows now (see mechmotum/cyipopt#293), so we might be able to do this without custom logic in CyIpopt. (I.e., we would update ipopt.pc to include all our Windows libraries (if it doesn't already), then make sure we set PKG_CONFIG_PATH before installing CyIpopt).

@ksbeattie ksbeattie added the Priority:High High Priority Issue or PR label Dec 19, 2025
@mrmundt

mrmundt commented Jan 5, 2026

Copy link
Copy Markdown
Contributor Author

Very very exciting! This is all with the latest HSL?

I'm not sure if it's the very latest. I think it's "the newest one we are contracted to access", whatever that version is.

Is this with Metis 4 or Metis 5?

Metis 4 is the version that coinbrew forces the toolchain to use. It might work with 5, but I couldn't figure out how to get it to actually do it. It's something I want to spend more time exploring.

Is this related to mechmotum/cyipopt#277? CyIpopt should support pkg-config on Windows now (see mechmotum/cyipopt#293), so we might be able to do this without custom logic in CyIpopt. (I.e., we would update ipopt.pc to include all our Windows libraries (if it doesn't already), then make sure we set PKG_CONFIG_PATH before installing CyIpopt).

Um, I'm not sure? These are the changes I made: mechmotum/cyipopt@master...mrmundt:cyipopt:idaes-ipopt

@mrmundt

mrmundt commented Jan 22, 2026

Copy link
Copy Markdown
Contributor Author

TODO: Update the auto tests on idaes-ext (this fork/branch) to run the Pyomo and IDAES tests after the initial ones pass.

@mrmundt mrmundt closed this Apr 15, 2026
@ksbeattie

Copy link
Copy Markdown
Member

@mrmundt, is this being replaced by a different PR? If so, could you point to here?

@mrmundt

mrmundt commented Apr 16, 2026

Copy link
Copy Markdown
Contributor Author

@mrmundt, is this being replaced by a different PR? If so, could you point to here?

Replaced by #282

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority:High High Priority Issue or PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants