Skip to content

Releases: moonrepo/moon

v1.37.2

15 Jun 18:54

Choose a tag to compare

🚀 Updates

  • Updated moon ci to always run the sync workspace action, even when no tasks are affected.

🐞 Fixes

  • Fixed an issue where git commands would attempt to execute, even when no git binary was found.
  • Fixed an issue where moon docker scaffold would over scaffold the same project multiple times.
  • Fixed an issue where proto would be installed when MOON_TOOLCHAIN_FORCE_GLOBALS is set.
  • Reworked the git commands that are executed for git:// based code generation.

⚙️ Internal

  • Updated dependencies.

v1.37.1

06 Jun 01:57

Choose a tag to compare

📚 Documentation

  • Updated the MCP documentation.
    • Added Zed support.
    • Added an llms.txt file to our website.
    • Updated code examples to include the MOON_WORKSPACE_ROOT environment variable.

🐞 Fixes

  • Fixed environment variable inheritance for config settings not always working correctly.

🧩 Plugins

  • Updated rust_toolchain to v0.1.2.
    • Fixed cargo-binstall failing in CI when the binary already exists.
  • WASM API
    • Added SetupEnvironmentInput.globals_dir field.

⚙️ Internal

  • Updated dependencies.

v1.37.0

04 Jun 00:45

Choose a tag to compare

🔖 RFCs

  • Task input additions and enhancements: #1985

🚀 Updates

  • Added a new Rust toolchain implementation, powered entirely by our new WASM plugin system. Since toolchain plugins are new and unstable, this Rust toolchain can be enabled with the unstable_rust identifier (instead of rust).
    • Supports multiple Cargo workspaces, and workspaces can exist at any depth.
    • More accurate project relationship detection.
    • New addMsrvConstraint setting.
    • Better Docker prune implementation.
    • Improved manifest/lockfile parsing.
    • Cargo/rustup commands are now hashed and cached.
  • Added an unstable moon mcp command, which starts an MCP (model context protocol) stdio server
    that responds to AI agent requests.
    • Supports the following tools: get_project, get_projects, get_task, get_tasks.
    • We will be expanding this with more functionality over time, like run_task, etc.
  • Updated webhook events.
    • Added environment.initializing and environment.initialized events.
    • Added root and toolchain fields to dependencies.installing and dependencies.installed
      events.
    • Deprecated the runtime field in all events. Will be removed once toolchain plugins are
      complete.

🧩 Plugins

  • Added test utilities for testing toolchain plugin functions.
  • Improved cache handling and invalidation for SetupEnvironment and InstallDependencies actions.
  • WASM
    • Reworked all virtual path fields in "output" structs to greatly reduce the JSON payload.
    • Reworked the ManifestDependency type to be an enum instead of a struct.
    • Added ProjectDependency.via field.

⚙️ Internal

  • Updated proto to v0.49.4 (from 0.49.1).
  • Updated dependencies.

v1.36.3

29 May 21:07

Choose a tag to compare

🐞 Fixes

  • Fixed an issue where environment variables with default/fallback values (${VAR:+default}) were
    not parsed correctly.

⚙️ Internal

  • Updated dependencies.

v1.36.2

25 May 22:05

Choose a tag to compare

🚀 Updates

  • Added support for shell-specific environment variable namespaces when scanning and substituting
    values. Supports the following:
    • $E: - Elvish
    • $env:: - Ion
    • $ENV. - Murex
    • $env. - Nu
    • $env: - PowerShell
  • Updated all identifiers to support unicode alpha-numeric characters instead of just ASCII.

🐞 Fixes

  • Fixed some issues where MOON_TOOLCHAIN_FORCE_GLOBALS wasn't respected for Python and Rust
    toolchains.

v1.36.1

21 May 21:10

Choose a tag to compare

🐞 Fixes

  • Fixed an issue where tasks would not substitute environment variables when executing, because it
    did not run in a shell.

⚙️ Internal

  • Updated dependencies.

v1.36.0

19 May 18:18

Choose a tag to compare

🚀 Updates

  • Added more unstable support for toolchain plugins.
    • In the project graph:
      • Extend projects with dependencies, tasks, and an alias.
    • In the action pipeline:
      • Added SetupEnvironment action that executes the setup_environment WASM API.
      • Added InstallDependencies action that executes the install_dependencies WASM API.
    • When running tasks:
      • Extend the command/script with additional parameters before executing.
      • Inject dependency and lock information into the hash.
    • With Docker:
      • Updated docker prune to utilize the new WASM APIs for toolchain plugins.
  • Added --host and --port options to moon action-graph, moon task-graph, and
    moon project-graph.
  • Added --stdin option to moon ci and moon run, which will allow touched files to be passed
    via stdin, instead of running VCS commands to determine them.
    • This is a follow-up fix to the revert in a previous version. This functionality is now opt-in
      instead of the default, to avoid problematic edge cases.
  • Updated and improved remote caching:
    • Added an unstable_remote.cache.verifyIntegrity setting, that will verify the digest of
      downloaded blobs to ensure they aren't corrupted or incomplete. Will degrade performance but
      ensure reliability.
    • Added a file rollback mechanic to that will be triggered when hydration fails part way and
      written files need to be removed.
    • Updated blob existence checks to be batched and parallelized.
    • Can now be enabled entirely through environment variables.
  • Updated and improved code generation:
    • Added support for array and object variable types in template.yml. The values must be JSON
      compatible.
    • Updated generator.templates to support https:// URLs that point to an archive that can be
      unpacked.
  • Removed the restriction around moon.{yml,pkl} not being allowed as a task input. However, will
    not be included when using **/*.

🐞 Fixes

  • Fixed an issue where terminal prompt validation would not trigger.
  • Fixed an issue with remote cache hydration where multiple files with the same blob hash would fail
    to write them all.
  • Fixed an issue where changing args or env of a task dependency would not invalidate its cache.
  • Fixed an issue where environment variables passed on the command line would not overwrite task
    env.
  • Fixed tag-based task dependencies not creating implicit project dependencies.
  • Fixed some task/command argument quoting issues.

🧩 Plugins

  • Added new toolchain WASM APIs.
    • extend_project_graph - Extend projects with toolchain specific info.
    • extend_task_command - Extend the command child process with parameters.
    • extend_task_script - Extend the script child process with parameters.
    • locate_dependencies_root - Locate the package dependencies workspace root.
    • parse_manifest - Parse a manifest file to extract dependencies.
    • parse_lock - Parse a lock file to extract resolved dependencies.
  • WASM
    • Added InstallDependenciesInput.packages and production fields.
    • Added InstallDependenciesOutput.operations field.
    • Added PruneDockerInput.projects and root fields.
    • Added PruneDockerOutput.
    • Added SetupEnvironmentOutput.operations field.
    • Added SetupToolchainOutput.operations field.
    • Added SyncWorkspaceInput.toolchain_config field.
    • Added TeardownToolchainInput.version field.

⚙️ Internal

  • Updated Rust to v1.87.0.
  • Updated proto to v0.49.1 (from 0.47.11).

v1.35.7

13 May 19:32

Choose a tag to compare

🐞 Fixes

  • Reverted moon ci and moon run accepting touched files via stdin, as it's causing issues in CI
    environments. Will revisit for the next release.

v1.35.6

09 May 18:03

Choose a tag to compare

🚀 Updates

  • Updated moon run to support passing touched files via stdin.
  • Updated commands that wait for stdin to continue after 10 seconds if nothing was received.

🐞 Fixes

  • Fixed an issue where Git v2 would error loading submodules that haven't been checked out yet.
  • Fixed an issue with remote cache hydration that would leave around stale artifacts.
  • Fixed an issue where parallel persistent tasks wouldn't prefix output.

v1.35.5

05 May 21:39

Choose a tag to compare

🐞 Fixes

  • Potential fix for affected dependencies in the action pipeline not running and failing with a
    "missing hash" error.
  • Potential fix for "Bun" and "Node with Bun as a package manager" both installing dependencies in
    parallel and colliding.
  • Fixed an issue where downloading an invalid remote cache would not abort the hydrate process.