
"The most significant change in moon v2.0 is the move from a hard-coded platform system to a WASM plugin-based toolchain architecture. Toolchains were previously baked into moon's core, limiting language support to what the maintainers built directly. The new system allows the community to create custom toolchain plugins for any language or runtime, with support for extending the project graph, modifying task commands, hooking into Docker flows, and managing tool installation via proto, moonrepo's companion version manager."
"Alongside the toolchain overhaul, moon v2.0 now supports JSON, JSONC, HCL, Pkl, and TOML configuration formats in addition to YAML. The CLI has been reworked with a new low-level moon exec command that underpins moon ci, moon check, and moon run, providing a unified execution layer with support for job parallelisation and affected filtering. The moonx shorthand binary has been stabilised as a proper standalone executable, and interactive project and task selection prompts have been added for commands where no identifier is provided."
"Task inheritance, one of moon's most compelling features for monorepo management, has been reworked to be configuration-based rather than relying on file naming conventions. A new inheritedBy setting allows users to define criteria such as toolchain, stack, language, and tags to control which projects inherit which tasks. Tasks can now also be associated with multiple toolchains, and .env file handling has been improved with automatic loading of .env"
Moon v2.0, codenamed Phobos, delivers a plugin-based toolchain system that replaces a hard-coded platform model. Toolchains can now be provided as WASM plugins, enabling community support for additional languages and runtimes. Plugins can extend the project graph, modify task commands, hook into Docker flows, and manage tool installation through proto via the companion version manager. The release adds support for JSON, JSONC, HCL, Pkl, and TOML configuration formats alongside YAML. A restructured CLI introduces moon exec as a unified execution layer for moon ci, moon check, and moon run, with job parallelisation and affected filtering. Task inheritance is reworked into configuration-based rules using inheritedBy criteria, supports multiple toolchains per task, and improves .env loading.
Read at InfoQ
Unable to calculate read time
Collection
[
|
...
]