Skip to content

Releases: moonrepo/moon

v1.29.1

13 Oct 04:35
Compare
Choose a tag to compare

🚀 Updates

  • Added a new task option merge, that defines the same strategy for all applicable fields. Can be
    overridden with mergeX task options.
  • Added a moon setting to .moon/toolchain.yml, which can be used to customize the update check
    process.

🐞 Fixes

  • Fixed moon query projects including dependency projects by default. Can be controlled with
    --upstream.
  • Fixed moon query projects regex patterns not working when used in conjunction with affected.
  • Fixed Bash-based hooks being generated with the wrong path separators on Windows.
  • Fixed an issue where an inherited task with merge strategy "replace" will accidentally remove task
    args, deps, and env in inheriting tasks.
  • Fixed an issue where token variables and environment variables used within task args together
    would not be replaced correctly.

v1.29.0

07 Oct 16:36
Compare
Choose a tag to compare

🚀 Updates

  • Implemented a new affected project tracker that is more accurate and more powerful.
    • Can now control the depth of upstream (dependencies) and downstream (dependents).
    • Affected information now logs more information and is included in reports/JSON.
    • Added --upstream and --downstream options to moon query projects.
    • Coming soon for affected tasks as well!
  • Implemented experimental support for a new configuration language, Pkl!
    • Pkl is programmable, allowing for variables, loops, conditionals, and more.
  • Added a new task option, cacheLifetime, that controls how long a task will be cached for.
  • Added a new task merge strategy, preserve, that preserves the original inherited value.
  • Added a new setting vcs.hookFormat to .moon/workspace.yml, that can customize the shell/file
    format for hooks.
  • Added "sync workspace action" support to toolchain plugins. This is our first step in supporting
    toolchains via WASM plugins.
  • Updated task outputs to support token and environment variables.
  • Updated moon query projects to include the project description as a trailing value.
  • Updated moon query tasks to include the task type and platform, and the task description as a
    trailing value.

🐞 Fixes

  • Fixed an issue where a root project in a polyrepo would not default to **/* inputs for tasks.
  • Potential fix for an issue that occurs when multiple toolchains of the same type (2 different
    Node.js versions for example) would fail in weird ways when installing in parallel.

⚙️ Internal

  • Updated identifiers and targets to use compact strings.
  • Updated proto to v0.41.3 (from 0.40.4).
  • Updated wasmtime to v23 (from v17).

v1.28.3

23 Sep 20:36
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where VCS hooks were not being generated in Docker (requires .git to exist).
  • Fixed an issue where projects whose id was renamed in moon.yml wasn't being reflected when
    inheriting project dependencies through the toolchain/platform integration.
  • Fixed optionalDependencies not being considered a project relationship for Bun/Node implicit
    package.json detection.

v1.28.2

12 Sep 00:37
Compare
Choose a tag to compare

🚀 Updates

  • Updated cached task outputs to now be prefixed with the task target when printing to the console.
  • Updated Bun/Yarn lockfile parsing to temporarily log a warning on parse failure instead of exiting
    with an error. This change was made as there are currently no actionable or human-readable error
    messages.

🐞 Fixes

  • Fixed an issue where empty lines were being trimmed while streaming task console output.
  • Fixed an issue where tasks that errored before the command is executed, would swallow the error
    in moon ci.
    • It would also put the task in a non-failed state depending on the order of operations. This
      should be correct now.

v1.28.1

06 Sep 06:33
Compare
Choose a tag to compare

🚀 Updates

  • Added caching around bun bun.lockb commands, instead of running them for every task.
  • Updated and loosened identifier naming restrictions.
  • Updated environment variable substitution to support different outputs when a variable is missing,
    based on a trailing flag syntax.
    • $FOO or ${FOO} - If variable is missing, keeps the original syntax (current default).
    • $FOO? or ${FOO?} - If variable is missing, replaces with an empty string.
    • $FOO! or ${FOO!} - Ignores variable substitution and preserves the syntax (without !).

🐞 Fixes

  • Fixed an issue where an affected task with files that contain non-standard characters would fail
    to run because Bash expansion fails. We now quote file paths that contain *, $, +, and [].

⚙️ Internal

  • Updated Rust to v1.81.

v1.28.0

02 Sep 04:01
Compare
Choose a tag to compare

💥 Breaking

  • Extensions (WASM plugins) must implement the register_extension API. All built-in extensions
    have been updated.

🚀 Updates

  • Resolved the actionPipelineV2 experiment and the new pipeline is now always enabled. The old
    pipeline code has been deleted. If you run into any problems, please report an issue!
  • Resolved the strictProjectAliases experiment and enabled its functionality going forward.
  • Added a preset task setting, that enables a collection of task options.
    • Will be replacing the local setting, which is now deprecated.
  • Added an os task option, which allows a specific operating system to be targeted for the task.
  • Added a @meta token function that can access project metadata.
  • Added $projectName, $projectChannel, and $projectOwner token variables.
  • Added codeowners.requiredApprovals setting to .moon/workspace.yml, that will apply
    requirements to all paths.
  • Added a new experiment disallowRunInCiMismatch, that errors when a task that is runInCI
    enabled depends on a task that is runInCI disabled. These kinds of relationships cause a handful
    of issues in the pipeline.
    • Currently this only applies to moon ci and may also apply to moon run in the future.
  • Updated the terminal checkpoint (4 squares) colors to better reflect their state.
    • Cached tasks continue to be blue, but non-cached but successful tasks are now green.
    • Announcements are now yellow.
  • Updated MOON_TOOLCHAIN_FORCE_GLOBALS to support filtering by tool IDs, instead of applying to
    everything.

⚙️ Internal

  • We've sunset the CI insights feature in moonbase. We will no longer be tracking CI run history.
    This is a retroactive change that applies to all moon versions.
  • Updated proto to v0.40.4 (from v0.39.7).

v1.27.10

22 Aug 19:37
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue around running dependents when a dependency is affected in CI.

v1.27.9

21 Aug 20:34
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed a regression where the "primary target" detection would include far too many targets. This
    would result in passthrough arguments being unintentionally passed deeper.
  • Fixed a regression where dependent tasks would always run in CI.

v1.27.8

20 Aug 18:52
Compare
Choose a tag to compare

🚀 Updates

  • We now log messages when inheriting values from the root .prototools.

🐞 Fixes

  • Fixed a panic that occurs in the action graph builder.
  • Fixed an issue where the root .prototools wasn't always loaded.

v1.27.7

19 Aug 19:52
Compare
Choose a tag to compare

🐞 Fixes

  • Fixed an issue where codeowners requiredAppprovals wouldn't allow 1.
  • Fixed an issue where a task that depends on another task that has runInCI: false, would not run
    as affected in moon ci because the dependency task was skipped.