Releases: moonrepo/moon
Releases · moonrepo/moon
v1.29.1
🚀 Updates
- Added a new task option
merge
, that defines the same strategy for all applicable fields. Can be
overridden withmergeX
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
🚀 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 tomoon 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
🐞 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 inmoon.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
🚀 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
inmoon ci
.- It would also put the task in a non-failed state depending on the order of operations. This
should be correct now.
- It would also put the task in a non-failed state depending on the order of operations. This
v1.28.1
🚀 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
💥 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.
- Will be replacing the
- 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 isrunInCI
enabled depends on a task that isrunInCI
disabled. These kinds of relationships cause a handful
of issues in the pipeline.- Currently this only applies to
moon ci
and may also apply tomoon run
in the future.
- Currently this only applies to
- 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
🐞 Fixes
- Fixed an issue around running dependents when a dependency is affected in CI.
v1.27.9
🐞 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
🚀 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
🐞 Fixes
- Fixed an issue where codeowners
requiredAppprovals
wouldn't allow1
. - Fixed an issue where a task that depends on another task that has
runInCI: false
, would not run
as affected inmoon ci
because the dependency task was skipped.