🚀 Updates
- We've rewritten our project graph to use eager-loading instead of lazy-loading to improve
performance, and to avoid mutating borrowed data across threads in Rust. We're also no longer
cloning project information unnecessarily, which is a massive memory reduction boost. - We've also rewritten our dependency graph in a similar fashion, and are now able to efficiently
reference data from the project graph while building the dependency chain. - You may now install the
@moonrepo/cli
package globally with pnpm and yarn. When running these
globals, moon will attempt to use the binary found in the repo's node modules.
Core
- Added a new cache level,
read-write
, that can be passed to--cache
orMOON_CACHE
. This is
now the default level, whilewrite
is now a write-only level. - Added
--minimal
tomoon init
for quick scaffolding and prototyping. - Updated the system platform to include the operating system and architecture when hashing.
- Updated remote caching to use presigned URLs when available.
Graphs
- Updated
moon dep-graph
andmoon project-graph
to serve interactive graph visualizers using the
cytoscape library. The DOT output has moved behind a--dot
flag.
Runner
- Added
--updateCache
(-u
) tomoon check
andmoon run
that force updates the cache and
bypasses any existing cache. - Added
args
andenv
as valid values for theaffectedFiles
task option. - Updated
moon run
andmoon query touched-files
to support a list of--status
options. - Updated pnpm prune to use the pnpm-deduplicate
package.
Toolchain
- Added 24 hour temporary caching to version manifests to improve performance.
- Updated default versions of tools:
- pnpm 7.14.0 -> 7.18.2
- yarn 3.2.4 -> 3.3.0
🐞 Fixes
- Fixed an issue where "installing yarn" would constantly show.
- Fixed an issue on Windows where
package.json
andtsconfig.json
would change newlines
unexpectedly when saving. - Fixed an issue with
^:deps
that would resolve projects with a non-matching task.
⚙️ Internal
- Updated Rust to v1.66.