Development Roadmap and Future of ModOpt.
I reckon that I have started multiple PRs, moving forward here is a proposition for the integration of this work.
I would recommend we use a squash+rebase strategie, to minimize the effect on the main trunk. To smooth things up here is what I propose:
- [x] 1. merge the CI-update (#268) into develop
- [x] 1.5 fix the test due to astropy upgrade (#272)
- [x] 2. pull develop and merge the test refactorisation PR (#266) ~~(- [ ] 3. pull develop and merge the PnP PR (#265))~~
- [x] 3. merge the Example2Test PR (#277)
- [ ] 4. pull develop and merge the ADMM PR (#263)
- [ ] 5. Run Black once, and update the test to use
--blackcheck. There should also be modification of isort ^1
In a later future (e.g. start of Q2 2023), taking the opportunity of a coding sprint:
7. Write test for the new algorithms. This might also be the opportunity to revisite the significance of all optimisation algorithm, to solve a less dummy problem (for instance a LASSO regularised least square)
8. Move the configuration to pyproject.toml , and maybe use a src layout ^2, -> this seems to be the new standard ^3
9. Release a new ModOpt version (2.0 ? )
10. Write new a paper about it, add it to zenodo^5 to get a DOI for the package.
Sounds like a good plan to me @paquiteau!
Some other points to consider:
- Many Python projects are moving away from using
setup.pyandsetup.cfgto exclusively using apyproject.tomlfile, perhaps we can consider doing the same for ModOpt. Black can be configured directly inpyproject.tomlbut requires additional tools forsetup.cfg. - Should we open an issue to discuss the best way to configure Black for ModOpt?
I mention the move to pyproject.toml in point 8 ;) Setuping the pyproject.toml should not be a big deal (I am getting pretty good at it and relies already on it for several of my projects, including pysap-fmri). this change of config file could happen simultaneously with the black formatting IMO.
Sorry I missed that, but since this is tied to the configuration of Black I think point 8 is linked to point 5 and should probably be done in conjunction.