mamba-org / conda-specs

A collection of specs, and spec proposals for Mamba packages, recipes and repositories
3 stars 3 forks source link

(C|M)onstructor spec #6

Open bollwyvl opened 4 years ago

bollwyvl commented 4 years ago

Hey folks, love the work here!

I'm very excited about https://github.com/mamba-org/monstructor but would hope that the (machine-readble) JSON spec is at least semi-compatible with construct.yaml and can be structurally validated without trying to actually build it.

wolfv commented 4 years ago

yes, right now the entire monstructor thing is very experimental. I strongly believe we can use the same format as for the conda constructor.

Not sure if you looked at the monstructor source, but it really just concatenates repodata.json + tar.bz2 to a pre-existing binary. This binary part will be downloadable from e.g. github releases, and then you can just add anything to the end of that binary.

Currently we have a simple python script that does this job from a conda list --json output. But the input to this python script could well be a construct.yaml of some sort.

bollwyvl commented 4 years ago

Great!

Constructor's format or not, having a machine-readable spec might even help the experimentation!

Supporting the same format as constructor, with all its warts, is probably a good goal: I've likely used every one of those crazy switches at some point, and wish they had more. But the existing Markdown spec is rather loose, and somewhat self-inconsistent.

Using the JSON intermediate as a lower-level lock representation sounds interesting as well. The @EXPLICIT format leaves a lot to be desired, it would be lovely if more of the tools could work with the --json structure, but again, it has changed within memory, as it doesn't have a spec.

Thanks!