We are starting to see several extension packages emerging (e.g., two-stage models #244 and models with external oracles #243), which is great to see. As the ecosystem grows, it might be worth thinking about how to structure these extensions so that ExaModels itself remains lightweight and maintainable in the long run.
One possible approach could be:
- Separate extension packages from the main ExaModels repo and host them elsewhere. We could follow something similar to the MadNLP approach, where extensions live in a
/lib directory, or maintain them as separate repositories.
- Extensions approved/coordinated by ExaModels core developers could be granted a naming convention such as
TwoStageExaModels or ExaModelsWithOracle.
- Optionally, we could add breakage checks for extension packages, similar to
https://github.com/JuliaSmoothOptimizers/NLPModels.jl/blob/main/.github/workflows/breakage.yml
Curious to hear your thoughts.
@michel2323 @andrewrosemberg
We are starting to see several extension packages emerging (e.g., two-stage models #244 and models with external oracles #243), which is great to see. As the ecosystem grows, it might be worth thinking about how to structure these extensions so that ExaModels itself remains lightweight and maintainable in the long run.
One possible approach could be:
/libdirectory, or maintain them as separate repositories.TwoStageExaModelsorExaModelsWithOracle.https://github.com/JuliaSmoothOptimizers/NLPModels.jl/blob/main/.github/workflows/breakage.yml
Curious to hear your thoughts.
@michel2323 @andrewrosemberg