-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix "install from conda forge" CI after ixmp release v3.10.0 #918
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #918 +/- ##
=====================================
Coverage 95.6% 95.6%
=====================================
Files 48 48
Lines 4401 4401
=====================================
Hits 4211 4211
Misses 190 190 |
Note: all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me
9350232
to
6d7293b
Compare
Thanks for spotting and diagnosing! I agree with the approach taken here. The change from 3.9 to 3.10 is that we no longer package (very old) GAMS binary libraries with ixmp, but rather find and use the ones from the system GAMS installation. These libraries are used by the Java code underneath JDBCBackend to interact with GDX files, mainly. In order for that Java code to know where to find them, we need to identify and supply the appropriate path at the moment of starting the JVM through JPype, which is why this happens the first time any JDBCBackend-ed Platform is instantiated. No idea why this does not fail on macOS, but sufficient I think to make the changes to fix the Windows jobs. |
Unfortunately, it looks like the release v3.10.0 of ixmp broke the "install from conda forge" CI here, but only the tests running on windows machines.
Comparing ixmp 3.9 to 3.10, we see that the way we collect the GAMS information has changed. Not dramatically and on macos, everything still works fine, which makes me think I'm still missing something here. However, looking at the backtrace, we see this bit:
Indicating that
gams
is now called whenever an instance of anixmp.Platform
is created. However,gams
is never in thePATH
or even installed in theconda
workflow.message-ix show-versions
always reports'gams' executable not in PATH
, even for successful runs on windows in the past and with ixmp 3.10.0 on macos. This is another bit I don't quite understand: how could this possibly work?With earlier versions of ixmp, we possibly didn't execute
gams
whenever creating aPlatform
, but today's runs already use ixmp 3.10.0, so should come with that requirement. The only reason I can immediately see for a difference from the windows tests is thatcheck_output
gets a different value forshell
:So possibly, modifying this argument would also do the trick.
For now, though, I copied the steps that install GAMS in other CI workflows to this one as it seems we should have it installed for ixmp to work properly.
How to review
PR checklist
Add or expand tests;coverage checks both ✅[ ] Add, expand, or update documentation.Just CI.[ ] Update release notes.Just CI.