💥 Breaking
- Moved the
node
andtypescript
settings from.moon/workspace.yml
to a new config,
.moon/toolchain.yml
. - Moved the
workspace.node
andworkspace.typescript
settings inmoon.yml
totoolchain.node
andtoolchain.typescript
.
🚀 Updates
- Added
runner.archivableTargets
to.moon/workspace.yml
to control which targets are cached as
archives. - Added
vcs.remoteCandidates
to.moon/workspace.yml
to customize the remotes for git to query
against. - Added support for
moduleSuffixes
andmoduleDetection
in TypeScripttsconfig.json
compiler
options. - Added Google Cloud Build and AWS CodeBuild to the list of CI providers to detect. results.
Toolchain
- Implemented a new toolchain, that is more efficient and performant.
- Will now log to the terminal when node, npm, etc, are being installed for the first time.
Runner
- Updated the terminal output to include a shortened version of each task hash.
- Reworked the terminal output when running multiple tasks in parallel, or for long-running
processes. - Implemented a new file tree diffing algorithm that speeds up task output hydration by 10x.
- Updated pnpm to no longer run
pnpm prune
while deduping dependencies, as it produces unexpected
results.
Generator
- Added
path_join
andpath_relative
template filters. - Added pre-defined template variables for the working dir, destination, and workspace root.
🐞 Fixes
- When writing JSON files, it will now respect the
indent_style = tab
setting in the closest
.editorconfig
. - When writing YAML files, indentation and formatting will be inferred from the closest
.editorconfig
as best as possible. - Fixed an issue where parsing
yarn.lock
would panic on certain Windows machines. - Fixed an issue where
moon docker prune
would remove required node modules.
⚙️ Internal
- Migrated our json/yaml libraries to the official serde crates.
- Migrated to nextest for better testing performance.