💥 Breaking
- We've refactored how npm/pnpm/yarn work in the toolchain. Previously, they were installed as
global packages (or via corepack) within the configured~/.moon/tools/node
version. This
approach worked but was susceptible to collisions, so now, these package managers are installed
individually as their own tools at~/.moon/tools/npm
, etc. This change should be transparent to
you, but we're documenting it just in case something breaks! - We've updated the dependency graph so that
InstallDeps
based actions use the task'splatform
instead of the project'slanguage
as the tool to install. This allows for granular control at
the task level, and also unlocks the ability for project's to utilize multiple languages in the
future.
🚀 Updates
- Remote caching is now available for beta sign ups!
- When writing JSON files, indentation and formatting will be inferred from the closest
.editorconfig
as best as possible. - When applicable,
moon ci
will group and collapse logs based on the current CI/CD environment. - Updated webhook payloads to contain information about the current CI/CD environment under the
environment
field.
Runner
- Added an
affectedFiles
task option, allowing a filtered list of paths based on affected files to
be passed as command line arguments. Perfect for git hooks!
Generator
- Updated the generator to now support merging JSON and YAML files when it exists in both the
destination and source.
🐞 Fixes
- Fixed an issue where passthrough args were incorrectly being passed to non-primary targets when
usingmoon run
. - Fixed an issue where a root-level project was not being marked as affected based on touched files.
- Fixed an issue where tool version overrides at the project-level were not properly being set, and
configuration that is root-only was being referenced in projects. - Fixed some CLI arguments that should be ran mutually exclusive with other arguments.
- Task hashes will now properly invalidate if their dependencies hashes have also changed.
⚙️ Internal
- Updated Rust to v1.65.