Housekeeping#199
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
|
@mtanneau what do you think of this split project approach? |
|
Good with all of these:
But TBH I have mixed feelings about this one:
🙂 I am supportive of reducing / cleaning up our dependencies, and the fact that our codebase is effectively scatter across I would rather we consolidate all these pieces into |
|
CI is failing, looks like it's because of an issue with Clarabel. |
|
I'll rebase and revert to a single Project.toml. The main motivation is to avoid pulling different versions of dependencies across |
There was a problem hiding this comment.
Pull request overview
This pull request reorganizes the project's dependency structure by introducing separate Julia project environments for different use cases (root, exp, and slurm), modernizes the automatic differentiation backend by replacing MathOptSymbolicAD with MOI.Nonlinear.SymbolicMode, and improves CI configuration.
Key Changes:
- Separated dependencies into three project environments: root for core PGLearn functionality, exp/ for experimentation/sampling scripts, and slurm/ for cluster job management
- Replaced deprecated MathOptSymbolicAD with MOI.Nonlinear.SymbolicMode via a new
maybe_set_ad()helper function - Updated CI to test on both latest Julia and LTS versions, and modernized caching with julia-actions/cache@v2
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Project.toml | Removed solver-specific and utility dependencies now moved to exp/ and slurm/ projects |
| exp/Project.toml | New project file for experimentation environment with solvers and sampling dependencies |
| slurm/Project.toml | New project file for SLURM job management with templating and I/O dependencies |
| src/opf/opf.jl | Removed MathOptSymbolicAD import, added maybe_set_ad() helper using MOI.Nonlinear.SymbolicMode |
| src/opf/ed.jl | Updated to use new AD backend via maybe_set_ad() |
| exp/sampler.jl | Removed obsolete MathOptSymbolicAD import |
| exp/config.toml | Updated example configuration with placeholder values for SLURM settings |
| slurm/create_jobs.jl | Renamed from submit_jobs.jl, added error handling for incorrect project usage |
| slurm/make_sysimage.jl | Updated package list and project paths to use exp/ environment |
| slurm/template/*.sbatch | Updated all SLURM templates to use correct project paths (exp/ or slurm/) |
| slurm/README.md | Updated documentation for file rename and new project structure with setup instructions |
| README.md | Added setup instructions for new project structure |
| test/sampler.jl | Added environment setup logic with version-specific handling for Julia ≤1.10 |
| .github/workflows/ci.yml | Added LTS testing, replaced custom caching with julia-actions/cache@v2 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@copilot add a commit to go back to a single Project.toml file |
* Initial plan * Consolidate to single unified Project.toml Co-authored-by: klamike <17013474+klamike@users.noreply.github.com> * Update all references to use single unified project Co-authored-by: klamike <17013474+klamike@users.noreply.github.com> * Remove unnecessary try/catch for Mustache in create_jobs.jl Co-authored-by: klamike <17013474+klamike@users.noreply.github.com> * Update comment in make_sysimage.jl to use --project=. Co-authored-by: klamike <17013474+klamike@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: klamike <17013474+klamike@users.noreply.github.com>
This is ready, except I need to check the slurm pipeline works on phoenix.
julia-actions/cache@v2time_limitkwarg default toInfinexp/sampler.jl, check if existing time limit matches for less verbose warnings when not using time limitsBreaking changes:
slurm/submit_jobs.jl->slurm/create_jobs.jl(since it doesn't actually submit anymore)juliato themodule loadlist inslurm/template/env.sh