Skip to content

Releases: moonrepo/moon

2.1.3

26 Mar 17:41

Choose a tag to compare

Release Notes

🧰 Toolchains

  • Go
    • Fixed an issue where go list was not running in the project root.
    • Fixed an issue where go list would add a project dependency to itself.
  • JavaScript
    • Will now remove node_modules during Docker prune, as some package managers don't do this
      automatically.
    • Removed *.config.* files from the Docker scaffold process.
  • 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 | sh

Install 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

25 Mar 22:02

Choose a tag to compare

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 inferRelationships and inferRelationshipsFromTests settings to control
      go list --deps usage.
  • JavaScript
    • Updated deno.lock and yarn.lock parsing dependencies.
  • 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.lock parsing dependencies.
  • 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 | sh

Install 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

20 Mar 23:13

Choose a tag to compare

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 | sh

Install 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

16 Mar 20:59

Choose a tag to compare

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.
  • 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).
  • Tasks
    • Added 3 new settings to the affectedFiles option 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 during moon sync commands.
  • Toolchains
    • Added inheritAliases (default true) setting for each toolchain. Can toggle whether to
      inherit aliases for projects while extending the project graph.
    • Added installDependencies (default true) setting for each toolchain. Can toggle whether to
      install dependencies (via the InstallDependencies action) when running a task.

🧰 Toolchains

  • Go
    • Will now run go list --deps to determine project relationships while extending the project
      graph.
  • 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 pruneProjectReferences setting that prunes non-moon managed project references when
      syncing.

🐞 Fixes

  • Fixed invalid JSON schema in MCP generate tool.
  • Fixed $projectTitle and $projectAliases tokens not being substituted.
  • Fixed an issue where bash may not be available (falls back to sh).
  • Fixed an issue where a task command could not end with --.
  • Fixed some issues where .config/moon was 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 | sh

Install 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

06 Mar 05:09

Choose a tag to compare

Release Notes

🧰 Toolchains

  • JavaScript
    • Added support for * versions when determining project relationships.
    • Reworked pnpm dedupe and yarn dedupe detection logic.
  • Python
    • Will now read pyproject.toml dependencies to determine project relationships.

⚙️ 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 | sh

Install 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

26 Feb 00:27

Choose a tag to compare

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 prune to help debug edge cases.
  • Added MOON_INCLUDE_RELATIONS environment variable support for the --include-relations CLI
    option.
  • Added .env and .env.* as defaults to the hasher.ignoreMissingPatterns setting.

🐞 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: false would 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 | sh

Install 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

20 Feb 20:52

Choose a tag to compare

Release Notes

🚀 Updates

  • Updated moon upgrade to upgrade via proto if we detect that moon is managed by proto. This will
    run proto install moon latest.

🐞 Fixes

  • Fixed some WASM serialization errors.
  • Fixed the moon upgrade command 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 | sh

Install 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

18 Feb 21:57

Choose a tag to compare

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 --summary with 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.yml to .moon/toolchains.yml (plural).
  • MCP

    • Updated protocol version to 2025-11-25.
    • Updated get_projects and get_tasks to return fragments, to reduce the payload size.
  • Projects

    • Reworked how the language is detected.
    • Flattened project metadata structure.
  • Tasks

    • Task inheritance now deep merges instead of shallow merges when dealing with extends and
      multi-global.
    • Task command and args only support simple commands now. Use script for 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 .env handling.
      • Moved loading to occur before task execution, instead of creation.
      • Can no longer reference task env vars for substitution.
  • 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.
  • VCS

    • Reworked the hooks layer for better interoperability.
  • WASM API

    • Removed the /cwd virtual path.
    • Renamed ProjectFragment.alias to ProjectFragment.aliases and changed its type from
      Option<String> to Vec<String>.
    • Removed RegisterExtensionOutput.config_schema field. Use the new define_extension_config
      plugin function instead.

🚀 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, and moon run:
      • Now uses moon exec under the hood.
      • Added levels to --summary.
    • Updated commands that require an identifier to prompt for it if not provided.
    • Stabilized the moonx binary (which uses moon exec under the hood).
    • Added support for .config/moon instead 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.
  • 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).
    • .moon/tasks.*
      • Added inheritedBy setting for configuration based task inheritance.
    • .moon/workspace.*
      • Added projects.globFormat setting.
      • Added defaultProject setting.
      • Stabilized remote caching.
    • moon.*
      • Added mergeToolchains task option.
      • Added "utility" task preset.
      • Added "data" stack.
  • Docker
    • Better toolchain integration.
    • Added --no-setup and --template support to moon 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.
  • MCP
    • Added a generate tool for running the code generator.
  • 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 command and args with better syntax parsing and error handling.
      • Better handling of quotes, escapes, and spaces.
      • Extracts env vars into the task.
    • Updated env values to support null, which would remove an inherited system env var.
    • Updated envFile option to support token/var substitution.
    • Improved .env handling:
      • 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
  • 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_id host function.
    • Added define_extension_config, initialize_extension, and extend_command plugin functions.
    • Added load_extension_config, parse_extension_config and parse_extension_config_schema
      utility functions.
    • Added DefineExtensionConfigOutput, InitializeExtensionInput, InitializeExtensionOutput,
      ExtendCommandInput, and ExtendCommandOutput types.
    • Added ExtendProjectGraphInput.extension_config, ExtendTaskCommandInput.extension_config,
      ExtendTaskScriptInput.extension_config, SyncProjectInput.extension_config, and
      SyncWorkspaceInput.extension_config fields.
    • Added RegisterToolchainOutput.language field.

🧩 Extensions

  • Migrate Nx
    • Added support for the following project.json fields: targets.*.continuous
  • Migrate Turborepo
    • Added support for the following turbo.json fields: tags, tasks.*.env (wildcards and
      negation)
  • Unpack
    • Updated to use unzip and tar commands.

🧰 Toolchains

  • JavaScript
    • Added support for Yarn v4.10 catalogs.
    • Fixed an issue where implicit dependencies would sometimes not resolve.

🐞 Fixes

  • Fixed local executables in @moonrepo packages 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 project based 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 | sh

Install 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-...
Read more

Version 2.0.0-rc.5

18 Feb 20:47

Choose a tag to compare

Version 2.0.0-rc.5 Pre-release
Pre-release

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 --summary with 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.yml to .moon/toolchains.yml (plural).
  • MCP

    • Updated protocol version to 2025-11-25.
    • Updated get_projects and get_tasks to return fragments, to reduce the payload size.
  • Projects

    • Reworked how the language is detected.
    • Flattened project metadata structure.
  • Tasks

    • Task inheritance now deep merges instead of shallow merges when dealing with extends and
      multi-global.
    • Task command and args only support simple commands now. Use script for 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 .env handling.
      • Moved loading to occur before task execution, instead of creation.
      • Can no longer reference task env vars for substitution.
  • 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.
  • VCS

    • Reworked the hooks layer for better interoperability.
  • WASM API

    • Removed the /cwd virtual path.
    • Renamed ProjectFragment.alias to ProjectFragment.aliases and changed its type from
      Option<String> to Vec<String>.
    • Removed RegisterExtensionOutput.config_schema field. Use the new define_extension_config
      plugin function instead.

🚀 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, and moon run:
      • Now uses moon exec under the hood.
      • Added levels to --summary.
    • Updated commands that require an identifier to prompt for it if not provided.
    • Stabilized the moonx binary (which uses moon exec under the hood).
    • Added support for .config/moon instead 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.
  • 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).
    • .moon/tasks.*
      • Added inheritedBy setting for configuration based task inheritance.
    • .moon/workspace.*
      • Added projects.globFormat setting.
      • Added defaultProject setting.
      • Stabilized remote caching.
    • moon.*
      • Added mergeToolchains task option.
      • Added "utility" task preset.
      • Added "data" stack.
  • Docker
    • Better toolchain integration.
    • Added --no-setup and --template support to moon 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.
  • MCP
    • Added a generate tool for running the code generator.
  • 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 command and args with better syntax parsing and error handling.
      • Better handling of quotes, escapes, and spaces.
      • Extracts env vars into the task.
    • Updated env values to support null, which would remove an inherited system env var.
    • Updated envFile option to support token/var substitution.
    • Improved .env handling:
      • 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
  • 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_id host function.
    • Added define_extension_config, initialize_extension, and extend_command plugin functions.
    • Added load_extension_config, parse_extension_config and parse_extension_config_schema
      utility functions.
    • Added DefineExtensionConfigOutput, InitializeExtensionInput, InitializeExtensionOutput,
      ExtendCommandInput, and ExtendCommandOutput types.
    • Added ExtendProjectGraphInput.extension_config, ExtendTaskCommandInput.extension_config,
      ExtendTaskScriptInput.extension_config, SyncProjectInput.extension_config, and
      SyncWorkspaceInput.extension_config fields.
    • Added RegisterToolchainOutput.language field.

🧩 Extensions

  • Migrate Nx
    • Added support for the following project.json fields: targets.*.continuous
  • Migrate Turborepo
    • Added support for the following turbo.json fields: tags, tasks.*.env (wildcards and
      negation)
  • Unpack
    • Updated to use unzip and tar commands.

🧰 Toolchains

  • JavaScript
    • Added support for Yarn v4.10 catalogs.
    • Fixed an issue where implicit dependencies would sometimes not resolve.

🐞 Fixes

  • Fixed local executables in @moonrepo packages 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 project based 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 | sh

Install 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...
Read more

Version 2.0.0-rc.4

16 Feb 21:37

Choose a tag to compare

Version 2.0.0-rc.4 Pre-release
Pre-release

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 --summary with 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.yml to .moon/toolchains.yml (plural).
  • MCP
    • Updated protocol version to 2025-11-25.
    • Updated get_projects and get_tasks to return fragments, to reduce the payload size.
  • Projects
    • Reworked how the language is detected.
    • Flattened project metadata structure.
  • Tasks
    • Task inheritance now deep merges instead of shallow merges when dealing with extends and
      multi-global.
    • Task command and args only support simple commands now. Use script for 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 .env handling.
      • Moved loading to occur before task execution, instead of creation.
      • Can no longer reference task env vars for substitution.
  • 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.
  • VCS
    • Reworked the hooks layer for better interoperability.
  • WASM API
    • Removed the /cwd virtual path.
    • Renamed ProjectFragment.alias to ProjectFragment.aliases and changed its type from
      Option<String> to Vec<String>.
    • Removed RegisterExtensionOutput.config_schema field. Use the new define_extension_config
      plugin function instead.

🚀 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, and moon run:
      • Now uses moon exec under the hood.
      • Added levels to --summary.
    • Updated commands that require an identifier to prompt for it if not provided.
    • Stabilized the moonx binary (which uses moon exec under the hood).
    • Added support for .config/moon instead 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.
  • 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).
    • .moon/tasks.*
      • Added inheritedBy setting for configuration based task inheritance.
    • .moon/workspace.*
      • Added projects.globFormat setting.
      • Added defaultProject setting.
      • Stabilized remote caching.
    • moon.*
      • Added mergeToolchains task option.
      • Added "utility" task preset.
      • Added "data" stack.
  • Docker
    • Better toolchain integration.
    • Added --no-setup and --template support to moon 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.
  • MCP
    • Added a generate tool for running the code generator.
  • 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 command and args with better syntax parsing and error handling.
      • Better handling of quotes, escapes, and spaces.
      • Extracts env vars into the task.
    • Updated env values to support null, which would remove an inherited system env var.
    • Updated envFile option to support token/var substitution.
    • Improved .env handling:
      • 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
  • 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_id host function.
    • Added define_extension_config, initialize_extension, and extend_command plugin functions.
    • Added load_extension_config, parse_extension_config and parse_extension_config_schema
      utility functions.
    • Added DefineExtensionConfigOutput, InitializeExtensionInput, InitializeExtensionOutput,
      ExtendCommandInput, and ExtendCommandOutput types.
    • Added ExtendProjectGraphInput.extension_config, ExtendTaskCommandInput.extension_config,
      ExtendTaskScriptInput.extension_config, SyncProjectInput.extension_config, and
      SyncWorkspaceInput.extension_config fields.
    • Added RegisterToolchainOutput.language field.

🧩 Extensions

  • Migrate Nx
    • Added support for the following project.json fields: targets.*.continuous
  • Migrate Turborepo
    • Added support for the following turbo.json fields: tags, tasks.*.env (wildcards and
      negation)
  • Unpack
    • Updated to use unzip and tar commands.

🧰 Toolchains

  • JavaScript
    • Added support for Yarn v4.10 catalogs.
    • Fixed an issue where implicit dependencies would sometimes not resolve.

🐞 Fixes

  • Fixed local executables in @moonrepo packages 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 project based 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 | sh

Install 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...
Read more