Releases: moonrepo/moon
Releases · moonrepo/moon
v1.12.1
🐞 Fixes
- Improved failed task error messages by including information about the failing task.
- Fixed an issue where failed tasks would be cached.
- Fixed an issue where errors lost information while bubbling up the stack.
v1.12.0
🚀 Updates
- Added git worktree support (experimental).
- Added an
interactive
field to task options. This marks tasks as interactive, so they can use stdin. - Added an
extends
field to task configurations. This allows tasks to extend and inherit settings from sibling tasks. - Updated task
env
values to support token functions and variables. - Updated task
outputs
to support negated globs. - Will now log a warning to the console if a configuration file uses the
.yaml
extension.
🐞 Fixes
- Fixed an issue where
moon ci
would not run affected targets based on touched files.
⚙️ Internal
- Improved caching and hashing layers.
v1.11.1
🐞 Fixes
- Fixed an issue where tasks using output globs would not always hydrate from the cache.
v1.11.0
💥 Breaking
- To support the new project graph, the order and priority in which environment variables are
resolved has changed. Previously it was task-level > .env file > project-level. Now it's
task-level > project-level > .env file.
🚀 Updates
- Rewrote the project graph from the ground-up:
- Lazily built using a multi-pass approach.
- Graph edges now indicate the type of relationship: development, production, build, peer.
- Updated
moon project-graph --json
to include the fully expanded graph data.
- Identifiers (project names, file groups, etc) can now be prefixed with underscores (
_
). - Added Poetry detection support for Python projects.
- Added an
experiments
setting to.moon/workspace.yml
. - Tasks
- Environment variables in
command
andargs
are now substituted. - Task
deps
can now depend on tag targets (#tag:task
). - Task
env
are now used when substituting values, alongside system-level. - Task
outputs
can now use token variables.
- Environment variables in
- Codegen
- Templates can be used as-is without rendering with Tera by appending
a.raw
extension.
- Templates can be used as-is without rendering with Tera by appending
- Query language
- Updated
project
to query both project name AND alias. - Added
projectName
for only querying by name.
- Updated
🐞 Fixes
- Fixed an issue where newer moonbase secret keys would fail to sign in.
- Fixed an issue where
@files
token would not invalidate the project graph cache. - Fixed an issue where changing
.env
would not invalidate the project graph cache.
⚙️ Internal
- Updated to proto v0.13.
- Updated Rust to v1.71.
v1.10.1
🐞 Fixes
- Fixed an issue where
.gitignore
patterns weren't always applied correctly. - Fixed an issue where
git hash-object
commands would fail if moon was setup in a sub-directory. - Fixed an issue where our "upgrade moon" message would print when requesting JSON output
(--json
), resulting in JSON parsing errors.
v1.10.0
💥 Breaking
These changes are fixing edge cases that should not have been allowed, but may break existing
repos. If these changes become troublesome, we'll revert.
- Tasks that configure the same outputs will now error. This change was made as multiple tasks
writing to the same output location will cause caching and hydration issues. - If a dependency of a task failed to run or was skipped, then the parent task will now be skipped.
🚀 Updates
- Added support for
MOON_BASE
andMOON_HEAD
environment variables.- Will be used when diffing across branches or commits.
- Works for both
moon ci
andmoon run
.
- Added
deno.bins
setting to.moon/toolchain.yml
. - Added
hasher.ignorePatterns
andhasher.ignoreMissingPatterns
settings to
.moon/workspace.yml
. - Updated
moon ci
to include a summary of all failed actions. - Updated
moon run
to compare against the previous commit when running on the default branch and
using--remote
. - Updated
rust.bins
in.moon/toolchain.yml
to support an object for each bin entry.- Can denote bins as CI or local only.
- Can force install bins.
- Updated the run report to include stderr/stdout for all attempts.
🐞 Fixes
- Fixed an issue where failed target run attempts would not appear in the run report.
📚 Documentation
- Added a new in-depth "Debugging a task" guide.
⚙️ Internal
- Updated to proto v0.12.
- Modernized the code generator and project constraints implementation.
- Renamed runfile to snapshot throughout.
v1.9.2
🐞 Fixes
- Fixed a panic when attempting to execute an npm package who's binary is purely Bash.
v1.9.1
🐞 Fixes
- Fixed a panic when parsing the output of
git --version
.
v1.9.0
🚀 Updates
- Added VCS hooks management support.
- Added
vcs.hooks
andvcs.syncHooks
settings to.moon/workspace.yml
. - Added
moon sync hooks
command.
- Added
- Added
--clean
and--force
flags tomoon sync codeowners
command. - Updated
moon init
to:- Detect an applicable VCS provider and set the
vcs.provider
setting. - Convert a detected tool version to a fully-qualified semantic version.
- Detect an applicable VCS provider and set the
- Node.js
- Moved syncing logic from
InstallNodeDeps
action toSetupNodeTool
action. This includes
syncingpackageManager
,engines
, and version files. This should feel more natural.
- Moved syncing logic from
🐞 Fixes
- Fixed an issue where task hashes would be different between Windows and Unix machines.
- Root cause is that arguments would use different path separators.
- Fixed an issue where
dev
,start
, orserve
tasks would not always be marked aslocal
. - Fixed an issue where inherited tasks parameters (inputs, deps, etc) would sometimes be lost based
on the merge strategy. - Fixed an issue with dependency graph cycle detection.
⚙️ Internal
- Updated to proto v0.11.
- Dropped SVN support since it was never finished and doesn't work.
- Improved VCS file handling, caching, and performance.
v1.8.3
🐞 Fixes
- Fixed an issue where command line arguments were incorrectly escaped in Bash shells.