Originally, looper contained a system to manage computing environments (like, submitting to a cluster). At one point, I saw independent value in that system, and I spun it off as a separate tool called divvy. This seemed like a good idea at the time. But while I still think divvy could have had value independent of looper, it led to some issues. Notably, I required the new idea of "adapters" to connect divvy to looper, and these have been challenge to manage (see: https://github.com/pepkit/divvy/issues/51). At the same time, divvy never really caught on with use independent of looper.
Decision
Given that
1) this division led to challenges;
2) the independent value hasn't yet materialized;
3) the division has caused increased confusion and overhead for users in terms of documentation and learning to use looper,
I now want to reverse the decision.
So, I propose we re-integrate divvy functionality into looper.
Implementation
I would like to maintain the ability to use divvy functions independently of looper. I think I would just integrate divvy in roughly its current state as a submodule in looper. So, you could use it from Python with import looper.divvy. I also think now the looper package should expose the the divvy entrypoint, so you could use use divvy submit and whatnot on the CLI, it would just be provided by the looper package. This will clarify that divvy and looper really go together, and simplify lots of things.
Configuration
Then, the divvy configuration options would become a subcategory of looper configuration, instead of being its own thing.
History
Originally, looper contained a system to manage computing environments (like, submitting to a cluster). At one point, I saw independent value in that system, and I spun it off as a separate tool called
divvy
. This seemed like a good idea at the time. But while I still think divvy could have had value independent of looper, it led to some issues. Notably, I required the new idea of "adapters" to connect divvy to looper, and these have been challenge to manage (see: https://github.com/pepkit/divvy/issues/51). At the same time, divvy never really caught on with use independent of looper.Decision
Given that 1) this division led to challenges; 2) the independent value hasn't yet materialized; 3) the division has caused increased confusion and overhead for users in terms of documentation and learning to use looper,
I now want to reverse the decision.
So, I propose we re-integrate divvy functionality into looper.
Implementation
I would like to maintain the ability to use divvy functions independently of looper. I think I would just integrate
divvy
in roughly its current state as a submodule in looper. So, you could use it from Python withimport looper.divvy
. I also think now thelooper
package should expose the thedivvy
entrypoint, so you could use usedivvy submit
and whatnot on the CLI, it would just be provided by the looper package. This will clarify that divvy and looper really go together, and simplify lots of things.Configuration
Then, the divvy configuration options would become a subcategory of looper configuration, instead of being its own thing.