Skip to content

Releases: moonrepo/moon

v1.31.1

08 Jan 01:44
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed NO_COLOR and FORCE_COLOR being unexpectedly set in some situations.
  • Fixed an issue where a custom project language would no longer inherit global tasks of the same
    name.

⚙️ Internal

  • Updated proto to v0.44.4 (from 0.44.2).

v1.31.0

06 Jan 18:53
Compare
Choose a tag to compare

💥 Breaking

  • We've updated the task inheritance order to better reflect specificity. The biggest changes are
    that deno/node/bun are now a higher priority than javascript/typescript, and stack is the lowest
    priority. This should only affect users with very complex inheritance chains.

🚀 Updates

  • We are deprecating the concept of the "platform", as this is required for the next step in
    supporting WASM based toolchain plugins. Going forward, any reference to platform is now a
    toolchain. The following changes have been made:
    • Deprecated the top-level platform setting in moon.yml, use toolchain.default instead.
      • Additionally, the toolchain can now be inferred from the top-level language setting and any
        config files in the project/workspace root. This pattern is preferred when possible.
    • Deprecated the platform task setting, use toolchain instead.
    • Deprecated the taskPlatform query field, use taskToolchain instead.
    • Deprecated the --platform option for moon query tasks, use --toolchain instead.
    • Deprecated the $taskPlatform token, use $taskToolchain instead.
  • Added the ability to run targets in moon run and moon ci using a glob-like syntax.
    • For example: :build-*, app-*:build, #tag-{foo,bar}:build, etc.
  • Added a --no-bail flag to moon run, that will continue running tasks even when a task fails.
  • Added glob support (and glob://) to generator.templates in .moon/workspace.yml, allowing you
    to glob for your codegen template locations.
  • Added a task option inferInputs, that will automatically infer inputs based on file groups and
    substituted environment variables used within the task.
  • Updated task option runInCI to support the values "always" (always run) and "affected" (only run
    if affected, same as true).
  • Updated task inputs to automatically be inherited from file group token functions used within the
    task's script, command, args, or env.
  • Updated the extends setting in .moon/workspace.yml, toolchain.yml, and tasks.yml, to
    support a list of files/URLs to extend.
  • Updated our unstable remote service (Bazel RE API) with new functionality:
    • Added an unstable_remote.cache.compression setting, which can be set to zstd to enable
      zstandard compression on output blobs.
    • Symlink based outputs will now be created as symlinks on Windows, where previously they were
      copies. Do note that symlinks require privileged access on Windows to function correctly.
  • Updated the moon templates command:
    • Templates are now sorted by identifier.
    • Added a --filter option to filter the templates list by ID.
  • Updated toolchain dependency installs to retry up to 3 attempts if the install command fails.
  • Improved the task output prefixing logic.

🐞 Fixes

  • Fixed a panic that could occur during command argument parsing.
  • Fixed an issue where remote cached blobs would sometimes fail to be created locally.
  • Fixed an issue when ctrl+cing multiple persistent tasks would sometimes leave them running in
    the background.

⚙️ Internal

  • Updated proto to v0.44.2 (from 0.44.1).
  • Updated dependencies.

v1.30.6

28 Dec 23:15
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where python venv would fail to find an applicable Python version.
  • Fixed an issue with PowerShell Git hooks not bubbling up exit codes of failed commands.
  • Fixed an issue where Git submodules/worktrees would point to the wrong hooks folder.

⚙️ Internal

  • Updated proto to v0.44.1 (from 0.43.1).

v1.30.5

10 Dec 00:15
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed Python virtual env bin path not being available for tasks when python.version is not
    defined.

⚙️ Internal

  • Updated proto to v0.43.1 (from 0.43.0).
  • Updated dependencies.

v1.30.4

09 Dec 00:56
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed moon ci showing incorrect job related logs.
  • Fixed some issues with the Python toolchain:
    • pip is no longer required to be enabled to activate a virtual environment.
    • Changed python.rootRequirementsOnly to false by default.
    • The venv root is now the location of a found requirements.txt, otherwise the package root, or
      workspace root if python.rootRequirementsOnly is enabled.
    • Tasks will now inherit the correct venv paths in PATH.

v1.30.3

04 Dec 21:07
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where a task with explicit no inputs (inputs: []) would always be marked as affected.

⚙️ Internal

  • Updated proto to v0.43.0 (from 0.42.2).
  • Updated wasmtime to v26 (from v23).
  • Updated Rust to v1.83.

v1.30.2

28 Nov 22:48
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where dependencies/dependents of an affected task would be skipped in the action
    graph if they were also not affected.
  • Fixed a potential cycle (stack overflow) that may occur in the affected tracker.

⚙️ Internal

  • Improved task dependent resolution in the action graph.

v1.30.1

28 Nov 07:57
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed a Git "fatal: bad object" error when submodules are in being used.
  • Fixed an issue where moon ci would trigger a shallow checkout error, even when a base revision
    is provided.
  • Fixed an issue were changes in a non-direct dependency would not mark a deep dependent as
    affected.

v1.30.0

26 Nov 01:05
Compare
Choose a tag to compare

💥 Breaking

  • If you renamed a project using the id setting in moon.yml, you can no longer reference that
    project in dependencies and targets using its original ID.
  • Refactored the moon query tasks command.
    • CLI options have been replaced with new task based options, instead of being project based.
    • Now utilizes the new task graph and affected tracker.
  • The moon project-graph --json output no longer includes task data (the tasks field is an empty
    map).
    • Use moon task-graph to access this data, and piece things together using the project
      taskTargets field.
    • The moon project --json output pieces everything together automatically.

🚀 Updates

  • Added unstable support for self-hosted remote caches, powered by the
    Bazel Remote Execution API.
    • Allows for 3rd-party implementations like
      bazel-remote to be used.
    • Currently supports the gRPC protocol, and will support HTTP in a later release.
    • Our moonbase product will be sunset in the future.
  • Added Python tier 2 and 3 support.
    • Will download and install Python into the toolchain when a version is configured.
    • Will parse the requirements.txt to resolve and install dependencies.
    • Added a python setting to .moon/toolchain.yml.
    • Added a toolchain.python setting to moon.yml.
    • Updated moon bin commands to support Python.
  • Added a new task graph, that enables new granular based functionality for task related features.
    • Added a new moon task-graph command.
    • Can now control the depth of upstream (dependencies) and downstream (dependents).
    • Affected information now tracks based on dependent graph connections.
    • Added --upstream and --downstream options to moon query tasks.
  • Added basic support for Git submodules, and will now extract touched files from all submodules.
  • Added 7 new token variables: $arch, $os, $osFamily, $vcsBranch, $vcsRepository,
    $vcsRevision, $workingDir
  • Added a rust.binstallVersion setting to .moon/toolchain.yml.
  • Updated Pkl configurations to support read() for environment variables.
  • Resolved the strictProjectIds experiment and you can no longer reference the original ID.
  • Resolved the disallowRunInCiMismatch experiment and you can no longer have a CI based task
    depend on a non-CI based task.

🐞 Fixes

  • Fixed moon project-graph <id> not including all dependencies/dependents. It was only showing
    direct relationships.
  • Fixed an issue where touched file paths would include Git submodule directories and trigger hasher warnings.

⚙️ Internal

  • Updated dependencies.
  • Updated proto to v0.42.2 (from 0.42.0).

v1.29.4

02 Nov 22:33
Compare
Choose a tag to compare

🚀 Updates

  • Added an experiments.strictProjectIds setting to .moon/workspace.yml. When enabled, will
    disallow using original IDs for renamed projects (via the id setting) when building the project
    graph.
  • Updated codegen/template destination to be relative from the workspace root if prefixed with
    /, otherwise the current working directory.

🐞 Fixes

  • Fixed an issue where moon would attempt to execute a folder if it has the same name as the current
    shell.
  • Fixed an issue where [working_dir] and [workspace_root] variables were not working in the
    template.yml destination setting.

⚙️ Internal

  • Updated dependencies.
  • Updated proto to v0.42.0 (from 0.41.3).