🚀 Updates
- Added more unstable support for toolchain plugins.
- In the project graph:
- Extend projects with dependencies, tasks, and an alias.
- In the action pipeline:
- Added
SetupEnvironment
action that executes thesetup_environment
WASM API. - Added
InstallDependencies
action that executes theinstall_dependencies
WASM API.
- Added
- When running tasks:
- Extend the command/script with additional parameters before executing.
- Inject dependency and lock information into the hash.
- With Docker:
- Updated
docker prune
to utilize the new WASM APIs for toolchain plugins.
- Updated
- In the project graph:
- Added
--host
and--port
options tomoon action-graph
,moon task-graph
, and
moon project-graph
. - Added
--stdin
option tomoon ci
andmoon run
, which will allow touched files to be passed
via stdin, instead of running VCS commands to determine them.- This is a follow-up fix to the revert in a previous version. This functionality is now opt-in
instead of the default, to avoid problematic edge cases.
- This is a follow-up fix to the revert in a previous version. This functionality is now opt-in
- Updated and improved remote caching:
- Added an
unstable_remote.cache.verifyIntegrity
setting, that will verify the digest of
downloaded blobs to ensure they aren't corrupted or incomplete. Will degrade performance but
ensure reliability. - Added a file rollback mechanic to that will be triggered when hydration fails part way and
written files need to be removed. - Updated blob existence checks to be batched and parallelized.
- Can now be enabled entirely through environment variables.
- Added an
- Updated and improved code generation:
- Added support for
array
andobject
variable types intemplate.yml
. The values must be JSON
compatible. - Updated
generator.templates
to supporthttps://
URLs that point to an archive that can be
unpacked.
- Added support for
- Removed the restriction around
moon.{yml,pkl}
not being allowed as a task input. However, will
not be included when using**/*
.
🐞 Fixes
- Fixed an issue where terminal prompt validation would not trigger.
- Fixed an issue with remote cache hydration where multiple files with the same blob hash would fail
to write them all. - Fixed an issue where changing
args
orenv
of a task dependency would not invalidate its cache. - Fixed an issue where environment variables passed on the command line would not overwrite task
env
. - Fixed tag-based task dependencies not creating implicit project dependencies.
- Fixed some task/command argument quoting issues.
🧩 Plugins
- Added new toolchain WASM APIs.
extend_project_graph
- Extend projects with toolchain specific info.extend_task_command
- Extend the command child process with parameters.extend_task_script
- Extend the script child process with parameters.locate_dependencies_root
- Locate the package dependencies workspace root.parse_manifest
- Parse a manifest file to extract dependencies.parse_lock
- Parse a lock file to extract resolved dependencies.
- WASM
- Added
InstallDependenciesInput.packages
andproduction
fields. - Added
InstallDependenciesOutput.operations
field. - Added
PruneDockerInput.projects
androot
fields. - Added
PruneDockerOutput
. - Added
SetupEnvironmentOutput.operations
field. - Added
SetupToolchainOutput.operations
field. - Added
SyncWorkspaceInput.toolchain_config
field. - Added
TeardownToolchainInput.version
field.
- Added
⚙️ Internal
- Updated Rust to v1.87.0.
- Updated proto to v0.49.1 (from 0.47.11).