Skip to content

Releases: moonrepo/moon

v1.40.4

18 Sep 19:22
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where proto wouldn't be installed for legacy toolchains in certain conditions.

⚙️ Internal

  • Updated dependencies.

v1.40.3

17 Sep 22:35
Compare
Choose a tag to compare

🚀 Updates

  • When running a task, we now set MOON_TASK_RETRY_ATTEMPT and MOON_TASK_RETRY_TOTAL environment
    variables, which can be accessed in child processes.
  • Updated VCS hook scripts to set environment variables for each argument passed to the hook, in the
    format of ARG<n> (1-index based).

🐞 Fixes

  • Fixed an issue where VCS hooks would not be created if they were removed but the cache still
    existed.
  • Fixed an issue where commands executed by a toolchain would sometimes not inherit the PATH
    correctly.

v1.40.2

08 Sep 21:19
Compare
Choose a tag to compare

🧰 Toolchains

  • JavaScript
    • Fixed some pnpm-lock.yaml parsing issues when using pnpm as a package manager.

⚙️ Internal

  • Updated dependencies.

v1.40.1

03 Sep 23:34
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where a task would try to execute with proto, but proto hasn't been fully installed
    yet.
  • Fixed an issue where task PATHs may not always be injected correctly.

🧰 Toolchains

  • JavaScript
    • Fixed some package.json dependency version parsing issues.

⚙️ Internal

  • Updated dependencies.

v1.40.0

02 Sep 01:04
Compare
Choose a tag to compare

💥 Breaking

  • The legacy toolchains (bun, node, python, etc) will no longer automatically enable if there's a
    version defined in .prototools, as there's no way to differentiate between the legacy and modern
    toolchains.
  • Updated moon query touched-files to default to comparing against remote branches when in CI, and
    local when not in CI. This aligns with the other moon query commands.
    • This can be overridden with the --local and --remote flags.

🚀 Updates

  • Added new JavaScript ecosystem toolchain WASM plugins. This was a large feature that required
    extensive work, as the JavaScript ecosystem is quite unique. The following plugins are being
    introduced:
    • unstable_javascript
      • A new JavaScript specific plugin that is a superset of all JavaScript runtimes (Bun & Node,
        with Deno coming soon).
      • Implements tier 1 and 2 features, and is now in charge of defining the package manager,
        installing dependencies, extending the project graph (aliases and tasks), parsing
        lockfiles/manifests, and much more.
      • Supports multiple lockfiles for each package manager.
    • unstable_bun and unstable_node
      • The JavaScript runtimes only implement tier 1 and 3 features, and only exist for installing
        the tool into the proto toolchain. Most functionality is now in the unstable_javascript
        plugin.
      • Supports settings for Bun/Node execution.
    • unstable_npm, unstable_pnpm, and unstable_yarn
      • The JavaScript package managers only implement tier 1 and 3 features, and only exist for
        installing the tool into the proto toolchain. Most functionality is now in the
        unstable_javascript plugin.
      • Supports settings for package installation.
      • npm now supports npm-shrinkwrap.json.
      • Is no longer configured within node, and is now configured at the top-level within
        .moon/toolchain.yml.
  • Added new values to the task cache option, alongside the existing boolean.
    • local to only use the local cache.
    • remote to only use the remote cache.
  • Added a new unstable_remote.cache.localReadOnly setting, which turns local development caching
    into a read-only mode (only downloads, doesn't upload).
  • Updated task commands (child processes) to utilize toolchain executables directly, instead of
    relying entirely on proto shims. It achieves this by locating the executables, and prepending
    their directory onto PATH.
  • Updated moon task command to include all PATHs that are injected when running the task.
  • Deprecated the moon run --profile option.
    • This option was only used by Node.js, and is now a configuration setting for the unstable_node
      toolchain.
  • When running a task, we now set a MOON_TASK_HASH environment variable for the current hash,
    which can be read from child processes.
  • Published the moon VS Code extension to Open VSX:
    https://open-vsx.org/extension/moonrepo/moon-console

🐞 Fixes

  • Fixed an issue where proto shim/bin directories were always included in task command PATH, even
    when proto is not required.
  • Fixed an issue with task options affectedFiles and runFromWorkspaceRoot generating invalid
    paths.
  • Fixed moon docker file generating invalid Dockerfiles after the recent proto install changes.
  • Fixed an issue where xz/liblzma was dynamically linked, instead of statically.

🧰 Toolchains

  • Go
    • Fixed an issue with bins when installing multiple packages from different modules in parallel.
  • Python
    • When running uv venv, we now include the --no-managed-python flag when the python.version
      setting is defined. This should ensure that moon/proto's Python managed version is used.
    • When running uv sync, we now include the --no-managed-python flag unless the
      python.uv.syncArgs setting is defined.
  • Rust
    • Updated manifest parsing to extract path and git values from dependencies.
  • TypeScript
    • When includeSharedTypes and syncProjectReferences are both enabled, and the shared types
      folder contains a tsconfig.json, it will also be synced as a project reference.

🧩 Plugins

  • WASM API
    • Added a new define_requirements plugin API for tier 2.
    • Added DefineRequirementsInput and DefineRequirementsOutput types.
    • Added MoonContext.get_project_root and get_project_root_from_source methods.
    • Added ExtendProjectGraphInput.toolchain_config field.
    • Added ExtendTaskCommandInput.toolchain_config and project fields.
    • Added ExtendTaskScriptInput.toolchain_config and project fields.
    • Added load_toolchain_config and load_project_toolchain_config functions.
    • Added load_toolchain_config_by_id host function.

⚙️ Internal

  • Updated proto to v0.52.3 (from 0.51.4).
  • Updated Rust to v1.89.0.

v1.39.4

08 Aug 18:57
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue with moon setup failing when proto is not available.
  • Fixed task input inferrence to not include the $HOME, $USER, and $PWD environment variables.
  • Fixed some arg/shell quoting issues.

v1.39.3

28 Jul 22:58
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed a regression where an unknown/unconfigured layer would trigger a violation error.

v1.39.2

26 Jul 20:31
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed a glob input parsing issue when the pattern contained a ? and wasn't in URI format.
  • Fixed JSON schemas not including property aliases (project type for layer, etc).

⚙️ Internal

  • Updated dependencies.

v1.39.1

25 Jul 22:53
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed a path error for @moonrepo/cli package.

v1.39.0

25 Jul 21:24
Compare
Choose a tag to compare

🚀 Updates

  • The automatic proto install has moved into a new SetupProto action, which is now part of the
    action graph, and does not run on every command. It's also a bit smarter and will only install
    when a toolchain requires it.
  • Added support for new task input formats based on the RFC: #1985
    • Added URI support for files (file://) and globs (glob://).
    • Added object support for files and globs.
  • Updated task input files:
    • Added a optional param, which allows the file to be optional (missing) during hashing.
      Defaults to true.
    • Added a content param, which will match against the file's contents to determine affected
      state.
  • Updated task input globs:
    • Added a cache param, which controls whether the glob results should be cached or not.
  • Updated the @moonrepo/cli npm package to no longer rely on postinstall scripts.
  • Improved argument quoting for commands and scripts.
  • Renamed project type to layer, as it better reflects what it does, a layer of access within
    the project stack. For backwards compatibility, the type name will still be supported until
    v2. The following changes have been made:
    • type -> layer in moon.yml
    • --type -> --layer in moon query projects
    • projectType -> projectLayer for MQL
    • $projectType -> $projectLayer for task tokens
    • enforceProjectTypeRelationships -> enforceLayerRelationships in .moon/workspace.yml

🐞 Fixes

  • Fixed moon query touched-files --defaultBranch requiring a "true" or "false" explicit value.

⚙️ Internal

  • Added telemetry for toolchain usage.
  • Added unstable support for bubbling up logs from WASM plugins.
  • Updated Rust to v1.88.0.
  • Updated proto to v0.51.4 (from 0.50.1).
  • Updated dependencies.