Releases: moonrepo/moon
Releases · moonrepo/moon
v1.38.2
🚀 Updates
- More plugin pre-loading improvements.
🐞 Fixes
- Potential fix for duplicate nodes in the action graph.
- Potential fix for the node platform panicing for a missing package manager.
- Potential fix for a fs rename error when installing proto.
- Fixed a panic that would occur during
moon ci
job calculation.
v1.38.1
🚀 Updates
- Added a new setting for toolchain plugins,
versionFromPrototools
, which controls how we inherit
a version from the root.prototools
file. By default this is enabled, but can be disabled, and configured with
a string if the IDs don't match. - Added support for toolchain plugins to replace/wrap a task script in the
extend_task_script
WASM
API. - Updated toolchain setup to preload the proto WASM plugin. This should help to alleviate network
race conditions. - Updated
moon setup
to also install toolchain plugins.
🐞 Fixes
- Fixed an issue where toolchain plugins do not inherit versions from
.prototools
. - Fixed an issue where a file lock would be created for proto installation, even when it didn't need
to be installed. - Fixed an issue where
moon docker prune
would force install all toolchains. If you were relying
on this functionality, runmoon docker setup
instead.
🧩 Plugins
- WASM API
- Added
ExtendTaskScriptOutput.script
field.
- Added
v1.38.0
💥 Breaking
- WASM API
- Renamed
RegisterToolchainOutput.lock_file_name
toRegisterToolchainOutput.lock_file_names
and its type toVec<String>
. - Renamed
RegisterToolchainOutput.manifest_file_name
to
RegisterToolchainOutput.manifest_file_names
and its type toVec<String>
.
- Renamed
🚀 Updates
- Added a new Go toolchain implementation, powered entirely by our new WASM plugin system. It can be enabled with the
unstable_go
identifier.- Supports tiers 1, 2, and 3!
- Supports Go workspaces via
go.work
files. - Extracts project dependencies and relationships from
go.mod
files. - Extracts version and lockfile information from
go.sum
andgo.work.sum
files. - Basic vendor support (
go mod vendor
) during Docker prune.
- Added new tools for
moon mcp
.get_touched_files
- Gets touched files between base and head.sync_projects
- Runs theSyncProject
action for one or many projects.sync_workspace
- Runs theSyncWorkspace
action.
- Added new
moon toolchain
command and sub-commands.- Add a toolchain to
.moon/toolchain.yml
withmoon toolchain add
. - View information about a toolchain plugin with
moon toolchain info
.
- Add a toolchain to
- Added support for terminal desktop notifications. Can be enabled with the new
notifier.terminalNotifications
setting in.moon/workspace.yml
. - Added a
notifier.webhookAcknowledge
setting, that ensures webhooks resolve with a 2xx status
code. - Updated project graph invalidation to take manifests from toolchain plugins into account.
🐞 Fixes
- Fixed an issue with task output hydration that would sometimes fail with a permission denied error
when cleaning stale files.
🧩 Plugins
- Updated
rust_toolchain
to v0.2.0.- Cached the globals bin directory when extending task commands/scripts.
- Task hashing now includes the host OS, arch, and libc.
- WASM API
- Added
LocateDependenciesRootInput.toolchain_config
field. - Added
PruneDockerInput.toolchain_config
field. - Added
ScaffoldDockerInput.toolchain_config
field.
- Added
⚙️ Internal
- Updated proto to v0.50.1 (from 0.49.4).
v1.37.3
🐞 Fixes
- Fixed an issue where
git://
based code generation couldn't checkout a specific commit. - Fixed incorrect casing for the
moon migrate --skipTouchedFilesCheck
option.
v1.37.2
🚀 Updates
- Updated
moon ci
to always run the sync workspace action, even when no tasks are affected.
🐞 Fixes
- Fixed an issue where
git
commands would attempt to execute, even when nogit
binary was found. - Fixed an issue where
moon docker scaffold
would over scaffold the same project multiple times. - Fixed an issue where proto would be installed when
MOON_TOOLCHAIN_FORCE_GLOBALS
is set. - Reworked the
git
commands that are executed forgit://
based code generation.
⚙️ Internal
- Updated dependencies.
v1.37.1
📚 Documentation
- Updated the MCP documentation.
- Added Zed support.
- Added an
llms.txt
file to our website. - Updated code examples to include the
MOON_WORKSPACE_ROOT
environment variable.
🐞 Fixes
- Fixed environment variable inheritance for config settings not always working correctly.
🧩 Plugins
- Updated
rust_toolchain
to v0.1.2.- Fixed
cargo-binstall
failing in CI when the binary already exists.
- Fixed
- WASM API
- Added
SetupEnvironmentInput.globals_dir
field.
- Added
⚙️ Internal
- Updated dependencies.
v1.37.0
🔖 RFCs
- Task input additions and enhancements: #1985
🚀 Updates
- Added a new Rust toolchain implementation, powered entirely by our new WASM plugin system. Since toolchain plugins are new and unstable, this Rust toolchain can be enabled with the
unstable_rust
identifier (instead ofrust
).- Supports multiple Cargo workspaces, and workspaces can exist at any depth.
- More accurate project relationship detection.
- New
addMsrvConstraint
setting. - Better Docker prune implementation.
- Improved manifest/lockfile parsing.
- Cargo/rustup commands are now hashed and cached.
- Added an unstable
moon mcp
command, which starts an MCP (model context protocol) stdio server
that responds to AI agent requests.- Supports the following tools:
get_project
,get_projects
,get_task
,get_tasks
. - We will be expanding this with more functionality over time, like
run_task
, etc.
- Supports the following tools:
- Updated webhook events.
- Added
environment.initializing
andenvironment.initialized
events. - Added
root
andtoolchain
fields todependencies.installing
anddependencies.installed
events. - Deprecated the
runtime
field in all events. Will be removed once toolchain plugins are
complete.
- Added
🧩 Plugins
- Added test utilities for testing toolchain plugin functions.
- Improved cache handling and invalidation for
SetupEnvironment
andInstallDependencies
actions. - WASM
- Reworked all virtual path fields in "output" structs to greatly reduce the JSON payload.
- Reworked the
ManifestDependency
type to be an enum instead of a struct. - Added
ProjectDependency.via
field.
⚙️ Internal
- Updated proto to v0.49.4 (from 0.49.1).
- Updated dependencies.
v1.36.3
🐞 Fixes
- Fixed an issue where environment variables with default/fallback values (
${VAR:+default}
) were
not parsed correctly.
⚙️ Internal
- Updated dependencies.
v1.36.2
🚀 Updates
- Added support for shell-specific environment variable namespaces when scanning and substituting
values. Supports the following:$E:
- Elvish$env::
- Ion$ENV.
- Murex$env.
- Nu$env:
- PowerShell
- Updated all identifiers to support unicode alpha-numeric characters instead of just ASCII.
🐞 Fixes
- Fixed some issues where
MOON_TOOLCHAIN_FORCE_GLOBALS
wasn't respected for Python and Rust
toolchains.
v1.36.1
🐞 Fixes
- Fixed an issue where tasks would not substitute environment variables when executing, because it
did not run in a shell.
⚙️ Internal
- Updated dependencies.