Skip to content

Releases: moonrepo/moon

v1.35.4

01 May 17:48

Choose a tag to compare

🚀 Updates

  • Updated remote caching to error if an output file is a symlink to a file outside of the workspace.

🐞 Fixes

  • Fixed an issue with priority tasks where dependencies of the task may sometimes not run in the
    correct order in the pipeline.
  • Fixed an issue where task affectedFiles and runFromWorkspaceRoot would pass invalid relative
    file paths.
  • Fixed an issue where running tasks for custom plugins would trigger a panic.

v1.35.3

30 Apr 05:27

Choose a tag to compare

🚀 Updates

  • Updated remote uploads/downloads to abort when receiving a ctrl+c.

🐞 Fixes

  • Fixed an issue where interrupting (ctrl+c) a task that exits with a 0 code would treat is as
    succesful, resulting in an invalid cache.

v1.35.2

29 Apr 05:07

Choose a tag to compare

🚀 Updates

  • Improved bare repository support for Git v2.
  • Updated moon ci to support passing touched files via stdin.

🐞 Fixes

  • Fixed the faster/new glob implementation not filtering out hidden directories. This should now
    work like the old implementation.
  • Fixed the new Git v2 not working correctly for synced hooks and worktrees.

v1.35.1

21 Apr 17:05

Choose a tag to compare

🚀 Updates

  • Added locks to workspace graph building to avoid duplicate graphs.
  • Enabled TCP keep alive for remote service connections.
  • Tweaked the remote cache file size threshold.

🐞 Fixes

  • Fixed a scenario where task outputs would be partially hydrated from remote cache.

v1.35.0

16 Apr 19:54

Choose a tag to compare

🚀 Updates

  • Rewrote the action graph to support plugins. The following changes have been made.
    • Is now async compatible. In the future, we'll update it to also support concurrency, so that the
      graph can be built in parallel across threads.
    • Reduced the amount of edges (relationships) being created between nodes (actions).
    • Added a new InstallDependencies action for WASM plugins.
      • The dependencies root is now dynamically located by traversing the file system, unlike the
        previous implementation that assumed everything was in the workspace root.
    • Added a new SetupEnvironment action for WASM plugins.
      • This runs after SetupToolchain but before InstallDependencies.
      • Can be used to setup the workspace or project environment. For example, initializing Python
        venv, or making manifest/lockfile changes.
    • Updated RunTask to setup toolchains and install dependencies for each toolchain that has
      been configured, instead of just the 1st one (work in progress).
    • Updated SyncProject to no longer depend on SetupToolchain, and not be grouped by
      language/toolchain, and instead encompass all of them applicable to the project.
  • Added a new task option, cacheKey, which can be used to seed the hash, and invalidate local and
    remote caches.
  • Added a new task option, priority, that controls the position in the pipeline queue.
    • Supports critical, high, normal (default), or low.
  • Added a --log=verbose level, which includes span information on top of the trace level.
  • Added a light terminal theme. Can be enabled with --theme=light or MOON_THEME=light.
    • This is still a work in progress. Open to feedback on color/contrast choices.
  • Added 2 new webhooks, toolchain.installing and toolchain.installed, which emit when a
    toolchain WASM plugin is installing a tool (via proto).
  • Enabled the experiments.fasterGlobWalk and experiments.gitV2 experiments.

🧩 Plugins

  • Added tier 3 support (tier 2 still a work in progress).
  • Added new toolchain WASM APIs.
    • locate_dependencies_root - Locates the dependencies root (workspace).
    • setup_environment - Runs operations to setup an environment for a project/workspace before
      installing dependencies and running tasks.
    • install_dependencies - Defines commands to install/dedupe dependencies.
    • setup_toolchain - Runs operations after the tool has been installed.
    • teardown_toolchain - Runs operations before the tool will be uninstalled.

🐞 Fixes

  • Fixed the error handling of remote service uploads and downloads.
  • Fixed a timed out task displaying a generic and unhelpful error message.

⚙️ Internal

  • Linux binaries are now built on Ubuntu v22 instead of v20.
  • Rewrote our testing utilities and updated all tests.
  • Updated proto to v0.47.11 (from 0.47.7).
  • Updated Rust to v1.86.0.

v1.34.3

10 Apr 21:43

Choose a tag to compare

🐞 Fixes

  • Attempted fix for the "plugin typescript already exists" error.
  • Fixed an issue where negated glob task inputs wouldn't filter the file list when hashing.

⚙️ Internal

  • Updated dependencies.

v1.34.2

07 Apr 17:36

Choose a tag to compare

🚀 Updates

  • Minor change to remote caching up/download batching to increase performance.
  • Reworked remote caching error handling.

🐞 Fixes

  • Fixed an issue where remote caching would fail to upload multiple blobs if the sum of their sizes
    exceed the max upload size.
  • Fixed an issue where the same plugin could be loaded multiple times.
  • Fixed an issue when parsing config/template files that contain a byte-order mark (BOM).

⚙️ Internal

  • Updated dependencies.

v1.34.1

02 Apr 19:06

Choose a tag to compare

🐞 Fixes

  • Fixed a compilation error when moon is installed through Cargo.
  • Fixed the version missing in --version and --help.
  • Fixed text wrapping issues when rendering tables in the terminal.

v1.34.0

31 Mar 00:09

Choose a tag to compare

💥 Breaking

  • We have sunset our moonbase service and removed its integration from
    moon. If you were using moonbase's remote caching, we suggest using
    Depot or self-hosting instead.

🚀 Updates

  • Integrated a new console rendering system with new terminal styles, prompts, and output.
    • Updated all applicable commands.
    • Updated moon templates to render a list of data.
    • Updated moon query projects and moon query tasks to render a table of data.
  • Added new settings to pipeline (formerly runner) in .moon/workspace.yml to control which
    kinds of action nodes exist in the action graph when running tasks.
    • syncWorkspace setting toggles the root SyncWorkspace action.
    • syncProjects setting toggles the SyncProject actions, and can be scoped to project IDs.
    • syncProjectDependencies setting toggles whether to recursively link SyncProject actions
      based on project dependencies.
    • installDependencies setting toggles the InstallWorkspaceDeps and InstallProjectDeps
      actions, and can be scoped to toolchain IDs.
  • Added an experiments.fasterGlobWalk setting to .moon/workspace.yml, that will use a better
    glob walker implementation. Do note that this is experimental and may be buggy!
    • In our benchmarks, it's on average 1.5-2x faster.
    • We also attempt to cache the results, which occurs quite often when running tasks.
    • Globs are now logged to better debug performance issues.
  • Added an experiments.gitv2 setting to .moon/workspace.yml, that uses a new Git implementation.
    • Has better support for submodules, subtrees, and worktrees.
    • Parallelizes processes when applicable.
    • Covers edge cases the v1 implementation did not support.
  • Added a --no-actions flag to moon run, that will run the task without including the other
    actions, like SyncProject, SetupToolchain, etc.
  • Added a --json flag to moon templates.
  • Deprecated the pipeline.archivableTargets setting. All tasks are now automatically cached if
    using Bazel Remote Caching.
  • Improved the performance of environment variable substitution.
  • Improved toolchain plugin loading to be on-demand.
  • Improved sync cache invalidation for codeowners, config schemas, and VCS hooks.
  • Updated moon docker file to inherit the default Docker image from any applicable toolchain
    plugins.
  • Updated moon sync to no longer be deprecated, and instead sync the workspace and all projects.
  • WASM API
    • Added DefineDockerMetadataOutput.default_image field.
    • Added SettingPrompt.description field.

⚙️ Internal

  • Updated Rust to v1.85.1.
  • Updated dependencies.

v1.33.3

23 Mar 23:19

Choose a tag to compare

🐞 Fixes

  • Fixed an issue where npx @moonrepo/cli would no longer work.
  • Fixed an issue where toolchain.typescript = true in moon.yml would not inherit it as a
    toolchain.

⚙️ Internal

  • Updated proto to v0.47.7 (from 0.47.4).
  • Updated dependencies.