v1.33.0
·
441 commits
to master
since this release
💥 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
--includeoption frommoon docker scaffold(it's been long deprecated). Use the
dockersettings 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
typescriptsettings in.moon/toolchain.ymlcan 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
SyncWorkspaceandSyncProjectactions. - Integrated into all
moon dockercommands. - Integrated into the task hashing process.
- Integrated into the
- Added a new
moonxexecutable, 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 thebuildtask in the closest project
(traversing upwards). - Added
$XDG_DATA_HOMEsupport when detecting the moon store. Will be used if$MOON_HOMEis 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 initwith toolchain plugin support. - Updated
toolchain.defaultinmoon.ymlto support a list of IDs. - Updated
unstable_remote.auth.headersto support environment variable interpolation. - Updated generated JSON schemas at
.moon/cache/schemasto dynamically include toolchain plugin
configuration. - Updated file hashing (via
git hash-object) to continously pipe stdin to avoid hanging processes. - Deprecated
hasher.batchSizein.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 initto gather settings values.define_toolchain_config- Defines a configuration schema for use within JSON schemas.define_docker_metadata- Defines metadata related todockercommands.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 theSyncProjectaction).sync_workspace- Runs syncing operations at the workspace root (during theSyncWorkspace
action).
- Updated
download_extensionto v0.0.9. - Updated
migrate_nx_extensionto v0.0.9.- Will no longer remove Nx configs. Pass
--cleanupto remove them.
- Will no longer remove Nx configs. Pass
- Updated
migrate_turborepo_extensionto v0.1.6.- Will no longer remove Turborepo configs. Pass
--cleanupto 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.