@moonrepo/cli 1.27.1 → 1.27.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +8 -8
  2. package/CHANGELOG.md +0 -1717
package/CHANGELOG.md DELETED
@@ -1,1717 +0,0 @@
1
- # Changelog
2
-
3
- ## 1.27.1
4
-
5
- #### 🚀 Updates
6
-
7
- - Removed the concurrency limit when running persistent tasks.
8
-
9
- #### 🐞 Fixes
10
-
11
- - Fixed an issue where task scripts would error with "command not found" (caused by over
12
- escaping/quoting).
13
- - Fixed an issue where a persistent task may not run or error with a missing dependency hash, if ran
14
- alongside many other persistent tasks.
15
- - Fixed an issue where "build" dependencies were being synced as project references.
16
- - Fixed an issue where the install depenencies action wouldn't run if the vendor directory
17
- (node_modules) was missing, but our operation was previously cached.
18
- - Fixed an issue where token variables were not being replaced in task scripts.
19
-
20
- ## 1.27.0
21
-
22
- #### 🚀 Updates
23
-
24
- - Enabled the `experiments.actionPipelineV2` setting in `.moon/workspace.yml` by default.
25
- - If you run into any issues running tasks, disable this setting and report an issue.
26
- - Added a new task field `script`, as an alternative to `command` + `args`.
27
- - Scripts support multiple commands (`&&`), pipes, and redirects.
28
- - Scripts do not support task inheritance argument merging.
29
- - Scripts are always ran in a shell.
30
- - Added a new command, `moon docker file`, that can be used to generate an initial multi-stage
31
- `Dockerfile` for a project.
32
- - Added new `docker` settings to both `.moon/workspace.yml` and `moon.yml`, allowing it to be
33
- configured at the workspace and project levels.
34
- - Added support for [murex](https://murex.rocks/) shells.
35
- - Updated both `unixShell` and `windowsShell` task options.
36
- - Improved the "automatically install dependencies if a manifest/lockfile has changed" flow. This
37
- should trigger less than before.
38
- - We now generate JSON schemas for our configuration files to `.moon/cache/schemas`, so that they
39
- can be dynamically created based on the current moon version and environment.
40
- - Is automatically generated when running a task.
41
- - Added a `moon sync config-schemas` command to manually run this operation.
42
- - When writing JSON and YAML files, we attempt to write back to the file with its original
43
- indentation.
44
-
45
- #### 🐞 Fixes
46
-
47
- - Fixed action operations not being present in the run report when a task fails to run.
48
- - Fixed stdout/stderr not being included in the summary review of failed tasks.
49
-
50
- #### 🧰 Toolchain
51
-
52
- - Node
53
- - Added a `node.syncPackageManagerField` setting, to control the `packageManager` field in
54
- `package.json`.
55
- - Yarn
56
- - Will no longer call `yarn set version` and instead rely entirely on proto's toolchain.
57
-
58
- #### ⚙️ Internal
59
-
60
- - Updated proto to v0.38.2 (from v0.37.2).
61
-
62
- ## 1.26.7
63
-
64
- #### 🚀 Updates
65
-
66
- - Updated `bun.installArgs` and `node.bun.installArgs` to stay in sync.
67
-
68
- #### 🐞 Fixes
69
-
70
- - Fixed `moon run --affected` not auto-installing dependencies in CI.
71
- - Fixed an issue where the project graph cache would not invalidate based on certain environment
72
- variables.
73
- - Fixed an issue where our console would be prematurely dropped, causing output flushing issues.
74
-
75
- ## 1.26.6
76
-
77
- #### 🐞 Fixes
78
-
79
- - Fixed a regression where `pwsh.exe` would not fallback to `powershell.exe` when the former does
80
- not exist.
81
- - Respect `CARGO_HOME` during automatic rustup installation.
82
-
83
- ## 1.26.5
84
-
85
- #### 🚀 Updates
86
-
87
- - Updated home-based environment variables, like `CARGO_HOME`, to support relative paths.
88
-
89
- #### 🐞 Fixes
90
-
91
- - Fixed an issue where globs wouldn't match when leading with `./`.
92
-
93
- #### ⚙️ Internal
94
-
95
- - Updated proto to v0.37.2 (from v0.37.1).
96
-
97
- ## 1.26.4
98
-
99
- #### 🐞 Fixes
100
-
101
- - Fixed an issue where the shell could not be detected, and would potentially hang.
102
-
103
- ## 1.26.3
104
-
105
- #### 🐞 Fixes
106
-
107
- - Potential fix for a deadlock that occurs when running `moon docker scaffold`.
108
- - Reverted the default shell back to `sh` instead of `bash` when one could not be detected.
109
-
110
- ## 1.26.2
111
-
112
- #### 🐞 Fixes
113
-
114
- - Fixed the `ciReport.json` file not being created with the experimental pipeline.
115
- - Fixed the wrong version being displayed in `--version` and in logs.
116
-
117
- #### ⚙️ Internal
118
-
119
- - Downgraded WASM runtime to fix potential issues.
120
-
121
- ## 1.26.1
122
-
123
- #### 🐞 Fixes
124
-
125
- - Re-released because of an npm version mismatch issue.
126
-
127
- ## 1.26.0
128
-
129
- #### 💥 Breaking
130
-
131
- - Reworked webhooks to more closely align with our current data structures.
132
- - Renamed `target.*` events to `task.*`, and `*.finished` to `*.completed`.
133
- - Removed the `pipeline.aborted` event. Instead, an `aborted` field is now passed to
134
- `pipeline.completed`.
135
- - Replaced the `action` field with a new `node` field within `task.*` events.
136
- - Reworked `pipeline.completed` entirely. Instead of calculating values for you, we now pass all
137
- results allowing you to calculate them yourself.
138
-
139
- #### 🚀 Updates
140
-
141
- - Rewrote the actions/tasks pipeline from the ground-up. Is currently experimental and must be
142
- enabled with the `experiments.actionPipelineV2` setting in `.moon/workspace.yml`.
143
- - Increased performance.
144
- - Better concurrency handling and scheduling.
145
- - More accurately monitors signals (ctrl+c) and shutdowns.
146
- - Tasks can now be configured with a timeout (`options.timeout` setting).
147
- - Some operations within actions are now ran in parallel.
148
- - We renamed many of the action labels (`SyncNodeProject(app)` -> `SyncProject(node, app)`).
149
- - Added a global `--dump` flag, that will dump a trace profile that can be inspected in
150
- `chrome://tracing`.
151
- - Updated `moon completions` command to support Nushell.
152
- - Updated task option `unixShell` with new options: ion, nu (nushell), pwsh (powershell), xonsh.
153
- - Updated task option `windowsShell` with new options: elvish, fish, nu (nushell), xonsh.
154
- - Updated CLI command execution to be more performant, and to reduce our usage of concurrent locks.
155
- - Internal components (like cache engine, or project graph) are now lazy-loaded when required,
156
- instead of created upfront.
157
-
158
- #### ⚙️ Internal
159
-
160
- - Updated proto to v0.37.1 (from v0.36.2).
161
- - Updated Rust to v1.79.
162
-
163
- ## 1.25.6
164
-
165
- #### 🐞 Fixes
166
-
167
- - Fixed a potential deadlock when installing tools.
168
-
169
- #### ⚙️ Internal
170
-
171
- - Updated proto to v0.36.2 (from v0.36.0).
172
-
173
- ## 1.25.5
174
-
175
- #### 🐞 Fixes
176
-
177
- - Fixed an issue where multiple Bun tools would try to install and collide.
178
- - Fixed an issue where the `package.json` `packageManager` field would be set with an invalid
179
- version specifier.
180
-
181
- ## 1.25.4
182
-
183
- #### 🚀 Updates
184
-
185
- - Updated `bun.version` and `node.bun.version` to stay in sync when one is defined and the other
186
- isn't. This helps to avoid tool discrepancies.
187
-
188
- #### 🐞 Fixes
189
-
190
- - Fixed an issue where persistent tasks depending on each other would sometimes error with
191
- "Encountered a missing hash".
192
- - Fixed nightly and canary releases not showing the correct version in `moon --version`.
193
-
194
- ## 1.25.3
195
-
196
- #### 🚀 Updates
197
-
198
- - Improved error messages around git version and worktree parsing.
199
-
200
- #### 🐞 Fixes
201
-
202
- - Fixed `git` version parsing when the version contains invalid semver parts.
203
-
204
- #### 🔋 Extensions
205
-
206
- - Updated `download` to v0.0.5.
207
- - Updated `migrate-nx` to v0.0.5.
208
- - Updated `migrate-turborepo` to v0.1.2.
209
- - Added Turborepo v2 support.
210
-
211
- ## 1.25.2
212
-
213
- #### 🚀 Updates
214
-
215
- - Added a check to `moon docker scaffold` that ensures that `.moon/cache` is ignored in a root
216
- `.dockerignore` file. This helps to avoid interoperability issues.
217
- - Added more logs to `moon docker` commands to help uncover future issues.
218
-
219
- #### 🐞 Fixes
220
-
221
- - Fixed an issue where `noop` tasks would not cache / invalidate cache. This is a regression from
222
- the recent task runner changes.
223
-
224
- #### ⚙️ Internal
225
-
226
- - Updated proto to v0.36.0 (from v0.35.4).
227
-
228
- ## 1.25.1
229
-
230
- #### 🚀 Updates
231
-
232
- - Rewrote process failure error messages to include exit status information. This should help
233
- uncover processes killed by signals, and help debug the -1 exit code issues.
234
-
235
- ## 1.25.0
236
-
237
- #### 💥 Breaking
238
-
239
- - Removed the following webhook events associated with task outputs: `target-output.archiving`,
240
- `target-output.archived`, `target-output.hydrating`, `target-output.hydrated`,
241
- `target-output.cache-check`.
242
-
243
- #### 🚀 Updates
244
-
245
- - Rewrote the task runner from the ground up:
246
- - Improved handling and reliability of output archiving and hydration.
247
- - Streamlined the task execution (child process) flow.
248
- - Now tracks metrics for individual operations, like hash generation, output hydration, task
249
- execution, and more. Can be inspected in the run report.
250
- - Added a `--summary` flag to `moon run` and `moon check` that will include a summary of all actions
251
- that were processed/failed within the pipeline. This is the same output used in `moon ci`.
252
- - Added a new console reporting layer that handles the rendering of output in the terminal.
253
- - This enables us to support additional reporters in the future, each with unique UIs.
254
- - Slightly tweaked our current UI rendering. You may notice some differences.
255
- - Updated external configuration files (via https extends) to be cached for 24 hours.
256
- - This will fix issues with offline mode.
257
- - Greatly reduced the amount of concurrent locks being held during task execution. May see slight
258
- performance improvements.
259
-
260
- #### 🐞 Fixes
261
-
262
- - Fixed an issue where actions within the run report were not reflecting the correct status of their
263
- last execution attempt.
264
- - Fixed an issue where "have outputs been created" checks would fail if outputs only contained
265
- negated globs, coupled with literal paths.
266
- - Fixed an issue where `.prototools` in the workspace root was not being respected when running moon
267
- commands in a sub-directory.
268
- - Fixed `PROTO_*_VERSION` environment variables being set to `*`, resulting in unexpected versions
269
- being resolved.
270
-
271
- #### ⚙️ Internal
272
-
273
- - Updated proto to v0.35.4 (from v0.34.4).
274
- - Updated macOS binaries to be built on macos-12 instead of macos-11.
275
-
276
- ## 1.24.6
277
-
278
- #### 🐞 Fixes
279
-
280
- - Reworked the binary provided by `@moonrepo/cli` to work better on Windows.
281
-
282
- ## 1.24.5
283
-
284
- #### 🐞 Fixes
285
-
286
- - Fixed an issue where proto managed tools may error with "Failed to detect an applicable version".
287
-
288
- ## 1.24.4
289
-
290
- #### 🐞 Fixes
291
-
292
- - Fixed a regression where `runInCI` was being overzealously applied to `moon run` commands.
293
- - Fixed generated VCS hooks not containing a trailing newline.
294
-
295
- ## 1.24.3
296
-
297
- #### 🐞 Fixes
298
-
299
- - Fixed an issue where internal tasks would still run when running a task using "closest project"
300
- detection.
301
- - Fixed an issue where task's with `runInCI` weren't always being filtered properly.
302
-
303
- ## 1.24.2
304
-
305
- #### 🐞 Fixes
306
-
307
- - Fixed task `deps.env` not supporting variable substitution.
308
- - Fixed an issue where Git hooks would overwrite non-local hooks. The `core.hooksPath` setting is
309
- now only used if the path is within the current repository.
310
-
311
- ## 1.24.1
312
-
313
- #### 🐞 Fixes
314
-
315
- - Fixed an issue where versions in `.prototools` weren't being respected.
316
- - Fixed task `deps.args` and `deps.env` not expanding tokens correctly.
317
-
318
- ## 1.24.0
319
-
320
- #### 🚀 Updates
321
-
322
- - Added an experimental `moon templates` command, that lists all available codegen templates.
323
- - Added a `--dependents` flag to `moon project-graph <id>` and `moon query projects`, to include
324
- downstream dependents of a focused/affected project.
325
- - Added a `mutex` task option, allowing for exclusivity and to ensure only 1 task is running at a
326
- time for the same mutex.
327
- - Added a `runner.autoCleanCache` setting to `.moon/workspace.yml`, allowing the post-run clean
328
- mechanism to be controlled.
329
- - Updated `moon ci` to automatically determine base/head revisions based on your current CI provider
330
- (when applicable).
331
- - Updated `moon generate`:
332
- - When passing variables as command line arguments, they are now entirely modeled after the
333
- template configuration.
334
- - Booleans and negated booleans now work better.
335
- - Numbers now support negative values.
336
- - Multiple values can now be passed for enums when `multiple` is enabled.
337
- - If a variable value is passed as an argument, we no longer prompt for it.
338
- - Internal variables will now error when passed as an argument.
339
- - Updated action graph and project graph visualization:
340
- - Slightly tweaked the colors to be easier to read.
341
- - Updated edges to use chevron arrows.
342
- - Added a new layout system to organize node/edges, controlled by the `?layout=` query parameter.
343
- - Supported layout options: `dagre` (default), `klay`, `grid`, `breadthfirst`
344
- - Updated root-level tasks to have no inputs by default, instead of `**/*`. This is typically what
345
- users want, to avoid greedy tasks.
346
-
347
- #### 🐞 Fixes
348
-
349
- - Fixed YAML schema validation not allowing custom languages for the project `language` field.
350
- - Fixed an issue where Bun and Node would both attempt to install dependencies, resulting in
351
- collisions.
352
- - To resolve this issue, we currently prioritize Node over Bun if both tools are enabled.
353
- - If you have both and want to use Bun, set Node's package manager to
354
- `node.packageManager: 'bun'`.
355
- - Attempted fix for "too many open files" when moon is cleaning cached artifacts.
356
-
357
- #### ⚙️ Internal
358
-
359
- - Updated proto to v0.34.4 (from v0.32.2).
360
-
361
- ## 1.23.4
362
-
363
- #### 🐞 Fixes
364
-
365
- - Fixed an issue where leading `./` in input/output globs would cause matching failures.
366
- - Fixed an issue where root-level projects were not being marked as affected in `moon query`.
367
- - Fixed an issue where `moon docker scaffold` would copy all sources when a project depends on a
368
- root-level project.
369
-
370
- ## 1.23.3
371
-
372
- #### 🧩 Plugins
373
-
374
- - Updated `bun_plugin` to v0.11.
375
- - Added Windows support.
376
- - Will now use the baseline build on x64 Linux when available.
377
-
378
- #### ⚙️ Internal
379
-
380
- - Updated proto to v0.32.2 (from v0.32.1).
381
-
382
- ## 1.23.2
383
-
384
- #### 🐞 Fixes
385
-
386
- - Fixed an issue where input environment variables weren't always being taken into account for task
387
- hashes.
388
-
389
- ## 1.23.1
390
-
391
- #### 🚀 Updates
392
-
393
- - Added more CI/CD platforms to check for.
394
-
395
- #### 🐞 Fixes
396
-
397
- - Fixed an issue where `moon clean` wasn't removing nested files.
398
- - Fixed an issue where `package.json` syncing would create incorrect `link:`s for Bun.
399
- - Fixed an issue where `moon ext` would trigger a "No such file or directory" error.
400
-
401
- #### 🔋 Extensions
402
-
403
- - Updated `migrate-nx` to v0.0.3.
404
- - Fixed invalid IDs when converting `package.json` names.
405
-
406
- ## 1.23.0
407
-
408
- #### 🚀 Updates
409
-
410
- - Added `git:` and `npm:` locators to the `generator.templates` setting in `.moon/workspace.yml`.
411
- - This allows templates to be packaged and managed outside of the workspace.
412
- - Locations will be cloned/downloaded on-demand.
413
- - Added an `id` setting to `template.yml`, so that templates can customize their name (instead of
414
- using the folder name).
415
- - Added a `variables()` function for templates that returns an object of all variables available.
416
- - Added new functionality for template variables in `template.yml`:
417
- - New `order` setting to control the order in which they are prompted for.
418
- - New `internal` setting that ignores values passed on the command line.
419
- - Updated enum `default` settings to support an array of values.
420
- - Added an `internal` task option, which marks tasks as internal only.
421
- - Updated task inheritance to support stack-based configuration, such as
422
- `.moon/tasks/node-frontend.yml` or `.moon/tasks/bun-backend-application.yml`.
423
- - Updated `moon project` and `moon task` to include the configuration files that tasks inherit from.
424
- - Updated `moon task` to include the modes it belongs to.
425
-
426
- #### 🐞 Fixes
427
-
428
- - Fixed an issue where a project's `platform` was being detected as `node` (when not enabled), and
429
- should have been `bun`. If you're using both `bun` and `node` in the same workspace, moon has a
430
- hard time detecting which should be used for what project. If you run into issues, explicitly set
431
- the `platform` in the project's `moon.yml`.
432
- - Fixed an issue where template files couldn't import/include/extends files from extended templates.
433
- - Fixed template enum variable default values being able to use a non-supported value.
434
-
435
- #### ⚙️ Internal
436
-
437
- - Configuration JSON schemas are now included within each GitHub release.
438
- - Updated proto to v0.32.1 (from v0.31.4).
439
- - Updated Rust to v1.77.
440
-
441
- ## 1.22.10
442
-
443
- #### ⚙️ Internal
444
-
445
- - Added more logging around our WASM plugins.
446
- - Added a `MOON_DEBUG_WASM` environment variable, for including additional logging output, and
447
- optionally dumping memory/core profiles.
448
-
449
- ## 1.22.9
450
-
451
- #### 🐞 Fixes
452
-
453
- - Fixed an issue with `moon docker scaffold` where Rust projects in the workspace skeleton would
454
- fail to compile as they were missing a lib/main entry point.
455
- - Fixed an issue with `moon docker prune` where an unknown project type would trigger toolchain
456
- errors.
457
-
458
- ## 1.22.8
459
-
460
- #### 🐞 Fixes
461
-
462
- - Fixed an issue where task hashing would attempt to hash invalid file paths, when moon is located
463
- within a nested git repository.
464
-
465
- ## 1.22.7
466
-
467
- #### 🐞 Fixes
468
-
469
- - Fixed an issue where environment variable substitution would trigger recursively when referencing
470
- itself.
471
-
472
- ## 1.22.6
473
-
474
- #### 🚀 Updates
475
-
476
- - We now include the exit code of a failing task in the logs for easier debugging.
477
-
478
- #### 🐞 Fixes
479
-
480
- - Fixed an issue where the wrong path was being displayed for the task message "in ...".
481
-
482
- #### ⚙️ Internal
483
-
484
- - Updated proto to v0.31.4 (from v0.31.2).
485
-
486
- ## 1.22.5
487
-
488
- #### 🐞 Fixes
489
-
490
- - Fixed `env` variable substitution not being able to reference values from an `.env` file.
491
- - Fixed an issue where moon would move an existing proto binary when installing proto, triggering
492
- permission issues.
493
-
494
- ## 1.22.4
495
-
496
- #### 🐞 Fixes
497
-
498
- - Fixed an issue where deleted but uncommitted files would log a hashing warning.
499
- - Fixed an issue where parsing `bun.lockb` would fail if using `github:` protocols.
500
-
501
- #### ⚙️ Internal
502
-
503
- - Updated proto to v0.31.2 (from v0.30.2).
504
-
505
- ## 1.22.3
506
-
507
- #### 🚀 Updates
508
-
509
- - Updated our project constraint enforcement to take the new `stack` setting into account. For
510
- example, frontend applications can now depend on backend applications, where as previously they
511
- could not.
512
-
513
- ## 1.22.2
514
-
515
- #### 🐞 Fixes
516
-
517
- - Fixed an issue where VCS hooks were being created in Docker, triggering cache issues.
518
-
519
- ## 1.22.1
520
-
521
- #### 🚀 Updates
522
-
523
- In v1.22, we [made a change](https://github.com/moonrepo/moon/issues/1329) to affected tasks that
524
- pass all `inputs` as arguments, instead of passing `.`. This change was made to not overzealously
525
- pass files to the task that it doesn't care about, but it ended up causing problems for certain
526
- commands.
527
-
528
- We didn't want to revert the change, but it also wasn't easy to fix without causing other issues, so
529
- as a compromise, we opted to introduce a new task option, `affectedPassInputs` to handle this
530
- functionality.
531
-
532
- ## 1.22.0
533
-
534
- #### 🚀 Updates
535
-
536
- - Added `configuration` and `scaffolding` variants to the project `type` setting in `moon.yml`.
537
- - Updated project constraints to support these new variants.
538
- - Added a `stack` setting to `moon.yml`, for categorizing which tech stack it belongs to.
539
- - Supports `frontend`, `backend`, `infrastructure`, and `systems`.
540
- - Added a `projectStack` field to the query language (MQL).
541
- - Added a `$projectStack` token variable for tasks.
542
- - Updated the `moon query projects` command to support a `--stack` option, and include the stack
543
- in the output.
544
- - Updated the `moon project` command to include the stack in the output.
545
- - Added a `description` setting for tasks, for providing human-readable information.
546
- - Updated the `moon project` and `moon task` commands to include the description in the output.
547
- - Added an `installArgs` setting for bun/npm/pnpm/yarn in `.moon/toolchain.yml`, to customize the
548
- args used when installing dependencies.
549
- - Added a new built-in extension, `migrate-nx`, for migrating from Nx to moon.
550
- - Will convert all `nx.json`, `workspace.json`, and `project.json` files.
551
- - Updated task input environment variables to support a wildcard match using `*`, for example
552
- `$VITE_*`.
553
- - This will include all environment variables in the current process that starts with `VITE_`.
554
- - Updated the `envFile` task option to support a list of file paths.
555
- - Updated the `migrate-turborepo` extension.
556
- - Removed the requirement of moon's project graph. Will now scan for turbo.jsons instead.
557
- - Updated affected tasks to use `inputs` as the list of files provided, instead of `.`.
558
-
559
- #### 🐞 Fixes
560
-
561
- - Fixed an issue where `bun install` was not running with `--production` in Docker prune.
562
- - Fixed an issue where invalid IDs passed to certain commands would trigger a panic.
563
- - Fixed an issue where `$PWD` in a task was pointing to the wrong directory.
564
-
565
- #### 🧩 Plugins
566
-
567
- - Updated `deno_plugin` to v0.9.1.
568
- - Added Linux ARM64 support (requires Deno >= v1.41).
569
- - Updated `rust_plugin` to v0.8.1.
570
- - Uses the full triple target when installing and uninstalling toolchains.
571
-
572
- #### ⚙️ Internal
573
-
574
- - Updated Rust to v1.76.
575
- - Updated proto to v0.30.2 (from v0.29.1).
576
-
577
- ## 1.21.4
578
-
579
- #### 🐞 Fixes
580
-
581
- - Fixed VCS hooks on Windows generating invalid PowerShell commands.
582
-
583
- ## 1.21.3
584
-
585
- #### 🐞 Fixes
586
-
587
- - Fixed a panic that would occur when running an action and path stripping would fail.
588
-
589
- ## 1.21.2
590
-
591
- #### 🐞 Fixes
592
-
593
- - Attempted fix for `liblzma.5.dylib` issues on macOS arm64.
594
-
595
- ## 1.21.1
596
-
597
- #### 🚀 Updates
598
-
599
- - Added shallow checkout detection to help avoid failing Git commands.
600
- - If detected in `moon ci`, is a hard failure.
601
- - If detected in `moon run`, will disable affected checks.
602
-
603
- ## 1.21.0
604
-
605
- #### 🚀 Updates
606
-
607
- - Added Deno tier 3 support.
608
- - Will download and install Deno into the toolchain when a `version` is configured.
609
- - Will parse the `deno.lock` lockfile to extract and resolve dependencies.
610
- - Will hash manifests and inputs for Deno specific caching.
611
- - Added a `deno.version` setting to `.moon/toolchain.yml`.
612
- - Added a `toolchain.deno` setting to `moon.yml`.
613
- - Updated `moon bin` and `moon docker` commands to support Deno.
614
- - Added a new built-in extension, `migrate-turborepo`, with new functionality.
615
- - Replaces the previous `moon migrate from-turborepo` command.
616
- - Added Bun support behind a new `--bun` flag.
617
- - Added support for `globalDotEnv`, `dotEnv`, and `outputMode`.
618
- - Scripts now run through a package manager, instead of `moon node run-script`.
619
- - Root-level tasks will now create a root `moon.yml`, instead of warning.
620
- - Added `unixShell` and `windowsShell` task options, so that the underlying shell can be configured
621
- per task.
622
- - Added `bun.inferTasksFromScripts` setting to `.moon/toolchain.yml`, for compatibility with
623
- Node.js.
624
- - Added environment variable support to `fileGroups`.
625
- - Added a `@envs(group)` token function for referencing environment variables.
626
- - Added a `--quiet` global argument, for hiding non-critical moon output.
627
- - Deprecated the `moon node run-script` command. Run the task through a package manager instead,
628
- like `npm run` or `yarn run`.
629
- - Updated tasks with glob-like arguments to automatically enabled the `shell` option, so that glob
630
- expansion works correctly.
631
- - Updated interactive tasks to not be shutdown when receiving a CTRL+C signal, and instead allow
632
- them to handle it themselves, and cleanup if necessary.
633
- - Implemented a new console layer for writing to stdout/stderr.
634
- - Logs are now buffered and written periodically.
635
- - Previously they were written immediately, which required locking std each call.
636
- - Should see some minor performance improvements.
637
-
638
- #### 🐞 Fixes
639
-
640
- - Fixed an issue where the action graph would create incorrect nodes when a tool utilizes dependency
641
- workspaces, and a project is not within the workspace.
642
- - Fixed an issue where glob based arguments were overlay escaped.
643
- - Fixed console checkpoints (the 4 squares) showing the wrong working directory.
644
-
645
- #### ⚙️ Internal
646
-
647
- - Updated proto to v0.30.0 (from v0.29.1).
648
-
649
- ## 1.20.1
650
-
651
- #### 🚀 Updates
652
-
653
- - Removed the maximum concurrency limit from persistent tasks.
654
-
655
- #### 🐞 Fixes
656
-
657
- - Fixed `moon docker scaffold` not copying the project specific `moon.yml` file, resulting in a
658
- skewed project graph.
659
-
660
- ## 1.20.0
661
-
662
- #### 🚀 Updates
663
-
664
- - Added a new extension plugin system.
665
- - An extension is a WASM plugin that is not built into moon's core:
666
- https://github.com/moonrepo/moon-extensions
667
- - Extensions can be executed with the new `moon ext` command.
668
- - The community can build and publish their own extensions!
669
- - Added a `taskOptions` setting to `.moon` task configs, allowing default task options to be
670
- defined.
671
- - These options will be merged and inherited as part of the configuration chain.
672
- - Added an `optional` field to task `deps`, allowing the dependency to be optional during
673
- inheritance.
674
- - Added a "Tags" view to the VSCode extension.
675
- - Updated proto installation to trigger for all applicable commands, not just `moon run`,
676
- `moon check`, and `moon ci`.
677
- - Will also use the global proto version if available when there's no internet connection, and the
678
- moon required proto version has not been installed.
679
-
680
- #### 🐞 Fixes
681
-
682
- - Fixed Git version parsing when using VFSForGit.
683
-
684
- #### 🧩 Plugins
685
-
686
- - Updated `bun_plugin` to v0.9.
687
- - Updated `node_plugin` and `node_depman_plugin` to v0.9.
688
- - Changed the `bundled-npm` and `intercept-globals` settings to be `false` by default (instead of
689
- `true`).
690
- - Updated `rust_plugin` to v0.8.
691
-
692
- #### ⚙️ Internal
693
-
694
- - Updated proto to v0.29.1 (from v0.26.4).
695
-
696
- ## 1.19.3
697
-
698
- This fixes a bad 1.19.2 release.
699
-
700
- ## 1.19.2
701
-
702
- #### 🐞 Fixes
703
-
704
- - Fixed another location where the `proto` binary was not available.
705
-
706
- ## 1.19.1
707
-
708
- #### 🐞 Fixes
709
-
710
- - Fixed `proto` binary not being available in a Dockerfile when running `moon docker` commands.
711
- - Fixed our `@moonrepo/cli` postinstall script not working correctly for Bun Arm64.
712
-
713
- ## 1.19.0
714
-
715
- #### 💥 Breaking
716
-
717
- - Removed the `experiments.interweavedTaskInheritance` setting from `.moon/workspace.yml`.
718
- Interweaved inheritance is now always enabled (was previously true by default).
719
- - Removed the `experiments.taskOutputBoundaries` setting from `.moon/workspace.yml`. We opted to
720
- remove boundaries entirely, as they caused more problems than solved. Task outputs may now overlap
721
- without issue.
722
-
723
- #### 🚀 Updates
724
-
725
- - Updated `implicitDeps` in `.moon/tasks.yml` and task `deps` in `moon.yml` to support arguments and
726
- environment variables for the dependency target.
727
- - Updated the action graph and pipeline to _not_ run the same target (but with different arguments
728
- and environment variable variations) in parallel, to avoid unexpected collisions.
729
- - Updated VS Code extension to support multiple VS Code workspace folders.
730
- - Improved code generation and templates:
731
- - Added a `destination` field to `template.yml`, to customize a default location.
732
- - Added a `extends` field to `template.yml`, allowing templates to extend and inherit other
733
- templates.
734
- - Updated `[var]` syntax to support filters: `[var | camel_case]`.
735
-
736
- #### 🧩 Plugins
737
-
738
- - Updated `bun_plugin` to v0.7.
739
- - Updated `node_plugin` and `node_depman_plugin` to v0.7.
740
- - Updated `rust_plugin` to v0.6.
741
-
742
- #### ⚙️ Internal
743
-
744
- - Updated Rust to v1.75.
745
- - Updated proto to v0.26.4 (from v0.25).
746
-
747
- ## 1.18.5
748
-
749
- #### 🚀 Updates
750
-
751
- - Reworked duplicate project ID/alias detection to be more accurate. Will also now error instead of
752
- warn when a duplicate is detected.
753
- - For aliases, the error can be disabled with the new `experiments.strictProjectAliases` setting
754
- in `.moon/workspace.yml`.
755
- - For project IDs, the error can not be disabled, as conflicting IDs will cause issues with the
756
- project graph.
757
-
758
- #### 🐞 Fixes
759
-
760
- - Fixed glob based project locating to not log warnings when a file is found and it starts with `.`
761
- (ignore dotfiles).
762
- - Fixed project aliases potentially overwriting a project with the same name.
763
-
764
- ## 1.18.4
765
-
766
- #### 🚀 Updates
767
-
768
- - Updated the proto installation step to download, unpack, and install using Rust, instead of
769
- relying on our Bash/PowerShell scripts. This should remove the requirement that openssl, tar, and
770
- other environment tools must exist.
771
-
772
- #### ⚙️ Internal
773
-
774
- - Updated proto to v0.25.3.
775
-
776
- ## 1.18.3
777
-
778
- #### 🐞 Fixes
779
-
780
- - Fixed more issues in relation to custom project IDs not resolving correctly.
781
-
782
- #### ⚙️ Internal
783
-
784
- - Improved some error messages with more information.
785
-
786
- ## 1.18.2
787
-
788
- #### 🚀 Updates
789
-
790
- - Silenced proto migration warnings when ran in the context of moon.
791
-
792
- #### 🐞 Fixes
793
-
794
- - Fixed an issue where `@dirs` and `@files` tokens didn't always work correctly in `outputs`.
795
- - Fixed the `@moonrepo/cli` package pulling in different `@moonrepo/core-*` versions
796
-
797
- #### ⚙️ Internal
798
-
799
- - Updated proto to v0.25.2.
800
-
801
- ## 1.18.1
802
-
803
- #### 🐞 Fixes
804
-
805
- - Fixed an issue where we would install `proto` even when not required.
806
- - Fixed an issue where implicit dependencies were not resolving correctly when projects were
807
- renamed.
808
-
809
- ## 1.18.0
810
-
811
- #### 🚀 Updates
812
-
813
- - Rewrote toolchain based task running to use a path based approach.
814
- - Instead of manually locating an executable, we now rely on `PATH` to locate the executable.
815
- - Non-system tasks can now be wrapped in a shell using the `shell` option.
816
- - This approach will now benefit from proto shims and binaries.
817
- - We'll also download and install the `proto` binary if it does not exist.
818
- - Reworked the `moon init` command.
819
- - Will no longer scaffold the toolchain configuration by default.
820
- - The tool to scaffold into a toolchain can be passed as an argument.
821
- - The path to initialize in is now behined the `--to` option.
822
- - Added support for the `bun` tool.
823
- - Simplified the workflow overall.
824
- - Updated `moon.yml` to support customizing the project name using the `id` field.
825
- - Can be used to override the project name derived in `.moon/workspace.yml`.
826
- - Added a `MOON_INSTALL_DIR` environment variable, to control where the `moon` binary is installed
827
- to.
828
-
829
- #### 🐞 Fixes
830
-
831
- - Fixed `moon upgrade` failing when not ran in a moon workspace.
832
- - Fixed `CODEOWNERS` being written with double trailing newlines.
833
-
834
- #### 🧩 Plugins
835
-
836
- - Updated `bun_plugin` to v0.6.
837
- - Updated `node_plugin` and `node_depman_plugin` to v0.6.1.
838
- - Updated `rust_plugin` to v0.5.
839
-
840
- #### ⚙️ Internal
841
-
842
- - Improved string allocation and performance for queries, task tokens, and process commands.
843
- - Improved remote caching flow and handling.
844
- - Updated proto to v0.25.
845
-
846
- ## 1.17.4
847
-
848
- #### 🐞 Fixes
849
-
850
- - Fixed an issue where executing moon (and indirectly proto) would run into privilege access issues
851
- on Windows.
852
- - Fixed `typescript.includeProjectReferenceSources` and `typescript.syncProjectReferencesToPaths`
853
- settings not including project references that were manually added (not auto-synced).
854
- - Fixed the "a project already exists with alias" warnings when using Bun and Node together.
855
-
856
- #### ⚙️ Internal
857
-
858
- - Added canary release support.
859
- - Enabled wasmtime caching, which should improve performance of WASM plugins by 10-20%.
860
- - Updated proto to v0.23.7.
861
-
862
- ## 1.17.3
863
-
864
- #### 🐞 Fixes
865
-
866
- - Fixed an issue where we would fail to find Cargo binaries on Windows.
867
-
868
- #### ⚙️ Internal
869
-
870
- - Updated proto to v0.23.3.
871
-
872
- ## 1.17.2
873
-
874
- #### 🐞 Fixes
875
-
876
- - Fixed an issue where `cargo-binstall` would error when trying to install it and it already exists.
877
-
878
- ## 1.17.1
879
-
880
- #### 🐞 Fixes
881
-
882
- - Fixed the wrong version being reported by the CLI.
883
-
884
- ## 1.17.0
885
-
886
- #### 🚀 Updates
887
-
888
- - Integrated full Bun support (tier 1-3).
889
- - Will download and install Bun into the toolchain when a `version` is configured.
890
- - Will parse the `bun.lockb` lockfile to extract and resolve dependencies.
891
- - Will hash manifests and inputs for Bun specific caching.
892
- - Added a `bun` setting to `.moon/toolchain.yml`.
893
- - Added a `toolchain.bun` setting to `moon.yml`.
894
- - Updated `moon bin` and `moon docker` commands to support Bun.
895
- - Updated task `platform` to support "bun".
896
- - Improved TypeScript support.
897
- - Added a `typescript.root` setting to denote the TypeScript root.
898
- - Added a `typescript.includeSharedTypes` setting, for syncing a shared types path to all
899
- project's `include`.
900
- - Added a `typescript.includeProjectReferenceSources` setting, for syncing project reference files
901
- to all project's `include`.
902
- - Updated `typescript.syncProjectReferencesToPaths` setting to always include the wildcard, and
903
- not require an index file.
904
- - Improved project reference syncing and edge case handling.
905
- - Improved JavaScript support.
906
- - Added `bun.rootPackageOnly` and `node.rootPackageOnly` settings to support the "one version
907
- rule" pattern.
908
- - Updated automatic dependency linking to use the `build` scope instead of `peer` scope. This
909
- should alleviate some of the pain points with `package.json` syncing.
910
-
911
- ## 1.16.5
912
-
913
- #### 🐞 Fixes
914
-
915
- - Fixed an issue where codegen would merge JSON/YAML files with the incorrect source.
916
- - Updated file traversal to not walk outside of the workspace root.
917
-
918
- #### ⚙️ Internal
919
-
920
- - Updated Rust to v1.74.
921
- - Updated proto to v0.23.0.
922
- - Updated dependencies.
923
- - Updated logs to now include nanoseconds.
924
-
925
- ## 1.16.4
926
-
927
- #### 🚀 Updates
928
-
929
- - Update project graph hashing to include git ignored `moon.yml` files.
930
-
931
- #### 🐞 Fixes
932
-
933
- - Fixed Yarn v1.22.x download not unpacking correctly.
934
-
935
- #### 🧩 Plugins
936
-
937
- - Updated Yarn `node_depman_plugin` to v0.5.1.
938
-
939
- ## 1.16.2/3
940
-
941
- #### 🚀 Updates
942
-
943
- - Updated `projects` globs to support ending in `moon.yml`.
944
- - Updated `node.dependencyVersionFormat` to fallback to a supported format when the chosen
945
- `node.packageManager` does not support the configured (or default) version format.
946
- - Updated to proto v0.22.0.
947
-
948
- #### 🐞 Fixes
949
-
950
- - Fixed an issue where dependencies were being injected into the root `package.json`, when a
951
- root-level project was dependending on non-root project tasks.
952
-
953
- #### 🧩 Plugins
954
-
955
- - Updated `bun_plugin` to v0.5.
956
- - Updated `deno_plugin` to v0.5.
957
- - Updated `go_plugin` to v0.5.
958
- - Updated `node_plugin` and `node_depman_plugin` to v0.5.
959
- - Updated `python_plugin` to v0.2.
960
- - Updated `rust_plugin` to v0.4.
961
- - Updated `schema_plugin` (TOML) to v0.5.
962
-
963
- ## 1.16.1
964
-
965
- #### 🐞 Fixes
966
-
967
- - Fixed `moon ci` not treating dependents as "CI only" when running locally.
968
- - Fixed the MQL parser failing on projects that contain a `.`.
969
- - Fixed JSON comment stripping not handling docblock styled comments (`/** **/`).
970
-
971
- ## 1.16.0
972
-
973
- #### 🚀 Updates
974
-
975
- - Added Bun as a supported Node.js package manager: `node.packageManager: 'bun'`.
976
- - Added components and targets support for the Rust toolchain.
977
- - Added `rust.components` and `rust.targets` settings to `.moon/toolchain.yml`.
978
- - Will automatically be installed with `rustup` when the pipeline is ran.
979
- - Added a `MOON_TOOLCHAIN_FORCE_GLOBALS` environment variable, that will force all toolchain tools
980
- to use the global binary available on `PATH`, instead of downloading and installing.
981
- - Added an improved task inheritance chain resolver.
982
- - Global and local tasks are now interweaved within the chain, where as previously global was
983
- built first, then local.
984
- - To fallback to the previous behavior, set `experiments.interweavedTaskInheritance: false` in
985
- `.moon/workspace.yml`.
986
- - Added a new project type `automation`, for projects like E2E and integration testing.
987
- - Updated action graph cycle detection to list all nodes in the cycle (when detectable).
988
- - Updated all npx calls to use a package manager equivalent. For example: `yarn dlx`, `pnpm dlx`,
989
- `bunx`.
990
- - Updated to support Yarn v4.
991
-
992
- #### 🐞 Fixes
993
-
994
- - Fixed an issue where `moon ci` and `git` would fail if there's only 1 commit on the base branch.
995
- - Fixed an issue where `runInCI` was not respected when a task is a dependency of an affected task.
996
- - Fixed an issue where the task `replace` merge strategy would not apply for empty values.
997
-
998
- #### ⚙️ Internal
999
-
1000
- - Updated dependencies.
1001
- - Updated to proto v0.21.0.
1002
- - Pinned proto plugins to a fixed version instead of using latest.
1003
-
1004
- ## 1.15.4
1005
-
1006
- #### 🐞 Fixes
1007
-
1008
- - Fixed an issue where pnpm would fail to dedupe when its toolchain version is not using a
1009
- fully-qualified version.
1010
- - Fixed an issue where `PROTO_OFFLINE` wouldn't use global binaries when available.
1011
-
1012
- #### ⚙️ Internal
1013
-
1014
- - Updated to proto v0.20.3.
1015
-
1016
- ## 1.15.3
1017
-
1018
- #### 🐞 Fixes
1019
-
1020
- - Fixed an issue where interactive/persistent flags weren't always bubbled up the the task runner.
1021
-
1022
- #### ⚙️ Internal
1023
-
1024
- - Updated to proto v0.20.
1025
-
1026
- ## 1.15.2
1027
-
1028
- #### 🚀 Updates
1029
-
1030
- - Updated `moon run --interactive` to allow more than 1 target.
1031
-
1032
- #### 🐞 Fixes
1033
-
1034
- - Fixed an issue where "raw" codegen files were sometimes being rendered, and failing with invalid
1035
- syntax.
1036
- - Fixed an issue where task dependents for the non-primary targets were being included in the action
1037
- graph.
1038
- - Fixed an issue with the project graph that would create duplicate nodes for deeply nested cycles.
1039
- - Fixed an issue where a cycle would be created in the action graph for the `SyncProject` action
1040
- type.
1041
-
1042
- ## 1.15.1
1043
-
1044
- #### 🚀 Updates
1045
-
1046
- - Based on feedback, we've updated the automatic dependency linking to _not apply_ when the target
1047
- is the root-level project. This should alleviate all unwanted cycles.
1048
-
1049
- #### 🐞 Fixes
1050
-
1051
- - Fixed an issue where Node.js dependency syncing would fail on `build` dependencies, and be over
1052
- zealous with root-level projects.
1053
- - Improved detection of Rust `cargo-binstall` package.
1054
-
1055
- ## 1.15.0
1056
-
1057
- #### 💥 Breaking
1058
-
1059
- - Tasks that depend (via `deps`) on other tasks from arbitrary projects (the parent project doesn't
1060
- implicitly or explicitly depend on the other project) will now automatically mark that other
1061
- project as a "peer" dependency. For example, "b" becomes a peer dependency for "a".
1062
-
1063
- #### 🎉 Release
1064
-
1065
- - Rewrote the dependency graph from the ground-up:
1066
- - Now known as the action graph.
1067
- - All actions now depend on the `SyncWorkspace` action, instead of this action running
1068
- arbitrarily.
1069
- - Cleaned up dependency chains between actions, greatly reducing the number of nodes in the graph.
1070
- - Renamed `RunTarget` to `RunTask`, including interactive and persistent variants.
1071
- - Updated the action graph to process using a topological queue, which executes actions on-demand in
1072
- the thread pool when they are ready (dependencies have been met). Previously, we would sort
1073
- topologically _into batches_, which worked, but resulted in many threads uselessly waiting for an
1074
- action to run, which was blocked waiting for the current batch to complete.
1075
- - For large graphs, this should result in a significant performance improvement.
1076
- - Persistent tasks will still be ran as a batch, but since it's the last operation, it's fine.
1077
- - Released a new GitHub action,
1078
- [`moonrepo/setup-toolchain`](https://github.com/marketplace/actions/setup-proto-and-moon-toolchains),
1079
- that replaces both `setup-moon-action` and `setup-proto`.
1080
-
1081
- #### 🚀 Updates
1082
-
1083
- - Added a `moon action-graph` command.
1084
- - Added a `--dependents` argument to `moon action-graph`.
1085
- - Added the ability to skip non-`RunTask` actions using environment variables.
1086
- - Deprecated the `moon dep-graph` command.
1087
-
1088
- #### 🐞 Fixes
1089
-
1090
- - Fixed an issue where task dependents (via `moon ci` or `moon run --dependents`) wouldn't always
1091
- locate all downstream tasks.
1092
-
1093
- #### ⚙️ Internal
1094
-
1095
- - Added in-memory caching to project graph file system lookup operations.
1096
- - Updated Rust to v1.72.
1097
-
1098
- ## 1.14.5
1099
-
1100
- #### 🐞 Fixes
1101
-
1102
- - Temporarily fixed the "A dependency cycle has been detected for (unknown)" issue.
1103
- - Fixed an issue where Git hooks were not created properly when using Git worktrees.
1104
- - Fixed a panic when attempting to clean/parse a JSON string.
1105
-
1106
- ## 1.14.4
1107
-
1108
- #### 🐞 Fixes
1109
-
1110
- - Fixed an issue where `moon docker scaffold` was too greedy and would copy files it shouldn't.
1111
- - Fixed some `PATH` inconsistencies when executing npm/pnpm/yarn binaries.
1112
- - Fixed codegen `lower_case` and `upper_case` stripping characters.
1113
-
1114
- ## 1.14.3
1115
-
1116
- #### 🚀 Updates
1117
-
1118
- - Updated `moon dep-graph` to support a task in closest project, similar to `moon run`.
1119
- - Updated to proto v0.19.
1120
-
1121
- #### 🐞 Fixes
1122
-
1123
- - Fixed an issue where local tasks could not extend global tasks using the `extends` setting.
1124
-
1125
- ## 1.14.2
1126
-
1127
- #### 🐞 Fixes
1128
-
1129
- - Fixed an issue where non-YAML files in `.moon/tasks` would be parsed as YAML configs.
1130
- - Fixed an issue where arguments were not passed to generated Git hooks.
1131
- - Fixed an issue where moonbase would fail to sign in in CI.
1132
- - Fixed an issue where a root project with aliases, that has self referential tasks, would trigger a
1133
- stack overflow error.
1134
-
1135
- ## 1.14.1
1136
-
1137
- #### 🐞 Fixes
1138
-
1139
- - Fixed an issue when using a global version of npm/pnpm/yarn, and the wrong arguments were being
1140
- passed to commands.
1141
- - Fixed the "running for 0s" message constantly logging for interactive tasks.
1142
-
1143
- ## 1.14.0
1144
-
1145
- #### 🚀 Updates
1146
-
1147
- - Added a `moon run` shorthand, where "run" can be omitted. For example, `moon run app:build` can be
1148
- written as `moon app:build`.
1149
- - This only works for targets that contain a `:`.
1150
- - Updated `moon ci` to support running an explicit list of targets, instead of running everything.
1151
- - Updated `node.version`, `npm.version`, `pnpm.version`, `yarn.version`, and `rust.version` to
1152
- support partial versions and requirements/ranges like `1.2`, `1`, or `^1.2`.
1153
- - Updated `.moon/tasks` to support nested folders, for better organization of task files.
1154
-
1155
- #### ⚙️ Internal
1156
-
1157
- - Improved handling of certificates and proxies.
1158
- - Updated to proto v0.18.
1159
-
1160
- ## 1.13.5
1161
-
1162
- #### 🐞 Fixes
1163
-
1164
- - Fixed an issue where the `projectName` query would not work correctly.
1165
-
1166
- ## 1.13.4
1167
-
1168
- #### ⚙️ Internal
1169
-
1170
- - Updated to proto v0.17.
1171
-
1172
- ## 1.13.3
1173
-
1174
- #### 🐞 Fixes
1175
-
1176
- - Fixed an issue where tool globals directory was not being correctly located.
1177
- - Fixed a panic when using the `rust` toolchain and attempting to install `bins`.
1178
-
1179
- ## 1.13.2
1180
-
1181
- #### 🐞 Fixes
1182
-
1183
- - Fixed an issue where `pnpm` or `yarn` would panic based on configuration combination.
1184
-
1185
- ## 1.13.1
1186
-
1187
- #### 🐞 Fixes
1188
-
1189
- - Fixed an issue where tasks depending on arbitrary project tasks would fail to build a partial
1190
- project graph.
1191
- - Fixed an issue where task `deps` within global tasks would not apply exclude/rename overrides.
1192
- - Fixed an issue with asset/binary files not working correctly with codegen templates.
1193
- - Fixed an issue where `moon upgrade` would require a workspace.
1194
-
1195
- ## 1.13.0
1196
-
1197
- #### 🚀 Updates
1198
-
1199
- - Added an `allowFailure` task option, allowing tasks to fail without bailing the entire run.
1200
- - Tasks allowed to fail cannot be depended on.
1201
- - Added colors to command line `--help` menus.
1202
- - Updated `runner.archivableTargets` to support tag scoped targets.
1203
- - Updated `moon query tasks` to filter out projects with no tasks.
1204
- - Updated `moon query tasks --affected` to filter based on affected task, instead of affected
1205
- project.
1206
- - Updated proto integration from v0.12 to v0.16:
1207
- - proto tools are now powered by WASM plugins, which will be downloaded by moon on-demand.
1208
- - Yarn v2+ will now download the requested version, and not downgrade to latest v1.
1209
- - Please report any issues or degradations from this migration.
1210
- - View entire [proto changelog](https://github.com/moonrepo/proto/blob/master/CHANGELOG.md#0160).
1211
-
1212
- #### 🐞 Fixes
1213
-
1214
- - Fixed `moon init` not using the remote default branch when scaffolding.
1215
-
1216
- #### ⚙️ Internal
1217
-
1218
- - Cleaned up moonbase and launchpad implementations.
1219
- - Updated Rust to v1.72.
1220
-
1221
- ## 1.12.1
1222
-
1223
- #### 🐞 Fixes
1224
-
1225
- - Improved failed task error messages by including information about the failing task.
1226
- - Fixed an issue where failed tasks would be cached.
1227
- - Fixed an issue where errors lost information while bubbling up the stack.
1228
-
1229
- ## 1.12.0
1230
-
1231
- #### 🚀 Updates
1232
-
1233
- - Added [git worktree](https://git-scm.com/docs/git-worktree) support (experimental).
1234
- - Added an `interactive` field to task options. This marks tasks as interactive, so they can use
1235
- stdin.
1236
- - Added an `extends` field to task configurations. This allows tasks to extend and inherit settings
1237
- from sibling tasks.
1238
- - Updated task `env` values to support token functions and variables.
1239
- - Updated task `outputs` to support negated globs.
1240
- - Will now log a warning to the console if a configuration file uses the `.yaml` extension.
1241
-
1242
- #### 🐞 Fixes
1243
-
1244
- - Fixed an issue where `moon ci` would no run affected targets based on touched files.
1245
-
1246
- #### ⚙️ Internal
1247
-
1248
- - Improved caching and hashing layers.
1249
-
1250
- ## 1.11.1
1251
-
1252
- #### 🐞 Fixes
1253
-
1254
- - Fixed an issue where tasks using output globs would not always hydrate from the cache.
1255
-
1256
- ## 1.11.0
1257
-
1258
- #### 💥 Breaking
1259
-
1260
- - To support the new project graph, the order and priority in which environment variables are
1261
- resolved has changed. Previously it was task-level > .env file > project-level. Now it's
1262
- task-level > project-level > .env file.
1263
-
1264
- #### 🚀 Updates
1265
-
1266
- - Rewrote the project graph from the ground-up:
1267
- - Lazily built using a multi-pass approach.
1268
- - Graph edges now indicate the type of relationship: development, production, build, peer.
1269
- - Updated `moon project-graph --json` to include the fully expanded graph data.
1270
- - Identifiers (project names, file groups, etc) can now be prefixed with underscores (`_`).
1271
- - Added Poetry detection support for Python projects.
1272
- - Added an `experiments` setting to `.moon/workspace.yml`.
1273
- - **Tasks**
1274
- - Environment variables in `command` and `args` are now substituted.
1275
- - Task `deps` can now depend on tag targets (`#tag:task`).
1276
- - Task `env` are now used when substituting values, alongside system-level.
1277
- - Task `outputs` can now use token variables.
1278
- - **Codegen**
1279
- - Templates can be used as-is without rendering with [Tera](https://tera.netlify.app) by appending
1280
- a `.raw` extension.
1281
- - **Query language**
1282
- - Updated `project` to query both project name AND alias.
1283
- - Added `projectName` for only querying by name.
1284
-
1285
- #### 🐞 Fixes
1286
-
1287
- - Fixed an issue where newer moonbase secret keys would fail to sign in.
1288
- - Fixed an issue where `@files` token would not invalidate the project graph cache.
1289
- - Fixed an issue where changing `.env` would not invalidate the project graph cache.
1290
-
1291
- #### ⚙️ Internal
1292
-
1293
- - Updated to proto v0.13.
1294
- - Updated Rust to v1.71.
1295
-
1296
- ## 1.10.1
1297
-
1298
- #### 🐞 Fixes
1299
-
1300
- - Fixed an issue where `.gitignore` patterns weren't always applied correctly.
1301
- - Fixed an issue where `git hash-object` commands would fail if moon was setup in a sub-directory.
1302
- - Fixed an issue where our "upgrade moon" message would print when requesting JSON output
1303
- (`--json`), resulting in JSON parsing errors.
1304
-
1305
- ## 1.10.0
1306
-
1307
- #### 💥 Breaking
1308
-
1309
- > These changes are fixing edge cases that should not have been allowed, but may break existing
1310
- > repos. If these changes become troublesome, we'll revert.
1311
-
1312
- - Tasks that configure the same outputs will now error. This change was made as multiple tasks
1313
- writing to the same output location will cause caching and hydration issues.
1314
- - If a dependency of a task failed to run or was skipped, then the parent task will now be skipped.
1315
-
1316
- #### 🚀 Updates
1317
-
1318
- - Added support for `MOON_BASE` and `MOON_HEAD` environment variables.
1319
- - Will be used when diffing across branches or commits.
1320
- - Works for both `moon ci` and `moon run`.
1321
- - Added `deno.bins` setting to `.moon/toolchain.yml`.
1322
- - Added `hasher.ignorePatterns` and `hasher.ignoreMissingPatterns` settings to
1323
- `.moon/workspace.yml`.
1324
- - Updated `moon ci` to include a summary of all failed actions.
1325
- - Updated `moon run` to compare against the previous commit when running on the default branch and
1326
- using `--remote`.
1327
- - Updated `rust.bins` in `.moon/toolchain.yml` to support an object for each bin entry.
1328
- - Can denote bins as CI or local only.
1329
- - Can force install bins.
1330
- - Updated the run report to include stderr/stdout for all attempts.
1331
-
1332
- #### 🐞 Fixes
1333
-
1334
- - Fixed an issue where failed target run attempts would not appear in the run report.
1335
-
1336
- #### 📚 Documentation
1337
-
1338
- - Added a new in-depth "Debugging a task" guide.
1339
-
1340
- #### ⚙️ Internal
1341
-
1342
- - Updated to proto v0.12.
1343
- - Modernized the code generator and project constraints implementation.
1344
- - Renamed runfile to snapshot throughout.
1345
-
1346
- ## 1.9.2
1347
-
1348
- #### 🐞 Fixes
1349
-
1350
- - Fixed a panic when attempting to execute an npm package who's binary is purely Bash.
1351
-
1352
- ## 1.9.1
1353
-
1354
- #### 🐞 Fixes
1355
-
1356
- - Fixed a panic when parsing the output of `git --version`.
1357
-
1358
- ## 1.9.0
1359
-
1360
- #### 🚀 Updates
1361
-
1362
- - Added VCS hooks management support.
1363
- - Added `vcs.hooks` and `vcs.syncHooks` settings to `.moon/workspace.yml`.
1364
- - Added `moon sync hooks` command.
1365
- - Added `--clean` and `--force` flags to `moon sync codeowners` command.
1366
- - Updated `moon init` to:
1367
- - Detect an applicable VCS provider and set the `vcs.provider` setting.
1368
- - Convert a detected tool version to a fully-qualified semantic version.
1369
- - **Node.js**
1370
- - Moved syncing logic from `InstallNodeDeps` action to `SetupNodeTool` action. This includes
1371
- syncing `packageManager`, `engines`, and version files. This should feel more natural.
1372
-
1373
- #### 🐞 Fixes
1374
-
1375
- - Fixed an issue where task hashes would be different between Windows and Unix machines.
1376
- - Root cause is that arguments would use different path separators.
1377
- - Fixed an issue where `dev`, `start`, or `serve` tasks would not always be marked as `local`.
1378
- - Fixed an issue where inherited tasks parameters (inputs, deps, etc) would sometimes be lost based
1379
- on the merge strategy.
1380
- - Fixed an issue with dependency graph cycle detection.
1381
-
1382
- #### ⚙️ Internal
1383
-
1384
- - Updated to proto v0.11.
1385
- - Dropped SVN support since it was never finished and doesn't work.
1386
- - Improved VCS file handling, caching, and performance.
1387
-
1388
- ## 1.8.3
1389
-
1390
- #### 🐞 Fixes
1391
-
1392
- - Fixed an issue where command line arguments were incorrectly escaped in Bash shells.
1393
-
1394
- ## 1.8.2
1395
-
1396
- #### 🐞 Fixes
1397
-
1398
- - Updated `CODEOWNERS` to take `.editorconfig` into account when generating.
1399
- - Fixed an issue where `git` branch commands would fail on <= v2.22.
1400
- - Fixed an issue where disabling moon's cache would not disable proto's cache.
1401
-
1402
- ## 1.8.1
1403
-
1404
- #### 🐞 Fixes
1405
-
1406
- - Fixed an issue where failed processes would not bubble up the original error.
1407
- - Fixed TypeScript type issues in `@moonrepo/types`.
1408
- - Fixed JSON schema issues.
1409
-
1410
- #### ⚙️ Internal
1411
-
1412
- - Updated to proto v0.10.5.
1413
-
1414
- ## 1.8.0
1415
-
1416
- #### 🚀 Updates
1417
-
1418
- - Added code owners (`CODEOWNERS`) support.
1419
- - Added `owners` setting to `moon.yml`.
1420
- - Added `codeowners` setting to `.moon/workspace.yml`.
1421
- - Added `moon sync codeowners` command.
1422
- - Added `vcs.provider` setting to `.moon/workspace.yml`.
1423
- - Added a new action to the graph, `SyncWorkspace`, that'll be used for workspace-level checks.
1424
- - Added `workspace.syncing` and `workspace.synced` webhooks.
1425
- - Added `MOON_OUTPUT_STYLE` and `MOON_RETRY_COUNT` environment variables.
1426
- - **Rust**
1427
- - Improved Cargo workspace root and members detection.
1428
-
1429
- #### ⚙️ Internal
1430
-
1431
- - Deprecated the `moon sync` command, use `moon sync projects` instead.
1432
- - Refactored task inputs, outputs, and file groups to be more accurate.
1433
- - Updated Rust to v1.70.
1434
-
1435
- ## 1.7.3
1436
-
1437
- #### 🐞 Fixes
1438
-
1439
- - Fixed an issue where glob task outputs were not invalidating a previous build.
1440
- - Fixed an issue where changing inputs would not mark a task as affected, when a moon workspace is
1441
- nested within a repository.
1442
- - Improved handling of ctrl+c signal detection and shutting down processes.
1443
-
1444
- ## 1.7.2
1445
-
1446
- #### 🐞 Fixes
1447
-
1448
- - Node.js
1449
- - Fixed an issue where some workers/packages would fail while inheriting parent args.
1450
- - Rust
1451
- - Fixed an issue where `cargo generate-lockfile` would run in the wrong directory.
1452
-
1453
- ## 1.7.1
1454
-
1455
- #### 🐞 Fixes
1456
-
1457
- - Fixed some configuration bugs.
1458
- - Fixed initial bootstrap log messages not being logged.
1459
- - Fixed an issue where hydrated caches would be partially written.
1460
-
1461
- ## 1.7.0
1462
-
1463
- #### 🚀 Updates
1464
-
1465
- - Rewrote configuration from the ground-up:
1466
- - Strict parsing to bubble up typos, invalid nesting, and more.
1467
- - Recursive merging and validation.
1468
- - And many more improvements.
1469
- - Rewrote error handling and rendering.
1470
- - Improved error messages.
1471
- - Added custom error messages for certain situations.
1472
- - Added support for npm lockfile v3 format.
1473
-
1474
- #### 🐞 Fixes
1475
-
1476
- - Fixed an issue where colors were not being forced when passing `--color`.
1477
- - Fixed an issue where `--log` or `MOON_LOG` would error when running nested `moon` commands.
1478
-
1479
- #### ⚙️ Internal
1480
-
1481
- - Updated to proto v0.10.
1482
- - Updated Cargo dependencies.
1483
-
1484
- ## 1.6.1
1485
-
1486
- #### 🐞 Fixes
1487
-
1488
- - Fixed poor argument parsing of command line operators like `;`, `&&`, etc.
1489
-
1490
- ## 1.6.0
1491
-
1492
- #### 🚀 Updates
1493
-
1494
- - Added support for persistent tasks.
1495
- - Added `persistent` task option to `moon.yml` (is also set via `local`).
1496
- - Persistent tasks _run last_ in the dependency graph.
1497
- - Updated long running processes to log a checkpoint indicating it's still running.
1498
- - Updated task `platform` detection to only use the platform if the toolchain language is enabled.
1499
- - Started migration to a newer/better logging implementation.
1500
-
1501
- #### 🐞 Fixes
1502
-
1503
- - Fixed an issue where a task would panic for missing outputs.
1504
-
1505
- #### ⚙️ Internal
1506
-
1507
- - Reworked file groups to use workspace relative paths, instead of project relative.
1508
- - Reworked processes to better handle command line arguments, shells, and piped stdin input.
1509
-
1510
- ## 1.5.1
1511
-
1512
- #### 🐞 Fixes
1513
-
1514
- - Fixed an issue where tasks would run in CI even though `runInCI` was false.
1515
- - Fixed an issue where npm, pnpm, and yarn shims were not being used from proto.
1516
-
1517
- ## 1.5.0
1518
-
1519
- #### 🚀 Updates
1520
-
1521
- - Added Rust tier 2 and 3 language support!
1522
- - Added `rust` as a supported `platform` variant.
1523
- - Added `rust` setting to `.moon/toolchain.yml`.
1524
- - Added `toolchain.rust` setting to `moon.yml`.
1525
- - Added support for `rust` setting in `.prototools`.
1526
- - Updated `moon init` and `moon bin` commands to support Rust.
1527
- - Updated `moon docker scaffold` command to scaffold Cargo files.
1528
- - Updated `moon docker prune` command to delete the `target` directory.
1529
-
1530
- #### 🐞 Fixes
1531
-
1532
- - Fixed an issue where task type was `run` when it should be `test`.
1533
-
1534
- #### ⚙️ Internal
1535
-
1536
- - Reworked `moon init --yes` to not enable all tools, and instead enable based on file detection.
1537
- - Cleaned up `moon init` templates. Will no longer scaffold `.moon/tasks.yml`.
1538
-
1539
- ## 1.4.0
1540
-
1541
- #### 🚀 Updates
1542
-
1543
- - Added a new target scope for tags, `#tag:task`, which will run a task for all projects with the
1544
- given tag.
1545
- - Updated `moon query projects` and `moon query tasks` to support MQL for filtering results.
1546
- - Deprecated `node.aliasPackageNames` setting. Aliases will always be loaded now.
1547
-
1548
- #### ⚙️ Internal
1549
-
1550
- - Upgraded to proto v0.8.
1551
- - Updated JSON schemas with missing fields.
1552
- - Rewrote ID handling for future features.
1553
-
1554
- ## 1.3.2
1555
-
1556
- #### 🐞 Fixes
1557
-
1558
- - Fixed an issue where a `pnpm-lock.yaml` with no packages would fail to parse.
1559
-
1560
- ## 1.3.1
1561
-
1562
- #### 🐞 Fixes
1563
-
1564
- - Fixed a few issues during input hashing:
1565
- - Would attempt to include deleted files from `git status`, which would log a warning.
1566
- - Would attempt to hash directories for root-level projects, which would log a warning.
1567
-
1568
- #### ⚙️ Internal
1569
-
1570
- - Upgraded to proto v0.7.2.
1571
-
1572
- ## 1.3.0
1573
-
1574
- #### 🚀 Updates
1575
-
1576
- - Introducing MQL, a custom query language for running advanced filters on the project graph.
1577
- - Added a `--query` option to the `moon run` command, allowing for advanced targeting.
1578
- - Updated config loading to be strict and error on unknown fields for non-root fields.
1579
-
1580
- #### 🐞 Fixes
1581
-
1582
- - Fixed an issue where proto would fail to parse `manifest.json`.
1583
-
1584
- #### ⚙️ Internal
1585
-
1586
- - Updated Rust to v1.69.
1587
- - Upgraded to proto v0.7.
1588
- - Improved accuracy of our globbing utilities, especially around dotfiles/dotfolders.
1589
-
1590
- ## 1.2.2
1591
-
1592
- #### 🚀 Updates
1593
-
1594
- - Added `node_modules/.bin/moon` as another lookup location for the `moon` binary when running
1595
- globally.
1596
-
1597
- #### 🐞 Fixes
1598
-
1599
- - Fixed an issue where running tasks were not killed, resulting in background zombie processes.
1600
- - Fixed a few version comparisons between Yarn legacy and berry.
1601
- - Updated dependency deduping to not run if the manager version is unknown.
1602
-
1603
- ## 1.2.1
1604
-
1605
- #### 🐞 Fixes
1606
-
1607
- - Fixed an issue where `$projectAlias` token was not substituting correctly.
1608
-
1609
- ## 1.2.0
1610
-
1611
- #### 🚀 Updates
1612
-
1613
- - Added task inheritance based on tags in the form of `.moon/tasks/tag-<name>.yml`.
1614
-
1615
- #### 🐞 Fixes
1616
-
1617
- - Fixed an issue where setting `MOON_COLOR` would fail validation.
1618
-
1619
- #### ⚙️ Internal
1620
-
1621
- - Upgraded to proto v0.6.
1622
- - Improvements to file system operations.
1623
- - Minor improvements to performance.
1624
-
1625
- ## 1.1.1
1626
-
1627
- #### 🐞 Fixes
1628
-
1629
- - Fixed an issue where token function resolving would cause massive performance degradation.
1630
-
1631
- ## 1.1.0
1632
-
1633
- #### 🚀 Updates
1634
-
1635
- - Added token variable substitution support for task `command`s.
1636
- - Added a `moon task` command, for viewing resolved information about a task.
1637
- - Updated `moon run` to be able to run tasks in the closest project based on current working
1638
- directory.
1639
- - Updated `noop` tasks to be cacheable, so that they can be used for cache hit early returns.
1640
-
1641
- #### ⚙️ Internal
1642
-
1643
- - Upgraded to proto v0.5.
1644
- - Support pnpm v8's new lockfile format.
1645
- - Better handling for task's that execute the `moon` binary.
1646
-
1647
- ## 1.0.3
1648
-
1649
- #### 🚀 Updates
1650
-
1651
- - Added `hasher.batchSize` to control the number of files to be hashed per batch.
1652
- - Updated new version checks to include an optional message.
1653
-
1654
- #### 🐞 Fixes
1655
-
1656
- - Fixed an issue where non-input matching files were being passed to `git hash-object` during the
1657
- inputs collection process. For large projects, you'll see improved performance.
1658
- - Fixed an issue where root-level input globs were not matching correctly when `hasher.walkStrategy`
1659
- was "vcs".
1660
- - Fixed a deadlock where some concurrent tasks via a parent `noop` task would not start or run in
1661
- parallel.
1662
-
1663
- #### ⚙️ Internal
1664
-
1665
- - Upgraded to proto v0.4.
1666
- - Switched to a semaphore for restricting task concurrency.
1667
-
1668
- ## 1.0.2
1669
-
1670
- #### 🐞 Fixes
1671
-
1672
- - Fixed an issue where `moon run` or `moon check` would hang when not running in a workspace.
1673
- - Fixed an issue where workspace root finding will locate `~/.moon`.
1674
-
1675
- ## 1.0.1
1676
-
1677
- #### 🐞 Fixes
1678
-
1679
- - Updated `envFile` to log a warning instead of triggering an error when `.env.` is missing.
1680
- - Updated `envFile` to support workspace relative paths when prefixed with `/`.
1681
- - Fixed an issue where `.moon/tasks/*.yml` were not scaffolded into `Dockerfile`s.
1682
- - Fixed an issue where a CI environment wasn't detected for some CI providers.
1683
- - Fixed a project cache issue when running tasks inside and outside of a container.
1684
-
1685
- ## 1.0.0
1686
-
1687
- #### 💥 Breaking
1688
-
1689
- - Updated the installer scripts and the `moon upgrade` command to install the `moon` binary to
1690
- `~/.moon/bin`.
1691
- - Removed Homebrew support.
1692
-
1693
- #### 🚀 Updates
1694
-
1695
- - Added a `constraints` setting to `.moon/workspace.yml`, allowing for project/dep relationships to
1696
- be enforced.
1697
- - Added a `hasher.warnOnMissingInputs` setting to `.moon/workspace.yml`.
1698
- - Added a `shell` task option to `moon.yml` that will wrap system tasks in a shell.
1699
- - Added a `tags` setting to `moon.yml` for project categorization.
1700
- - Added a `--tags` option to the `moon query projects` command.
1701
- - Added a `telemetry` setting to `.moon/workspace.yml`.
1702
- - Added 5 new token variables: `$projectAlias`, `$date`, `$time`, `$datetime`, and `$timestamp`.
1703
- - Updated task `env` and `.env` files to support variable substitution using `${VAR_NAME}` syntax.
1704
- - Updated system tasks to now execute within a shell.
1705
-
1706
- #### 🐞 Fixes
1707
-
1708
- - Reworked how task inputs are resolved when empty `[]` is configured, and all `**/*` is inherited.
1709
-
1710
- #### ⚙️ Internal
1711
-
1712
- - Updated the new version check to only run on the `check`, `ci`, `run`, and `sync` commands.
1713
- - Will now detect 16 additional CI environments: Agola, AppCenter, Appcircle, Azure, Bamboo,
1714
- Bitrise, Buddy, Cirrus, Codemagic, Heroku, Jenkins, Jenkins X, Netlify, TeamCity, Vela,
1715
- Woodpecker.
1716
- - Will now attempt to detect CD environments for more accurate metrics.
1717
- - We now create a [cache directory tag](https://bford.info/cachedir) in `.moon/cache`.