This is the heavy part of the v5.5 pull.
I already tested this in a clean integration worktree off origin/main, and the backend/runtime overlap is still concentrated in a small set of core files: Config.py, FileClass.py, DataFileClass.py, OsemosysClass.py, DataFileRoute.py, and app.py. That is where the real review work is.
The goal here is not to "become upstream" blindly. The goal is to take the useful v5.5 runtime changes while preserving the MUIOGO compatibility layer where it actually matters.
What should land here:
- the updated solver model file
- the
self.resData / self.resDataPath bookkeeping cleanup
- cleanup that preserves
viewDefinitions.json instead of wiping saved views
- fixed-path
readModelFile / readLogFile backend routes
- logging improvements, adapted to a MUIOGO-safe log location
What stays MUIOGO-owned:
- absolute paths
- current secret handling
- env -> PATH -> bundled solver resolution
- safe subprocess execution
- path validation and upload safety
What we should explicitly reject as-is:
WebAPP/app.log
- deleting the log on startup
- cwd-relative paths
shell=True
- compact JSON as the default write format
from unittest import case
FileClassCompressed.py
This issue is not about removing GLPK. The verified runtime truth is narrower than that:
- CBC end-to-end still needs to work on the demo path
- GLPK remains supported in its current helper role inside the CBC flow
Done when:
- the CBC demo path still works end-to-end
- cleanup preserves saved views
- upload still works and does not weaken path safety
- the new backend routes work without exposing logs from the web root
- the existing GLPK helper role in the CBC flow is not regressed
Related work:
This is the heavy part of the v5.5 pull.
I already tested this in a clean integration worktree off
origin/main, and the backend/runtime overlap is still concentrated in a small set of core files:Config.py,FileClass.py,DataFileClass.py,OsemosysClass.py,DataFileRoute.py, andapp.py. That is where the real review work is.The goal here is not to "become upstream" blindly. The goal is to take the useful v5.5 runtime changes while preserving the MUIOGO compatibility layer where it actually matters.
What should land here:
self.resData/self.resDataPathbookkeeping cleanupviewDefinitions.jsoninstead of wiping saved viewsreadModelFile/readLogFilebackend routesWhat stays MUIOGO-owned:
What we should explicitly reject as-is:
WebAPP/app.logshell=Truefrom unittest import caseFileClassCompressed.pyThis issue is not about removing GLPK. The verified runtime truth is narrower than that:
Done when:
Related work: