Releases: moonrepo/moon
Releases · moonrepo/moon
v1.33.0
💥 Breaking
- Changed the way to disable the TypeScript toolchain in
moon.yml
.# Before toolchain: typescript: disabled: true # After toolchain: typescript: false # or null
- Removed the
--include
option frommoon docker scaffold
(it's been long deprecated). Use the
docker
settings instead.
🚀 Updates
- The TypeScript toolchain is now powered by a WASM plugin. This is our
first step in supporting plugins in core. We chose TypeScript as our 1st plugin because it was the
simplest of all the toolchains, and primarily was used for project syncing.- Plugins must be downloaded from the internet, so a connection is required on the first run. The
plugin is then cached locally. - Most of the code had to be rewritten but we tried to keep as much parity as possible. Please
report an issues or differences you encounter. - Because TypeScript is now a "true" toolchain, it will appear in the toolchains list for projects
and tasks. This is required since it runs operations in the context of the plugin. - All
typescript
settings in.moon/toolchain.yml
can now be defined as overrides in
moon.yml
.
- Plugins must be downloaded from the internet, so a connection is required on the first run. The
- Added new toolchain plugin integrations for specific features.
- Integrated into the
SyncWorkspace
andSyncProject
actions. - Integrated into all
moon docker
commands. - Integrated into the task hashing process.
- Integrated into the
- Added a new
moonx
executable, which is a shorthand formoon run
.- Right now the implementation uses Bash/PowerShell shims, but will be migrated to a true binary
executable once we rework our release process. - The shims are dynamically created the first time moon runs, relative to the executed
moon
binary.
- Right now the implementation uses Bash/PowerShell shims, but will be migrated to a true binary
- Added support for
moon run ~:build
, which will run thebuild
task in the closest project
(traversing upwards). - Added
$XDG_DATA_HOME
support when detecting the moon store. Will be used if$MOON_HOME
is not
set, and will fallback to$HOME/.moon
. - Added elapsed/timing information to child processes and WASM calls within logs.
- Improved the handling of CTRL-C, CTRL-BREAK, and other signals on Windows.
- Updated
moon init
with toolchain plugin support. - Updated
toolchain.default
inmoon.yml
to support a list of IDs. - Updated
unstable_remote.auth.headers
to support environment variable interpolation. - Updated generated JSON schemas at
.moon/cache/schemas
to dynamically include toolchain plugin
configuration. - Updated file hashing (via
git hash-object
) to continously pipe stdin to avoid hanging processes. - Deprecated
hasher.batchSize
in.moon/workspace.yml
.
🧩 Plugins
- Added new toolchain WASM APIs.
register_toolchain
- Registers the toolchain and provide metadata for detection and other
purposes.initialize_toolchain
- Provides prompts to use duringmoon init
to gather settings values.define_toolchain_config
- Defines a configuration schema for use within JSON schemas.define_docker_metadata
- Defines metadata related todocker
commands.hash_task_contents
- Injects content into the task hashing process.prune_docker
- Custom operations to run duringdocker prune
.scaffold_docker
- Custom operations to run duringdocker scaffold
.sync_project
- Runs syncing operations per project (during theSyncProject
action).sync_workspace
- Runs syncing operations at the workspace root (during theSyncWorkspace
action).
- Updated
download_extension
to v0.0.9. - Updated
migrate_nx_extension
to v0.0.9.- Will no longer remove Nx configs. Pass
--cleanup
to remove them.
- Will no longer remove Nx configs. Pass
- Updated
migrate_turborepo_extension
to v0.1.6.- Will no longer remove Turborepo configs. Pass
--cleanup
to remove them.
- Will no longer remove Turborepo configs. Pass
🐞 Fixes
- Fixed an issue where file hashing (
git hash-object
) would hang when there are too many files
being hashed.
⚙️ Internal
- Updated proto to v0.47.4 (from 0.45.2).
- Updated Rust to v1.85.
- Updated dependencies.
- Removed JSON schemas from the GitHub release.
v1.32.9
🐞 Fixes
- Reverted "Fixed an issue where task output wasn't captured for the "review" section in a run
summary." as it caused a regression.
v1.32.8
🐞 Fixes
- Fixed an issue where task output wasn't captured for the "review" section in a run summary.
- Fixed an issue where a task with a
script
would always be forced to the "system" toolchain.
v1.32.7
🚀 Updates
- Updated
moon task-graph
,moon-project-graph
, andmoon action-graph
to request a port
dynamically, instead of defaulting to 8000.
🐞 Fixes
- Fixed an issue where
moon *-graph
commands could not be CTRL+C'd. - Fixed an issue where Git based template locations would fail if the initial
git clone
failed.
v1.32.6
🐞 Fixes
- Fixed an issue where aliases would not be inherited for some toolchains.
- Fixed some token variable interpolation for paths on Windows.
v1.32.5
🚀 Updates
- Updated Python uv with new features:
- Project aliases are inferred from
project.name
inpyproject.toml
. - Implicit project dependencies are inferred from
project.dependencies
inpyproject.toml
.- Requires a bare identifier with no version/url/origin markers.
- Currently does not support
tool.uv
or workspaces.
- Project aliases are inferred from
🐞 Fixes
- Fixed an issue where no touched files would be found when pushing commits on the default branch.
- Fixed an issue where
pyproject.toml
oruv.lock
would sometimes not be parsed.
v1.32.4
🐞 Fixes
- Fixed an issue where a project could be inserted into the project graph multiple times.
- Fixed an issue where touched files would sometimes not be available outside of affected scopes.
v1.32.3
🐞 Fixes
- Fixed an issue where
moon setup
wouldn't load configuration. - Fixed an issue where
moon docker scaffold
would unexpectedly install the toolchain languages. - Fixed an issue where
moon docker scaffold
would not copyuv.toml
anduv.lock
files. - Fixed an issue where changing
python.version
wouldn't regenerate the Python virtual environment.
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.