Replies: 5 comments 1 reply
-
I would enjoy discussing this further at Monday's EZ meeting or whenever the appropriate time is. |
Beta Was this translation helpful? Give feedback.
-
@xylar thanks for creating this discussion item here! I was also going to suggest a meeting. We can cover this specific topic, as well as a discussion with over all zppy's testing system would be really great. Either at Monday's EZ meeting or Thursday's IG meeting would work. Let's see if @rljacob is available to join for either of the time slots. |
Beta Was this translation helpful? Give feedback.
-
I feel that it is often appropriate to separate distinct tools even one tool is exclusively used by the other. In that sense, it feels to me like zppy should go back to being a tool that launches other diagnostic tools and maintains that workflow, but all the tools should be external to zppy. I acknowledge that many of these tools are external to E3SM (ILAMB, PMP, etc.) and require adaptation to meet E3SM's needs. But it feels like a maintenance nightmare (particularly for @forsyth2) that all these adapters are ending up in zppy. It seems like each should rightly be its own, small package. Each likely has its own dependencies and needs to be updated and tested on its own schedule, largely determined by the external tools it interfaces with (but also the E3SM-Unified schedule). I also acknowledge that I keep going back and forth on these things in my own tools. I am struggling with the trade-off between the convenience of a common infrastructure if we put both model testing and analysis in our Polaris tool and the fact that that leaves analysis tools mixed up with regression tests. Sometimes, it seems best to integrate everything and at other times I think the thing has become too big and distinct pieces need to be pulled out. I don't think it's necessary that those distinct pieces are useful across more than one other tool for it to be useful to separate them out. Sometimes, it is worth having distinct repos just for clarity. But in my work on conda-forge, I have seen both things happen -- a bunch of distinct repos get combined into one because the maintenance became unwieldy and a mega-repo that finally gets broken into distinct tools. |
Beta Was this translation helpful? Give feedback.
-
My Two Cents: I tend to agree with Xylar - but I would go with 2 repos: One would include ALL subordinate or independent functionalities, separate modules to house or include ILAMB, PMP, etc, (the "sub-tools repo, irrespective of E3SM or external), each able to be wrapped in a simple "main" driver for stand-alone application (or unit testing), but each amenable to be imported elsewhere (e.g. zppy). Code updates to one should never incur merge conflicts with others. The other repo would have zppy, stripped of all functionality except for its ability to coordinate a sequence or ensemble of operations, plus any purely common functionality. This would make clear the boundary between the zppy configuration and housing operations, and the tool-functionalities it can manage. New tools could be added to the subordinate suite of tools, with clear rules for the zppy code interface to accommodate. |
Beta Was this translation helpful? Give feedback.
-
Action items from today's meeting:
Longer-term action items to consider in the future:
These changes will be beneficial for a number of reasons:
|
Beta Was this translation helpful? Give feedback.
-
We were hijacking #640 to have this discussion but it seems worth giving its own space.
A quick summary:
pcmdi_metrics
package (PMP) might balloon into essentially a new sub-package of zppy.global_time_series
task, which effectively acts as a separate package that lives within zppyglobal_time_series
and other "ghost" packages to somehow specify their dependencies and constraints.global_time_series
be a standalone package was a good idea, mostly because the potential maintenance overhead.global_time_series
is currently poorly maintained because its buried inside zppy. The cost of making it a separate package is offset by the benefit of better testing.global_time_series
doesn't have much use beyond zppy. So maybe it is possible to make it more modular and testable in zppy before considering packaging it as a stand-alone package.Beta Was this translation helpful? Give feedback.
All reactions