v1.35.0
·
390 commits
to master
since this release
🚀 Updates
- Rewrote the action graph to support plugins. The following changes have been made.
- Is now async compatible. In the future, we'll update it to also support concurrency, so that the
graph can be built in parallel across threads. - Reduced the amount of edges (relationships) being created between nodes (actions).
- Added a new
InstallDependenciesaction for WASM plugins.- The dependencies root is now dynamically located by traversing the file system, unlike the
previous implementation that assumed everything was in the workspace root.
- The dependencies root is now dynamically located by traversing the file system, unlike the
- Added a new
SetupEnvironmentaction for WASM plugins.- This runs after
SetupToolchainbut beforeInstallDependencies. - Can be used to setup the workspace or project environment. For example, initializing Python
venv, or making manifest/lockfile changes.
- This runs after
- Updated
RunTaskto setup toolchains and install dependencies for eachtoolchainthat has
been configured, instead of just the 1st one (work in progress). - Updated
SyncProjectto no longer depend onSetupToolchain, and not be grouped by
language/toolchain, and instead encompass all of them applicable to the project.
- Is now async compatible. In the future, we'll update it to also support concurrency, so that the
- Added a new task option,
cacheKey, which can be used to seed the hash, and invalidate local and
remote caches. - Added a new task option,
priority, that controls the position in the pipeline queue.- Supports
critical,high,normal(default), orlow.
- Supports
- Added a
--log=verboselevel, which includes span information on top of the trace level. - Added a light terminal theme. Can be enabled with
--theme=lightorMOON_THEME=light.- This is still a work in progress. Open to feedback on color/contrast choices.
- Added 2 new webhooks,
toolchain.installingandtoolchain.installed, which emit when a
toolchain WASM plugin is installing a tool (via proto). - Enabled the
experiments.fasterGlobWalkandexperiments.gitV2experiments.
🧩 Plugins
- Added tier 3 support (tier 2 still a work in progress).
- This utilizes the same APIs as proto: https://moonrepo.dev/docs/proto/wasm-plugin
- Added new toolchain WASM APIs.
locate_dependencies_root- Locates the dependencies root (workspace).setup_environment- Runs operations to setup an environment for a project/workspace before
installing dependencies and running tasks.install_dependencies- Defines commands to install/dedupe dependencies.setup_toolchain- Runs operations after the tool has been installed.teardown_toolchain- Runs operations before the tool will be uninstalled.
🐞 Fixes
- Fixed the error handling of remote service uploads and downloads.
- Fixed a timed out task displaying a generic and unhelpful error message.
⚙️ Internal
- Linux binaries are now built on Ubuntu v22 instead of v20.
- Rewrote our testing utilities and updated all tests.
- Updated proto to v0.47.11 (from 0.47.7).
- Updated Rust to v1.86.0.