Details
-
Type:
RFC
-
Status: Withdrawn
-
Resolution: Done
-
Component/s: DM
-
Labels:None
Description
The goal of this RFC is to add a new package to `lsst_distrib` which will be a library used in the creation of ci_* packages. The proposed name for this package is `ci_builder`.
This is meant to solve the issues that arise from using `scons` to orchestrate running ci jobs, as well as some other pain points developers have run into.
Currently the plan is to use this system to implement a new `ci_imsim` package and overhaul `ci_hsc_gen3`, but it is expected to be generally useful for many other ci tools, and potentially other tools in the future.
Basically it is tailored exactly to our needs, so there is "less to it". Everything we are doing is also technically possible with scons too (though certainly harder than say Parsl). Using any other system would likely still involve writing wrappers or customization classes to stream line use, which would end up at the total scale of code proposed.
I do see your point, and it is always a double edged sword between leveraging upstream work and adapting it, or doing everything in house, but you do it all. In this case by having something tailored, it is just a small bit of code focused on our needs, with a low learning / maintenance overhead.
However this also does not lock us in. As I mentioned if we did decide we needed the functionality of Parsl, or another system, we would likely write some helper code anyway, and would be able to leverage that under the hood later, without loosing the work any developers put in on top of this code.
This system has already been useful in both ci_hsc_gen3 as well as a new ci_imsim package, so it seems to fit our needs well.