| > Does it enforce hermecity or deterministic builds or give me tools to accomplish it? I wouldn't say moon is hermetic, nor are we trying to be. We don't use the sandbox approach for tasks, and run against the original files. For the languages we support, this works best. As for deterministic, we try to be. We have a "toolchain" where we download languages/tools in the background, and run tasks using these tools. This ensures, at minimum, that the same version/variant of a tool is used across machines. > In the same vein as those questions how does caching work? It's content based. We also hash other kinds of inputs depending on the language that is running. > If the configuration language is YAML how am I expected to implement new behavior? (and other questions) Our focus right now is on non-compiled languages, primarily web languages, where custom behavior (like Starlark) is not necessary. In the future, this may change. |
Also a bit disingenuous to describe it as language agnostic if it only really works with non-compiled languages.