Releases: moonrepo/moon
2.1.3
Release Notes
🧰 Toolchains
- Go
- Fixed an issue where
go listwas not running in the project root. - Fixed an issue where
go listwould add a project dependency to itself.
- Fixed an issue where
- JavaScript
- Will now remove
node_modulesduring Docker prune, as some package managers don't do this
automatically. - Removed
*.config.*files from the Docker scaffold process.
- Will now remove
- npm/pnpm/yarn
- Updated to always include the "shared globals" directory.
- Python
- Fixed install/venv args being passed incorrectly in some situations.
Install moon_cli 2.1.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.1.3/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.1.3/moon_cli-installer.ps1 | iex"Download moon_cli 2.1.3
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.1.2
Release Notes
🚀 Updates
- Updated the affected tracker to mark project/tasks as affected on-demand, instead of everything up
front. This allows us to short-circuit early, improving performance for very large repos. - Updated many commands and call sites to load projects/tasks without expansion, slightly improving
performance and memory usage.
🧰 Toolchains
- Go
- Added
inferRelationshipsandinferRelationshipsFromTestssettings to control
go list --depsusage.
- Added
- JavaScript
- Updated
deno.lockandyarn.lockparsing dependencies.
- Updated
- Python
- Fixed an issue where install commands didn't have access to venv bins.
- Fixed an issue where project dependencies were not being inferred correctly when the dependency
contains extras metadata.
- Rust
- Updated
Cargo.lockparsing dependencies.
- Updated
- TypeScript
- Added TypeScript v6 support.
⚙️ Internal
- Updated dependencies.
Install moon_cli 2.1.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.1.2/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.1.2/moon_cli-installer.ps1 | iex"Download moon_cli 2.1.2
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.1.1
Release Notes
🐞 Fixes
- Fixed an issue with remote caching where the batching max size and limit were not being applied
correctly. - Fixed an issue where exclude/rename for task inheritance applied to tasks other than those in the
current project. - Fixed an issue where toolchains that loaded project/workspace toolchain configuration would not be
merged correctly. - Fixed an issue where task console output may appear out of order.
- Fixed an issue with Git file hashing by temporarily re-enabling Git locks.
Install moon_cli 2.1.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.1.1/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.1.1/moon_cli-installer.ps1 | iex"Download moon_cli 2.1.1
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.1.0
Release Notes
🚀 Updates
- Environment
- Improved our local and remote detection logic. We now also check for common remote devboxes
(GitHub Codespaces, Gitpod, etc) in addition to CI environments.
- Improved our local and remote detection logic. We now also check for common remote devboxes
- Projects
- Updated duplicate aliases to no longer be a hard error, and instead will apply to the first
encountered project. Duplicates are possible when multiple toolchains all use the same package
name (Go, Rust, Node, etc).
- Updated duplicate aliases to no longer be a hard error, and instead will apply to the first
- Tasks
- Added 3 new settings to the
affectedFilesoption when using the object syntax:filter- A list of glob patterns to filter the affected files list before passing to the
task.ignoreProjectBoundary- When matching affected files, ignore the project boundary and
include workspace relative files. Otherwise, only files within the project are matched.passDotWhenNoResults- When there are no affected files after matching and filtering, use
.instead of an empty value.
- Added a new option,
runInSyncPhase, that will run the task duringmoon synccommands.
- Added 3 new settings to the
- Toolchains
- Added
inheritAliases(defaulttrue) setting for each toolchain. Can toggle whether to
inherit aliases for projects while extending the project graph. - Added
installDependencies(defaulttrue) setting for each toolchain. Can toggle whether to
install dependencies (via theInstallDependenciesaction) when running a task.
- Added
🧰 Toolchains
- Go
- Will now run
go list --depsto determine project relationships while extending the project
graph.
- Will now run
- Python
- Normalized package/dependency names to PEP 503 during graph extending.
- Fixed an issue where package manager toolchain settings were not being inherited correctly.
- TypeScript
- Added a
pruneProjectReferencessetting that prunes non-moon managed project references when
syncing.
- Added a
🐞 Fixes
- Fixed invalid JSON schema in MCP
generatetool. - Fixed
$projectTitleand$projectAliasestokens not being substituted. - Fixed an issue where
bashmay not be available (falls back tosh). - Fixed an issue where a task
commandcould not end with--. - Fixed some issues where
.config/moonwas not respected. - Potential fix for tail-end console output not being written.
⚙️ Internal
- Updated dependencies.
Install moon_cli 2.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.1.0/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.1.0/moon_cli-installer.ps1 | iex"Download moon_cli 2.1.0
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.0.4
Release Notes
🧰 Toolchains
- JavaScript
- Added support for
*versions when determining project relationships. - Reworked
pnpm dedupeandyarn dedupedetection logic.
- Added support for
- Python
- Will now read
pyproject.tomldependencies to determine project relationships.
- Will now read
⚙️ Internal
- Updated proto to v0.55.4 from 0.55.2.
- Updated Rust to v1.94.0.
- Updated dependencies.
Install moon_cli 2.0.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.4/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.4/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.4
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.0.3
Release Notes
This is a re-release as the v2.0.2 release workflow failed.
🚀 Updates
- Temporarily disabled shallow checkouts triggering a hard error in CI until we can implement a
better solution. This means that if you have a shallow checkout, you may see incorrect affected
results, or Git commands may fail. - Added more logs to
moon docker pruneto help debug edge cases. - Added
MOON_INCLUDE_RELATIONSenvironment variable support for the--include-relationsCLI
option. - Added
.envand.env.*as defaults to thehasher.ignoreMissingPatternssetting.
🐞 Fixes
- Fixed an issue where the graph visualizers would not render correctly in the VS Code extension.
- Fixed an issue where a task with
shell: falsewould be force enabled when a glob/env was
detected. We now respect the configured value. - Fixed an issue where "run" type based tasks would not run in CI. You'll need to pair it with
--ignore-ci-checks.
Install moon_cli 2.0.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.3/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.3/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.3
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.0.1
Release Notes
🚀 Updates
- Updated
moon upgradeto upgrade via proto if we detect that moon is managed by proto. This will
runproto install moon latest.
🐞 Fixes
- Fixed some WASM serialization errors.
- Fixed the
moon upgradecommand not handling the new v2 distribution format correctly. If you are
on moon v2.0.0, the upgrade command will still be broken until you upgrade to this patch.
Install moon_cli 2.0.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.1/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.1/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.1
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| moon_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| moon_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
2.0.0
Release Notes
💥 Breaking
View the migration guide for a full list of breaking changes and how to easily migrate!
-
Renamed "touched files" to "changed files".
-
CLI
- Removed canary and nightly releases.
- Removed commands:
moon node,moon migrate from-package-json,moon query hash,
moon query hash-diff - Renamed all options and flags to kebab-case instead of camelCase.
- Reworked many commands and their arguments. Refer to the migration guide for details.
- Reworked console output handling. Updated
--summarywith different levels. - Reworked release distribution to use archives instead of direct executables.
-
Configuration
- Renamed, removed, or changed many settings. Refer to the migration guide for details.
- Renamed
.moon/toolchain.ymlto.moon/toolchains.yml(plural).
-
MCP
- Updated protocol version to 2025-11-25.
- Updated
get_projectsandget_tasksto return fragments, to reduce the payload size.
-
Projects
- Reworked how the
languageis detected. - Flattened
projectmetadata structure.
- Reworked how the
-
Tasks
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
multi-global. - Task
commandandargsonly support simple commands now. Usescriptfor compound commands
(pipes, redirects, multiple commands, etc). - Removed "watcher" task
preset. - Reworked env var merge order, substitution, and more. Refer to the migration guide for details.
- Reworked
.envhandling.- Moved loading to occur before task execution, instead of creation.
- Can no longer reference task
envvars for substitution.
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
-
Toolchain
- Removed the old platform system, and replaced it with the new WASM plugin system.
- All old "stable" toolchains have been replaced with the new "unstable" toolchains.
- Removed the old platform system, and replaced it with the new WASM plugin system.
-
VCS
- Reworked the hooks layer for better interoperability.
-
WASM API
- Removed the
/cwdvirtual path. - Renamed
ProjectFragment.aliastoProjectFragment.aliasesand changed its type from
Option<String>toVec<String>. - Removed
RegisterExtensionOutput.config_schemafield. Use the newdefine_extension_config
plugin function instead.
- Removed the
🚀 Updates
View the announcement blog post for all updates, new features, improvements, and much more!
- Action pipeline
- Will now always generate a hash for a task, even if caching is disabled.
- Applies "transitive reduction" to the graph, removing unnecessary edges for better performance.
- Improved console output, logging, and error handling.
- Improved parallelism when running tasks.
- Now resolves and expands targets before partitioning.
- Now partitions after filtering based on affected state.
- CLI
- New commands:
moon exec,moon extension,moon hash,moon projects,moon tasks,
moon query affected,moon template - Updated commands
moon check,moon ci, andmoon run:- Now uses
moon execunder the hood. - Added levels to
--summary.
- Now uses
- Updated commands that require an identifier to prompt for it if not provided.
- Stabilized the
moonxbinary (which usesmoon execunder the hood). - Added support for
.config/mooninstead of.moon. - Added support for
...in task targets, which is an alias for**/*. This is similar to how
Bazel targets work. - Improved stack memory usage by pushing thread data to the heap. This resolves spurious stack
overflow issues.
- New commands:
- Configuration
- Added support for more formats: JSON, TOML, and HCL.
- Improved error messages for union based settings.
.moon/extensions.*- New file for configuring extensions (formerly in
workspace.extensions).
- New file for configuring extensions (formerly in
.moon/tasks.*- Added
inheritedBysetting for configuration based task inheritance.
- Added
.moon/workspace.*- Added
projects.globFormatsetting. - Added
defaultProjectsetting. - Stabilized remote caching.
- Added
moon.*- Added
mergeToolchainstask option. - Added "utility" task
preset. - Added "data"
stack.
- Added
- Docker
- Better toolchain integration.
- Added
--no-setupand--templatesupport tomoon docker file. - Updated project configs to override workspace configs.
- Extensions
- Added a new extension,
unpack, for unpacking archive files. - Added
.moon/extensions.*configuration file. - Added support for new plugin APIs:
define_extension_config,extend_command,
extend_project_graph,extend_task_command,extend_task_script,sync_project, and
sync_workspace.
- Added a new extension,
- MCP
- Added a
generatetool for running the code generator.
- Added a
- Projects
- Added a default project concept.
- Added path based IDs instead of dir name IDs.
- Updated projects to support multiple aliases (one from each applicable toolchain).
- Remote cache
- Stabilized all settings.
- Enabled gzip/zstd compression for HTTP requests.
- Tasks
- Added deep merging support for task inheritance.
- Updated
commandandargswith better syntax parsing and error handling.- Better handling of quotes, escapes, and spaces.
- Extracts env vars into the task.
- Updated
envvalues to supportnull, which would remove an inherited system env var. - Updated
envFileoption to support token/var substitution. - Improved
.envhandling:- Updated the parser to support more syntax.
- Updated loading to occur before task execution, instead of creation.
- Can now reference system/moon/task env vars for substitution.
- Toolchains
- Stabilized the new WASM plugin system.
- Improved how toolchains extend env vars and paths for commands and scripts.
- Tokens
- Added new tokens:
$projectTitle,$projectAliases,$taskToolchains
- Added new tokens:
- VCS
- Replaced the old v1 Git implementation with a new v2 implementation.
- Improved support for worktrees, submodules, and more.
- WASM API
- Added a
load_extension_config_by_idhost function. - Added
define_extension_config,initialize_extension, andextend_commandplugin functions. - Added
load_extension_config,parse_extension_configandparse_extension_config_schema
utility functions. - Added
DefineExtensionConfigOutput,InitializeExtensionInput,InitializeExtensionOutput,
ExtendCommandInput, andExtendCommandOutputtypes. - Added
ExtendProjectGraphInput.extension_config,ExtendTaskCommandInput.extension_config,
ExtendTaskScriptInput.extension_config,SyncProjectInput.extension_config, and
SyncWorkspaceInput.extension_configfields. - Added
RegisterToolchainOutput.languagefield.
- Added a
🧩 Extensions
- Migrate Nx
- Added support for the following
project.jsonfields:targets.*.continuous
- Added support for the following
- Migrate Turborepo
- Added support for the following
turbo.jsonfields:tags,tasks.*.env(wildcards and
negation)
- Added support for the following
- Unpack
- Updated to use
unzipandtarcommands.
- Updated to use
🧰 Toolchains
- JavaScript
- Added support for Yarn v4.10 catalogs.
- Fixed an issue where implicit dependencies would sometimes not resolve.
🐞 Fixes
- Fixed local executables in
@moonrepopackages not being detected correctly. - Fixed task job parallelism to partition after tasks have been filtered based on affected state.
- Fixed an issue where env var substitution would not process in the order they were defined.
- Fixed an issue where ctrl+c wouldn't exit when a prompt was waiting for input.
- Fixed an issue where
projectbased task inputs would not be reflected internally in the input
files/globs list. - Fixed an issue where running a task that triggers a system/moon error wouldn't output the error
message. This also aborts the action pipeline correctly now. - Fixed an issue where errors during project graph building would not be reported correctly.
- Fixed an issue where a negated glob in a file group would not expand properly when used as an
argument.
⚙️ Internal
- Updated proto to v0.55.2 from 0.53.2 (view v0.54 changes).
- Updated wasmtime to v37.
- Updated Rust to v1.93.0.
- Updated dependencies.
Install moon_cli 2.0.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.0/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.0/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.0
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| [moon_cli-x86_64-unknown-linux-gnu.tar.xz](https://github.com/moonrepo/moon/releases/download/v2.0.0/moon_cli-... |
Version 2.0.0-rc.5
Release Notes
💥 Breaking
View the migration guide for a full list of breaking
changes and how to easily migrate!
-
Renamed "touched files" to "changed files".
-
CLI
- Removed canary and nightly releases.
- Removed commands:
moon node,moon migrate from-package-json,moon query hash,
moon query hash-diff - Renamed all options and flags to kebab-case instead of camelCase.
- Reworked many commands and their arguments. Refer to the migration guide for details.
- Reworked console output handling. Updated
--summarywith different levels. - Reworked release distribution to use archives instead of direct executables.
-
Configuration
- Renamed, removed, or changed many settings. Refer to the migration guide for details.
- Renamed
.moon/toolchain.ymlto.moon/toolchains.yml(plural).
-
MCP
- Updated protocol version to 2025-11-25.
- Updated
get_projectsandget_tasksto return fragments, to reduce the payload size.
-
Projects
- Reworked how the
languageis detected. - Flattened
projectmetadata structure.
- Reworked how the
-
Tasks
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
multi-global. - Task
commandandargsonly support simple commands now. Usescriptfor compound commands
(pipes, redirects, multiple commands, etc). - Removed "watcher" task
preset. - Reworked env var merge order, substitution, and more. Refer to the migration guide for details.
- Reworked
.envhandling.- Moved loading to occur before task execution, instead of creation.
- Can no longer reference task
envvars for substitution.
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
-
Toolchain
- Removed the old platform system, and replaced it with the new WASM plugin system.
- All old "stable" toolchains have been replaced with the new "unstable" toolchains.
- Removed the old platform system, and replaced it with the new WASM plugin system.
-
VCS
- Reworked the hooks layer for better interoperability.
-
WASM API
- Removed the
/cwdvirtual path. - Renamed
ProjectFragment.aliastoProjectFragment.aliasesand changed its type from
Option<String>toVec<String>. - Removed
RegisterExtensionOutput.config_schemafield. Use the newdefine_extension_config
plugin function instead.
- Removed the
🚀 Updates
View the announcement blog post for all updates, new
features, improvements, and much more!
- Action pipeline
- Will now always generate a hash for a task, even if caching is disabled.
- Applies "transitive reduction" to the graph, removing unnecessary edges for better performance.
- Improved console output, logging, and error handling.
- Improved parallelism when running tasks.
- Now resolves and expands targets before partitioning.
- Now partitions after filtering based on affected state.
- CLI
- New commands:
moon exec,moon extension,moon hash,moon projects,moon tasks,
moon query affected,moon template - Updated commands
moon check,moon ci, andmoon run:- Now uses
moon execunder the hood. - Added levels to
--summary.
- Now uses
- Updated commands that require an identifier to prompt for it if not provided.
- Stabilized the
moonxbinary (which usesmoon execunder the hood). - Added support for
.config/mooninstead of.moon. - Added support for
...in task targets, which is an alias for**/*. This is similar to how
Bazel targets work. - Improved stack memory usage by pushing thread data to the heap. This resolves spurious stack
overflow issues.
- New commands:
- Configuration
- Added support for more formats: JSON, TOML, and HCL.
- Improved error messages for union based settings.
.moon/extensions.*- New file for configuring extensions (formerly in
workspace.extensions).
- New file for configuring extensions (formerly in
.moon/tasks.*- Added
inheritedBysetting for configuration based task inheritance.
- Added
.moon/workspace.*- Added
projects.globFormatsetting. - Added
defaultProjectsetting. - Stabilized remote caching.
- Added
moon.*- Added
mergeToolchainstask option. - Added "utility" task
preset. - Added "data"
stack.
- Added
- Docker
- Better toolchain integration.
- Added
--no-setupand--templatesupport tomoon docker file. - Updated project configs to override workspace configs.
- Extensions
- Added a new extension,
unpack, for unpacking archive files. - Added
.moon/extensions.*configuration file. - Added support for new plugin APIs:
define_extension_config,extend_command,
extend_project_graph,extend_task_command,extend_task_script,sync_project, and
sync_workspace.
- Added a new extension,
- MCP
- Added a
generatetool for running the code generator.
- Added a
- Projects
- Added a default project concept.
- Added path based IDs instead of dir name IDs.
- Updated projects to support multiple aliases (one from each applicable toolchain).
- Remote cache
- Stabilized all settings.
- Enabled gzip/zstd compression for HTTP requests.
- Tasks
- Added deep merging support for task inheritance.
- Updated
commandandargswith better syntax parsing and error handling.- Better handling of quotes, escapes, and spaces.
- Extracts env vars into the task.
- Updated
envvalues to supportnull, which would remove an inherited system env var. - Updated
envFileoption to support token/var substitution. - Improved
.envhandling:- Updated the parser to support more syntax.
- Updated loading to occur before task execution, instead of creation.
- Can now reference system/moon/task env vars for substitution.
- Toolchains
- Stabilized the new WASM plugin system.
- Improved how toolchains extend env vars and paths for commands and scripts.
- Tokens
- Added new tokens:
$projectTitle,$projectAliases,$taskToolchains
- Added new tokens:
- VCS
- Replaced the old v1 Git implementation with a new v2 implementation.
- Improved support for worktrees, submodules, and more.
- WASM API
- Added a
load_extension_config_by_idhost function. - Added
define_extension_config,initialize_extension, andextend_commandplugin functions. - Added
load_extension_config,parse_extension_configandparse_extension_config_schema
utility functions. - Added
DefineExtensionConfigOutput,InitializeExtensionInput,InitializeExtensionOutput,
ExtendCommandInput, andExtendCommandOutputtypes. - Added
ExtendProjectGraphInput.extension_config,ExtendTaskCommandInput.extension_config,
ExtendTaskScriptInput.extension_config,SyncProjectInput.extension_config, and
SyncWorkspaceInput.extension_configfields. - Added
RegisterToolchainOutput.languagefield.
- Added a
🧩 Extensions
- Migrate Nx
- Added support for the following
project.jsonfields:targets.*.continuous
- Added support for the following
- Migrate Turborepo
- Added support for the following
turbo.jsonfields:tags,tasks.*.env(wildcards and
negation)
- Added support for the following
- Unpack
- Updated to use
unzipandtarcommands.
- Updated to use
🧰 Toolchains
- JavaScript
- Added support for Yarn v4.10 catalogs.
- Fixed an issue where implicit dependencies would sometimes not resolve.
🐞 Fixes
- Fixed local executables in
@moonrepopackages not being detected correctly. - Fixed task job parallelism to partition after tasks have been filtered based on affected state.
- Fixed an issue where env var substitution would not process in the order they were defined.
- Fixed an issue where ctrl+c wouldn't exit when a prompt was waiting for input.
- Fixed an issue where
projectbased task inputs would not be reflected internally in the input
files/globs list. - Fixed an issue where running a task that triggers a system/moon error wouldn't output the error
message. This also aborts the action pipeline correctly now. - Fixed an issue where errors during project graph building would not be reported correctly.
- Fixed an issue where a negated glob in a file group would not expand properly when used as an
argument.
⚙️ Internal
- Updated proto to v0.55.2 from 0.53.2
(view v0.54 changes). - Updated wasmtime to v37.
- Updated Rust to v1.93.0.
- Updated dependencies.
Install moon_cli 2.0.0-rc.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.0-rc.5/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.0-rc.5/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.0-rc.5
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| moon_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | [checksum](https://github.com/moonrepo/moon/releases/download/v2.0.0-rc.5/moon_cli-x86_64-u... |
Version 2.0.0-rc.4
Release Notes
💥 Breaking
View the migration guide for a full list of breaking changes and how to easily migrate!
- Renamed "touched files" to "changed files".
- CLI
- Removed commands:
moon node,moon migrate from-package-json,moon query hash,
moon query hash-diff - Renamed all options and flags to kebab-case instead of camelCase.
- Reworked many commands and their arguments. Refer to the migration guide for details.
- Reworked console output handling. Updated
--summarywith different levels. - Reworked release distribution to use archives instead of direct executables.
- Removed commands:
- Configuration
- Renamed, removed, or changed many settings. Refer to the migration guide for details.
- Renamed
.moon/toolchain.ymlto.moon/toolchains.yml(plural).
- MCP
- Updated protocol version to 2025-11-25.
- Updated
get_projectsandget_tasksto return fragments, to reduce the payload size.
- Projects
- Reworked how the
languageis detected. - Flattened
projectmetadata structure.
- Reworked how the
- Tasks
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
multi-global. - Task
commandandargsonly support simple commands now. Usescriptfor compound commands
(pipes, redirects, multiple commands, etc). - Removed "watcher" task
preset. - Reworked env var merge order, substitution, and more. Refer to the migration guide for details.
- Reworked
.envhandling.- Moved loading to occur before task execution, instead of creation.
- Can no longer reference task
envvars for substitution.
- Task inheritance now deep merges instead of shallow merges when dealing with extends and
- Toolchain
- Removed the old platform system, and replaced it with the new WASM plugin system.
- All old "stable" toolchains have been replaced with the new "unstable" toolchains.
- Removed the old platform system, and replaced it with the new WASM plugin system.
- VCS
- Reworked the hooks layer for better interoperability.
- WASM API
- Removed the
/cwdvirtual path. - Renamed
ProjectFragment.aliastoProjectFragment.aliasesand changed its type from
Option<String>toVec<String>. - Removed
RegisterExtensionOutput.config_schemafield. Use the newdefine_extension_config
plugin function instead.
- Removed the
🚀 Updates
View the announcement blog post for all updates, new features, improvements, and much more!
- Action pipeline
- Will now always generate a hash for a task, even if caching is disabled.
- Applies "transitive reduction" to the graph, removing unnecessary edges for better performance.
- Improved console output, logging, and error handling.
- Improved parallelism when running tasks.
- Now resolves and expands targets before partitioning.
- Now partitions after filtering based on affected state.
- CLI
- New commands:
moon exec,moon extension,moon hash,moon projects,moon tasks,
moon query affected,moon template - Updated commands
moon check,moon ci, andmoon run:- Now uses
moon execunder the hood. - Added levels to
--summary.
- Now uses
- Updated commands that require an identifier to prompt for it if not provided.
- Stabilized the
moonxbinary (which usesmoon execunder the hood). - Added support for
.config/mooninstead of.moon. - Added support for
...in task targets, which is an alias for**/*. This is similar to how
Bazel targets work. - Improved stack memory usage by pushing thread data to the heap. This resolves spurious stack
overflow issues.
- New commands:
- Configuration
- Added support for more formats: JSON, TOML, and HCL.
- Improved error messages for union based settings.
.moon/extensions.*- New file for configuring extensions (formerly in
workspace.extensions).
- New file for configuring extensions (formerly in
.moon/tasks.*- Added
inheritedBysetting for configuration based task inheritance.
- Added
.moon/workspace.*- Added
projects.globFormatsetting. - Added
defaultProjectsetting. - Stabilized remote caching.
- Added
moon.*- Added
mergeToolchainstask option. - Added "utility" task
preset. - Added "data"
stack.
- Added
- Docker
- Better toolchain integration.
- Added
--no-setupand--templatesupport tomoon docker file. - Updated project configs to override workspace configs.
- Extensions
- Added a new extension,
unpack, for unpacking archive files. - Added
.moon/extensions.*configuration file. - Added support for new plugin APIs:
define_extension_config,extend_command,
extend_project_graph,extend_task_command,extend_task_script,sync_project, and
sync_workspace.
- Added a new extension,
- MCP
- Added a
generatetool for running the code generator.
- Added a
- Projects
- Added a default project concept.
- Added path based IDs instead of dir name IDs.
- Updated projects to support multiple aliases (one from each applicable toolchain).
- Remote cache
- Stabilized all settings.
- Enabled gzip/zstd compression for HTTP requests.
- Tasks
- Added deep merging support for task inheritance.
- Updated
commandandargswith better syntax parsing and error handling.- Better handling of quotes, escapes, and spaces.
- Extracts env vars into the task.
- Updated
envvalues to supportnull, which would remove an inherited system env var. - Updated
envFileoption to support token/var substitution. - Improved
.envhandling:- Updated the parser to support more syntax.
- Updated loading to occur before task execution, instead of creation.
- Can now reference system/moon/task env vars for substitution.
- Toolchains
- Stabilized the new WASM plugin system.
- Improved how toolchains extend env vars and paths for commands and scripts.
- Tokens
- Added new tokens:
$projectTitle,$projectAliases,$taskToolchains
- Added new tokens:
- VCS
- Replaced the old v1 Git implementation with a new v2 implementation.
- Improved support for worktrees, submodules, and more.
- WASM API
- Added a
load_extension_config_by_idhost function. - Added
define_extension_config,initialize_extension, andextend_commandplugin functions. - Added
load_extension_config,parse_extension_configandparse_extension_config_schema
utility functions. - Added
DefineExtensionConfigOutput,InitializeExtensionInput,InitializeExtensionOutput,
ExtendCommandInput, andExtendCommandOutputtypes. - Added
ExtendProjectGraphInput.extension_config,ExtendTaskCommandInput.extension_config,
ExtendTaskScriptInput.extension_config,SyncProjectInput.extension_config, and
SyncWorkspaceInput.extension_configfields. - Added
RegisterToolchainOutput.languagefield.
- Added a
🧩 Extensions
- Migrate Nx
- Added support for the following
project.jsonfields:targets.*.continuous
- Added support for the following
- Migrate Turborepo
- Added support for the following
turbo.jsonfields:tags,tasks.*.env(wildcards and
negation)
- Added support for the following
- Unpack
- Updated to use
unzipandtarcommands.
- Updated to use
🧰 Toolchains
- JavaScript
- Added support for Yarn v4.10 catalogs.
- Fixed an issue where implicit dependencies would sometimes not resolve.
🐞 Fixes
- Fixed local executables in
@moonrepopackages not being detected correctly. - Fixed task job parallelism to partition after tasks have been filtered based on affected state.
- Fixed an issue where env var substitution would not process in the order they were defined.
- Fixed an issue where ctrl+c wouldn't exit when a prompt was waiting for input.
- Fixed an issue where
projectbased task inputs would not be reflected internally in the input
files/globs list. - Fixed an issue where running a task that triggers a system/moon error wouldn't output the error
message. This also aborts the action pipeline correctly now. - Fixed an issue where errors during project graph building would not be reported correctly.
- Fixed an issue where a negated glob in a file group would not expand properly when used as an
argument.
⚙️ Internal
- Updated proto to v0.55.2 from 0.53.2
(view v0.54 changes). - Updated wasmtime to v37.
- Updated Rust to v1.93.0.
- Updated dependencies.
Install moon_cli 2.0.0-rc.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/moon/releases/download/v2.0.0-rc.4/moon_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/moon/releases/download/v2.0.0-rc.4/moon_cli-installer.ps1 | iex"Download moon_cli 2.0.0-rc.4
| File | Platform | Checksum |
|---|---|---|
| moon_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| moon_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| moon_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| [moon_cli-x86_64-unknown-linux-gnu.tar.xz](https://github.com/moonrepo/moon/releases/download/v2.0.0-r... |