Update Julia Solver Dependencies and NLR API Key Environment Variables - #731
Merged
Merged
Conversation
To fix an issue that was identified in a REopt run, confirmed to be fixed by this update
Running `Pkg.update()` in julia_src failed to precompile with:
could not load library ".../libproj.so"
libsqlite3.so.0: cannot open shared object file
Root cause is a SONAME break in SQLite_jll, not a version-resolution
problem. PROJ_jll 900.100.0 records `DT_NEEDED libsqlite3.so.0`, but:
SQLite_jll 3.48.0 -> SONAME libsqlite3.so.0 (works)
SQLite_jll 3.51.2 -> SONAME libsqlite3.so.3.51.2 (breaks)
SQLite_jll 3.53.2 -> SONAME libsqlite3.so.3.53.2 (breaks)
Both artifacts install valid symlinks on disk, so the failure is only
visible via `readelf -d`. Julia's resolver cannot catch this because JLL
compat bounds track package versions, not sonames, and PROJ_jll itself
never changed version.
Adds SQLite_jll as a direct dependency so a `[compat]` bound applies
(compat entries are ignored for indirect deps), pinned to "~3.48",
mirroring the existing PROJ_jll pin.
With the pin in place `Pkg.update()` completes with 0 errors. Notable
bumps: Cbc 1.2.0 -> 1.3.0, HTTP 1.10.16 -> 1.11.0, JuMP 1.31.1 -> 1.31.2,
MathOptInterface 1.52.0 -> 1.53.0, MutableArithmetics 1.6.4 -> 1.8.0,
SCIP 0.12.3 -> 0.12.8, Xpress 0.17.1 -> 0.18.2, GDAL_jll 300.500.101 ->
300.500.200, plus transitive updates.
HiGHS 1.24.1 / HiGHS_jll 1.15.1 are unchanged by this update, so it has
no effect on the analytic-centre solve-time regression tracked separately.
Verified: precompile clean, runtime module load, a HiGHS solve, julia
container /health returns 200, and reoptjl tests pass.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Since the solver upgrades may affect the model solve time and results, bumping minor version instead of just patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Equivalent PR that was approved here (which I merged and then reverted, so same):
This pull request makes two unrelated updates:
julia_srcfolder) for the optimization solver stack (HiGHS, JuMP, MathOptInterface). We had found peculiar optimization results for a scenario with tiered rates where it was solving with a negative NPV of larger magnitude than the tolerance. The solver stack upgrade fixed it. It also removes some unused dependencies.Environment variable renaming:
NREL_DEVELOPER_API_KEYandNREL_DEVELOPER_EMAILtoNLR_DEVELOPER_API_KEYandNLR_DEVELOPER_EMAILin thejulia_srcdirctory.envfile andhttp.jlwhich uses that. This affects how API keys and emails are loaded and set for requests. [1] [2] [3] [4]Dependency updates and removals:
Manifest.toml, includingHiGHS(from 1.15.0 to 1.24.1),HiGHS_jll,JuMP(from 1.25.0 to 1.31.1), andMathOptInterface(from 1.39.0 to 1.52.0), and added new dependencies such asMathOptIIS. [1] [2] [3]BenchmarkTools,JSON3,Profile, andStructTypesfromManifest.toml, cleaning up the dependency tree. [1] [2] [3] [4]Reopened from #729, which was merged prematurely. The merge commit was rolled back off
masterand releasev3.22.2was removed so this can be validated on staging first.