Closed minrk closed 5 years ago
I'd prefer if GraphBlas were done separately, if possible. Build time limits on the various CI vary, but I don't think I've seen any that allow up to 6 hour builds. It'd be nice to have all the other tools still available on all platforms.
Would you make it a dependency of suitesparse or fully separate?
My preference is that coded dependencies should be there for a real technical reason (ex: GraphBlas using some subset of suitesparse functions to complete its work), and if there is nothing that links them, then no deps get coded.
Maybe there are some other examples of packages with numerous independent submodules we can emulate. I'll look around a bit.
Amazingly fast work @minrk !
suitesparse really is a "suite" of libraries. Until recently, most if not all of these were not available elsewhere, so packaging it as one thing makes the most sense.
With 5.4 (#54), however, suitesparse adds two new packages GraphBLAS and Mongoose, which are themselves individually packaged, versioned, and released on their own cadence, more frequent than the rest of SuiteSparse. GraphBLAS, in particular, constitutes ~90% of the build time of SuiteSparse 5.4, increasing build times from 7 minutes to over an hour. I probably wouldn't bother bringing this up, otherwise.
Choices:
Issues:
Mongoose depends on SuiteSparseConfig. The Mongoose standalone repo includes a copy of SuiteSparseConfig, so we'd have to be careful to avoid a conflict withmongoose appears to bundle a statically compiled suitesparseconfig, so there should be no dependency here.libsuitesparseconfig.dylib
. This makes it hard for SuiteSparse to depend on Mongoose, because Mongoose depends on SuiteSparse. I think this is only really feasible if we explode this recipe into having multiple outputs. For suitesparseconfig, if nothing else.