Releases: moonrepo/moon
Releases · moonrepo/moon
v1.22.2
🐞 Fixes
- Fixed an issue where VCS hooks were being created in Docker, triggering cache issues.
v1.22.1
🚀 Updates
In v1.22, we made a change to affected tasks that pass all inputs
as arguments, instead of passing .
. This change was made to not overzealously pass files to the task that it doesn't care about, but it ended up causing problems for certain commands.
We didn't want to revert the change, but it also wasn't easy to fix without causing other issues, so as a compromise, we opted to introduce a new task option, affectedPassInputs
to handle this functionality.
v1.22.0
🚀 Updates
- Added
configuration
andscaffolding
variants to the projecttype
setting inmoon.yml
.- Updated project constraints to support these new variants.
- Added a
stack
setting tomoon.yml
, for categorizing which tech stack it belongs to.- Supports
frontend
,backend
,infrastructure
, andsystems
. - Added a
projectStack
field to the query language (MQL). - Added a
$projectStack
token variable for tasks. - Updated the
moon query projects
command to support a--stack
option, and include the stack
in the output. - Updated the
moon project
command to include the stack in the output.
- Supports
- Added a
description
setting for tasks, for providing human-readable information.- Updated the
moon project
andmoon task
commands to include the description in the output.
- Updated the
- Added an
installArgs
setting for bun/npm/pnpm/yarn in.moon/toolchain.yml
, to customize the
args used when installing dependencies. - Added a new built-in extension,
migrate-nx
, for migrating from Nx to moon.- Will convert all
nx.json
,workspace.json
, andproject.json
files.
- Will convert all
- Updated task input environment variables to support a wildcard match using
*
, for example
$VITE_*
.- This will include all environment variables in the current process that starts with
VITE_
.
- This will include all environment variables in the current process that starts with
- Updated the
envFile
task option to support a list of file paths. - Updated the
migrate-turborepo
extension.- Removed the requirement of moon's project graph. Will now scan for turbo.jsons instead.
- Updated affected tasks to use
inputs
as the list of files provided, instead of.
.
🐞 Fixes
- Fixed an issue where
bun install
was not running with--production
in Docker prune. - Fixed an issue where invalid IDs passed to certain commands would trigger a panic.
- Fixed an issue where
$PWD
in a task was pointing to the wrong directory.
🧩 Plugins
- Updated
deno_plugin
to v0.9.1.- Added Linux ARM64 support (requires Deno >= v1.41).
- Updated
rust_plugin
to v0.8.1.- Uses the full triple target when installing and uninstalling toolchains.
⚙️ Internal
- Updated Rust to v1.76.
- Updated proto to v0.30.2 (from v0.29.1).
v1.21.4
🐞 Fixes
- Fixed VCS hooks on Windows generating invalid PowerShell commands.
v1.21.3
🐞 Fixes
- Fixed a panic that would occur when running an action and path stripping would fail.
v1.21.2
🐞 Fixes
- Attempted fix for
liblzma.5.dylib
issues on macOS arm64.
v1.21.1
- Added shallow checkout detection to help avoid failing Git commands.
- If detected in
moon ci
, is a hard failure. - If detected in
moon run
, will disable affected checks.
- If detected in
v1.21.0
🚀 Updates
- Added Deno tier 3 support.
- Will download and install Deno into the toolchain when a
version
is configured. - Will parse the
deno.lock
lockfile to extract and resolve dependencies. - Will hash manifests and inputs for Deno specific caching.
- Added a
deno.version
setting to.moon/toolchain.yml
. - Added a
toolchain.deno
setting tomoon.yml
. - Updated
moon bin
andmoon docker
commands to support Deno.
- Will download and install Deno into the toolchain when a
- Added a new built-in extension,
migrate-turborepo
, with new functionality.- Replaces the previous
moon migrate from-turborepo
command. - Added Bun support behind a new
--bun
flag. - Added support for
globalDotEnv
,dotEnv
, andoutputMode
. - Scripts now run through a package manager, instead of
moon node run-script
. - Root-level tasks will now create a root
moon.yml
, instead of warning.
- Replaces the previous
- Added
unixShell
andwindowsShell
task options, so that the underlying shell can be configured
per task. - Added
bun.inferTasksFromScripts
setting to.moon/toolchain.yml
, for compatibility with
Node.js. - Added environment variable support to
fileGroups
. - Added a
@envs(group)
token function for referencing environment variables. - Added a
--quiet
global argument, for hiding non-critical moon output. - Deprecated the
moon node run-script
command. Run the task through a package manager instead,
likenpm run
oryarn run
. - Updated tasks with glob-like arguments to automatically enabled the
shell
option, so that glob
expansion works correctly. - Updated interactive tasks to not be shutdown when receiving a CTRL+C signal, and instead allow
them to handle it themselves, and cleanup if necessary. - Implemented a new console layer for writing to stdout/stderr.
- Logs are now buffered and written periodically.
- Previously they were written immediately, which required locking std each call.
- Should see some minor performance improvements.
🐞 Fixes
- Fixed an issue where the action graph would create incorrect nodes when a tool utilizes dependency
workspaces, and a project is not within the workspace. - Fixed an issue where glob based arguments were overlay escaped.
- Fixed console checkpoints (the 4 squares) showing the wrong working directory.
⚙️ Internal
- Updated proto to v0.30.0 (from v0.29.1).
v1.20.1
🚀 Updates
- Removed the maximum concurrency limit from persistent tasks.
🐞 Fixes
- Fixed
moon docker scaffold
not copying the project specificmoon.yml
file, resulting in a
skewed project graph.
v1.20.0
🚀 Updates
- Added a new extension plugin system.
- An extension is a WASM plugin that is not built into moon's core:
https://github.com/moonrepo/moon-extensions - Extensions can be executed with the new
moon ext
command. - The community can build and publish their own extensions!
- An extension is a WASM plugin that is not built into moon's core:
- Added a
taskOptions
setting to.moon
task configs, allowing default task options to be
defined.- These options will be merged and inherited as part of the configuration chain.
- Added an
optional
field to taskdeps
, allowing the dependency to be optional during
inheritance. - Added a "Tags" view to the VSCode extension.
- Updated proto installation to trigger for all applicable commands, not just
moon run
,
moon check
, andmoon ci
.- Will also use the global proto version if available when there's no internet connection, and the
moon required proto version has not been installed.
- Will also use the global proto version if available when there's no internet connection, and the
🐞 Fixes
- Fixed Git version parsing when using VFSForGit.
🧩 Plugins
- Updated
bun_plugin
to v0.9. - Updated
node_plugin
andnode_depman_plugin
to v0.9.- Changed the
bundled-npm
andintercept-globals
settings to befalse
by default (instead of
true
).
- Changed the
- Updated
rust_plugin
to v0.8.
⚙️ Internal
- Updated proto to v0.29.1 (from v0.26.4).