Releases: moonrepo/moon
Releases · moonrepo/moon
v1.32.2
v1.32.1
🚀 Updates
- Added a
runner.killProcessThreshold
setting to control the threshold in which to force kill
child processes when a signal is received. Defaults to 2 seconds.
🐞 Fixes
- Fixed an issue where
bash
andbatch
project language's would not inherit tasks. - Fixed some
bun.lock
parsing issues.
v1.32.0
🚀 Updates
- Added unstable support for multiple package workspaces when installing dependencies and resolving
lockfiles.- For example, you can now have multiple
yarn.lock
files throughout the repository, allowing for
multiple Yarn/Node workspaces.
- For example, you can now have multiple
- Updated Pkl (
.pkl
) based configuration to always be enabled, and is no longer hidden behind an
experimental flag.- Added official documentation: https://moonrepo.dev/docs/guides/pkl-config
- Updated our unstable remote service (Bazel RE API) with new functionality:
- You can now use
http(s)
protocols for gRPC servers, instead of justgrpc(s)
. - Added an
unstable_remote.api
setting, which can be used to inform the server's API format.
Defaults togrpc
. - Added an
unstable_remote.auth
setting, which can be used for HTTP Bearer/token Authorization
based endpoints. Can also be used to set headers for all requests. - Added support for Depot cloud-based caching: https://depot.dev/docs/cache/overview
- Added support for the HTTP protocol: https://bazel.build/remote/caching#http-caching
- Added support for the ByteStream API.
- Added timeout and concurrency limit to clients.
- Added a
MOON_DEBUG_REMOTE
environment variable, which can be used to debug internal errors for
diagnosing connection/integration issues. - Improved handling of TLS/mTLS connections.
- You can now use
- Improved the Bun toolchain.
- Added support for the new v1.2
bun.lock
file. We do our best to detect this, but we suggest
configuring--save-text-lockfile
.
- Added support for the new v1.2
- Improved the Deno toolchain.
- Added support for Deno v2 and
deno install
. Will now run this command instead ofdeno cache
. - Added support for v3 and v4 lockfiles (we now use the
deno_lockfile
crate). - Added basic support for workspaces.
- Added
deno.installArgs
setting.
- Added support for Deno v2 and
- Improved the Python toolchain.
- Added unstable uv support. Can be enabled with the new
python.packageManager
andpython.uv
settings.- Right now, has basic toolchain support, including dependency installs and virtual
environments.
- Right now, has basic toolchain support, including dependency installs and virtual
- Renamed
python.rootRequirementsOnly
topython.rootVenvOnly
(old name still works). - Will now inherit versions from the root
.prototools
.
- Added unstable uv support. Can be enabled with the new
- Improved the Rust toolchain.
- The root-level project is now properly taken into account when detecting if a project is within
the Cargo workspace. - Project dependencies (
dependsOn
) are now automatically inferred fromCargo.toml
dependencies.
- The root-level project is now properly taken into account when detecting if a project is within
- Reworked child process handling to better handle signals and shutdown accordingly. Additionally,
when the pipeline receives a signal, we now display the status that shutdown the pipeline in the
summary. - Reworked the new task
inferInputs
option to not infer environment variables from popular CI/CD
providers, as those values constantly change, causing tasks to always be affected. If you would
like to reference these values, add them as an explicit inputs.
🐞 Fixes
- Fixed lots of issues around remote caching. Should be "stable" now.
⚙️ Internal
- Updated Rust to v1.84.1.
v1.31.3
v1.31.2
🚀 Updates
- Added file locks for certain operations to avoid race collisions when multiple
moon
commands are
ran in parallel.
🐞 Fixes
- Fixed an issue where inferred inputs would include directories that would log a warning and fail
to be hashed.
⚙️ Internal
- Updated Rust to v1.84.
v1.31.1
v1.31.0
💥 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 inmoon.yml
, usetoolchain.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.
- Additionally, the toolchain can now be inferred from the top-level
- Deprecated the
platform
task setting, usetoolchain
instead. - Deprecated the
taskPlatform
query field, usetaskToolchain
instead. - Deprecated the
--platform
option formoon query tasks
, use--toolchain
instead. - Deprecated the
$taskPlatform
token, use$taskToolchain
instead.
- Deprecated the top-level
- Added the ability to run targets in
moon run
andmoon ci
using a glob-like syntax.- For example:
:build-*
,app-*:build
,#tag-{foo,bar}:build
, etc.
- For example:
- Added a
--no-bail
flag tomoon run
, that will continue running tasks even when a task fails. - Added glob support (and
glob://
) togenerator.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 astrue
). - Updated task inputs to automatically be inherited from file group token functions used within the
task'sscript
,command
,args
, orenv
. - Updated the
extends
setting in.moon/workspace.yml
,toolchain.yml
, andtasks.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 tozstd
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.
- Added an
- 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+c
ing 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
🐞 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
🐞 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
🐞 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
tofalse
by default. - The venv root is now the location of a found
requirements.txt
, otherwise the package root, or
workspace root ifpython.rootRequirementsOnly
is enabled. - Tasks will now inherit the correct venv paths in
PATH
.