@hominis/fireforge 0.55.0 → 0.60.0
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.
- package/CHANGELOG.md +233 -6
- package/README.md +51 -17
- package/dist/bin/fireforge.js +34 -129
- package/dist/build-info.json +4 -4
- package/dist/src/check/check.js +394 -0
- package/dist/src/check/gate.js +448 -0
- package/dist/src/check/index.js +10 -0
- package/dist/src/check/record.js +155 -0
- package/dist/src/cli/command.js +286 -0
- package/dist/src/cli/output.js +96 -0
- package/dist/src/cli/program.js +231 -0
- package/dist/src/cli/stdio.js +59 -0
- package/dist/src/cli/version.js +99 -0
- package/dist/src/commands/bootstrap.js +17 -102
- package/dist/src/commands/build.js +34 -456
- package/dist/src/commands/check.js +44 -157
- package/dist/src/commands/config.js +50 -226
- package/dist/src/commands/discard.js +38 -215
- package/dist/src/commands/doctor.js +29 -456
- package/dist/src/commands/download.js +35 -499
- package/dist/src/commands/export.js +42 -431
- package/dist/src/commands/furnace.js +220 -0
- package/dist/src/commands/gate.js +127 -0
- package/dist/src/commands/import.js +44 -445
- package/dist/src/commands/index.js +86 -0
- package/dist/src/commands/lint.js +44 -546
- package/dist/src/commands/merge-driver.js +56 -0
- package/dist/src/commands/migrate.js +75 -0
- package/dist/src/commands/override.js +43 -0
- package/dist/src/commands/package.js +48 -77
- package/dist/src/commands/patch.js +221 -0
- package/dist/src/commands/re-export.js +55 -359
- package/dist/src/commands/rebase.js +69 -0
- package/dist/src/commands/register.js +62 -103
- package/dist/src/commands/reset.js +28 -91
- package/dist/src/commands/resolve.js +20 -167
- package/dist/src/commands/restore.js +19 -0
- package/dist/src/commands/run.js +60 -382
- package/dist/src/commands/setup.js +78 -90
- package/dist/src/commands/status.js +44 -413
- package/dist/src/commands/test.js +97 -423
- package/dist/src/commands/token.js +185 -228
- package/dist/src/commands/typecheck.js +59 -241
- package/dist/src/commands/verify.js +28 -334
- package/dist/src/commands/version.js +14 -0
- package/dist/src/commands/watch.js +20 -218
- package/dist/src/commands/wire.js +60 -349
- package/dist/src/commands/workspace.js +117 -0
- package/dist/src/config/edit.js +237 -0
- package/dist/src/config/index.js +15 -0
- package/dist/src/config/load.js +59 -0
- package/dist/src/config/previous.js +404 -0
- package/dist/src/config/schema/build.js +63 -0
- package/dist/src/config/schema/check.js +113 -0
- package/dist/src/config/schema/common.js +71 -0
- package/dist/src/config/schema/export-queue.js +36 -0
- package/dist/src/config/schema/firefox.js +69 -0
- package/dist/src/config/schema/gate.js +199 -0
- package/dist/src/config/schema/identity.js +55 -0
- package/dist/src/config/schema/index.js +45 -0
- package/dist/src/config/schema/lint.js +297 -0
- package/dist/src/config/schema/policy.js +111 -0
- package/dist/src/config/schema/source.js +90 -0
- package/dist/src/config/schema/test.js +17 -0
- package/dist/src/config/schema/toolchains.js +17 -0
- package/dist/src/config/schema/typecheck.js +29 -0
- package/dist/src/config/schema/wire.js +15 -0
- package/dist/src/diff/apply.js +129 -0
- package/dist/src/diff/index.js +16 -0
- package/dist/src/diff/model.js +267 -0
- package/dist/src/diff/query.js +65 -0
- package/dist/src/doctor/index.js +240 -0
- package/dist/src/engine/archive.js +396 -0
- package/dist/src/engine/audit.js +66 -0
- package/dist/src/engine/build.js +150 -0
- package/dist/src/engine/hostLocks.js +66 -0
- package/dist/src/engine/index.js +26 -0
- package/dist/src/engine/installManifests.js +147 -0
- package/dist/src/engine/mach.js +97 -0
- package/dist/src/engine/machHints.js +80 -0
- package/dist/src/engine/mozconfig.js +110 -0
- package/dist/src/engine/objdir.js +124 -0
- package/dist/src/engine/package.js +169 -0
- package/dist/src/engine/pin.js +12 -0
- package/dist/src/engine/pool.js +423 -0
- package/dist/src/engine/pristine.js +281 -0
- package/dist/src/engine/python.js +68 -0
- package/dist/src/engine/resourceGuard.js +582 -0
- package/dist/src/engine/run.js +259 -0
- package/dist/src/engine/smoke.js +204 -0
- package/dist/src/engine/staleness.js +229 -0
- package/dist/src/engine/watch.js +82 -0
- package/dist/src/engine/workspace.js +85 -0
- package/dist/src/furnace/config.js +360 -0
- package/dist/src/furnace/deploy.js +414 -0
- package/dist/src/furnace/diff.js +59 -0
- package/dist/src/furnace/edit.js +64 -0
- package/dist/src/furnace/fragments.js +53 -0
- package/dist/src/furnace/index.js +19 -0
- package/dist/src/furnace/operations.js +283 -0
- package/dist/src/furnace/registration.js +220 -0
- package/dist/src/furnace/scaffold.js +311 -0
- package/dist/src/furnace/typing.js +252 -0
- package/dist/src/furnace/validate.js +662 -0
- package/dist/src/git/apply.js +129 -0
- package/dist/src/git/diff.js +143 -0
- package/dist/src/git/index.js +33 -0
- package/dist/src/git/objects.js +201 -0
- package/dist/src/git/refs.js +85 -0
- package/dist/src/git/repo.js +222 -0
- package/dist/src/git/run.js +242 -0
- package/dist/src/git/status.js +156 -0
- package/dist/src/kernel/errors.js +123 -0
- package/dist/src/kernel/fs.js +515 -0
- package/dist/src/kernel/glob.js +63 -0
- package/dist/src/kernel/hash.js +28 -0
- package/dist/src/kernel/journal.js +524 -0
- package/dist/src/kernel/json-edit.js +198 -0
- package/dist/src/kernel/json.js +101 -0
- package/dist/src/kernel/lock.js +589 -0
- package/dist/src/kernel/log.js +154 -0
- package/dist/src/kernel/process/identity.js +313 -0
- package/dist/src/kernel/process/index.js +8 -0
- package/dist/src/kernel/process/listing.js +128 -0
- package/dist/src/kernel/process/spawn.js +430 -0
- package/dist/src/kernel/process/tree.js +301 -0
- package/dist/src/kernel/schema.js +308 -0
- package/dist/src/kernel/signals.js +171 -0
- package/dist/src/kernel/text.js +151 -0
- package/dist/src/kernel/time.js +83 -0
- package/dist/src/kernel/tty.js +84 -0
- package/dist/src/lint/cache.js +77 -0
- package/dist/src/lint/checkjs.js +400 -0
- package/dist/src/lint/index.js +3 -0
- package/dist/src/lint/input.js +100 -0
- package/dist/src/lint/report.js +107 -0
- package/dist/src/lint/rule.js +41 -0
- package/dist/src/lint/rules/css.js +308 -0
- package/dist/src/lint/rules/javascript.js +299 -0
- package/dist/src/lint/rules/jsdoc.js +249 -0
- package/dist/src/lint/rules/license.js +93 -0
- package/dist/src/lint/rules/policy.js +201 -0
- package/dist/src/lint/rules/registration.js +264 -0
- package/dist/src/lint/rules/size.js +299 -0
- package/dist/src/lint/run.js +126 -0
- package/dist/src/lint/shim.js +323 -0
- package/dist/src/lint/typescript.js +186 -0
- package/dist/src/lint/waivers.js +93 -0
- package/dist/src/mode/changes.js +264 -0
- package/dist/src/mode/diagnose.js +173 -0
- package/dist/src/mode/export.js +147 -0
- package/dist/src/mode/index.js +23 -0
- package/dist/src/mode/migrate.js +181 -0
- package/dist/src/mode/previousWaivers.js +206 -0
- package/dist/src/mode/pristine.js +61 -0
- package/dist/src/mode/rebase.js +197 -0
- package/dist/src/mode/report.js +157 -0
- package/dist/src/mode/setup.js +103 -0
- package/dist/src/mode/tracked.js +116 -0
- package/dist/src/mode/upgrade.js +281 -0
- package/dist/src/mode/watch.js +83 -0
- package/dist/src/mode/workspace.js +189 -0
- package/dist/src/mozbuild/index.js +6 -0
- package/dist/src/mozbuild/jar.js +366 -0
- package/dist/src/mozbuild/mozbuild.js +321 -0
- package/dist/src/mozbuild/paths.js +96 -0
- package/dist/src/mozbuild/references.js +39 -0
- package/dist/src/mozbuild/testManifest.js +343 -0
- package/dist/src/mozbuild/text.js +142 -0
- package/dist/src/project/changes.js +145 -0
- package/dist/src/project/checkout.js +66 -0
- package/dist/src/project/index.js +11 -0
- package/dist/src/project/license.js +119 -0
- package/dist/src/project/project.js +111 -0
- package/dist/src/project/state.js +85 -0
- package/dist/src/project/tracked.js +1 -0
- package/dist/src/queue/apply.js +270 -0
- package/dist/src/queue/attribute.js +159 -0
- package/dist/src/queue/baseline.js +409 -0
- package/dist/src/queue/capture.js +298 -0
- package/dist/src/queue/changes.js +234 -0
- package/dist/src/queue/index.js +50 -0
- package/dist/src/queue/manifest.js +341 -0
- package/dist/src/queue/operations.js +454 -0
- package/dist/src/queue/placement.js +220 -0
- package/dist/src/queue/queue.js +359 -0
- package/dist/src/queue/restore.js +103 -0
- package/dist/src/queue/session.js +685 -0
- package/dist/src/queue/status.js +137 -0
- package/dist/src/register/files.js +39 -0
- package/dist/src/register/index.js +8 -0
- package/dist/src/register/js.js +217 -0
- package/dist/src/register/register.js +359 -0
- package/dist/src/register/wire.js +146 -0
- package/dist/src/source/adopt.js +99 -0
- package/dist/src/source/changes.js +132 -0
- package/dist/src/source/edit.js +278 -0
- package/dist/src/source/export.js +70 -0
- package/dist/src/source/groups.js +131 -0
- package/dist/src/source/index.js +20 -0
- package/dist/src/source/materialize.js +382 -0
- package/dist/src/source/merge.js +255 -0
- package/dist/src/source/objects.js +102 -0
- package/dist/src/source/previous.js +166 -0
- package/dist/src/source/records.js +138 -0
- package/dist/src/source/refresh.js +264 -0
- package/dist/src/source/tree.js +337 -0
- package/dist/src/syntax/css.js +215 -0
- package/dist/src/syntax/fragments.js +63 -0
- package/dist/src/syntax/index.js +10 -0
- package/dist/src/syntax/js.js +270 -0
- package/dist/src/test/classify.js +826 -0
- package/dist/src/test/control.js +236 -0
- package/dist/src/test/host.js +266 -0
- package/dist/src/test/index.js +11 -0
- package/dist/src/test/plan.js +347 -0
- package/dist/src/test/rawLog.js +138 -0
- package/dist/src/test/run.js +404 -0
- package/dist/src/test/verdict.js +420 -0
- package/dist/src/test/xpcshell.js +143 -0
- package/dist/src/tokens/add.js +304 -0
- package/dist/src/tokens/coverage.js +65 -0
- package/dist/src/tokens/css.js +58 -0
- package/dist/src/tokens/index.js +12 -0
- package/dist/src/tokens/lint.js +96 -0
- package/dist/src/tokens/model.js +118 -0
- package/dist/src/tokens/settings.js +87 -0
- package/dist/src/tokens/siblings.js +104 -0
- package/dist/src/typecheck/explain.js +123 -0
- package/dist/src/typecheck/index.js +8 -0
- package/dist/src/typecheck/typecheck.js +332 -0
- package/docs/README.md +23 -28
- package/docs/authoring.md +97 -0
- package/docs/configuration.md +307 -766
- package/docs/exit-codes.md +76 -94
- package/docs/furnace.md +111 -221
- package/docs/gate.md +205 -0
- package/docs/getting-started.md +165 -0
- package/docs/machine-output.md +201 -290
- package/docs/migrating.md +261 -0
- package/docs/patch-workflow.md +159 -723
- package/docs/quality.md +220 -0
- package/docs/source-workflow.md +228 -0
- package/docs/testing.md +101 -719
- package/docs/workspaces.md +187 -0
- package/package.json +22 -30
- package/templates/configs/common.mozconfig +8 -2
- package/templates/configs/darwin.mozconfig +6 -7
- package/templates/configs/linux.mozconfig +5 -8
- package/templates/configs/win32.mozconfig +3 -9
- package/dist/bin/fireforge.d.ts +0 -9
- package/dist/src/cli-usage-error.d.ts +0 -46
- package/dist/src/cli-usage-error.js +0 -81
- package/dist/src/cli.d.ts +0 -41
- package/dist/src/cli.js +0 -380
- package/dist/src/commands/bootstrap-checks.d.ts +0 -16
- package/dist/src/commands/bootstrap-checks.js +0 -66
- package/dist/src/commands/bootstrap.d.ts +0 -10
- package/dist/src/commands/build-prelock.d.ts +0 -20
- package/dist/src/commands/build-prelock.js +0 -50
- package/dist/src/commands/build.d.ts +0 -13
- package/dist/src/commands/check-report.d.ts +0 -41
- package/dist/src/commands/check-report.js +0 -98
- package/dist/src/commands/check-run.d.ts +0 -44
- package/dist/src/commands/check-run.js +0 -125
- package/dist/src/commands/check-steps.d.ts +0 -75
- package/dist/src/commands/check-steps.js +0 -200
- package/dist/src/commands/check.d.ts +0 -32
- package/dist/src/commands/config.d.ts +0 -13
- package/dist/src/commands/declarations-report.d.ts +0 -49
- package/dist/src/commands/declarations-report.js +0 -83
- package/dist/src/commands/destructive-decision.d.ts +0 -19
- package/dist/src/commands/destructive-decision.js +0 -31
- package/dist/src/commands/discard.d.ts +0 -12
- package/dist/src/commands/doctor-check-core.d.ts +0 -110
- package/dist/src/commands/doctor-check-core.js +0 -24
- package/dist/src/commands/doctor-engine-eslint.d.ts +0 -3
- package/dist/src/commands/doctor-engine-eslint.js +0 -17
- package/dist/src/commands/doctor-external-toolchains.d.ts +0 -3
- package/dist/src/commands/doctor-external-toolchains.js +0 -56
- package/dist/src/commands/doctor-furnace-config-sync.d.ts +0 -18
- package/dist/src/commands/doctor-furnace-config-sync.js +0 -295
- package/dist/src/commands/doctor-furnace-jar.d.ts +0 -14
- package/dist/src/commands/doctor-furnace-jar.js +0 -44
- package/dist/src/commands/doctor-furnace.d.ts +0 -8
- package/dist/src/commands/doctor-furnace.js +0 -514
- package/dist/src/commands/doctor-macos-sdk.d.ts +0 -8
- package/dist/src/commands/doctor-macos-sdk.js +0 -158
- package/dist/src/commands/doctor-orphaned-harness.d.ts +0 -41
- package/dist/src/commands/doctor-orphaned-harness.js +0 -98
- package/dist/src/commands/doctor-patch-manifest.d.ts +0 -9
- package/dist/src/commands/doctor-patch-manifest.js +0 -156
- package/dist/src/commands/doctor-post-rebase-audit.d.ts +0 -2
- package/dist/src/commands/doctor-post-rebase-audit.js +0 -108
- package/dist/src/commands/doctor-source-pin.d.ts +0 -29
- package/dist/src/commands/doctor-source-pin.js +0 -91
- package/dist/src/commands/doctor-working-tree.d.ts +0 -27
- package/dist/src/commands/doctor-working-tree.js +0 -89
- package/dist/src/commands/doctor.d.ts +0 -49
- package/dist/src/commands/download.d.ts +0 -11
- package/dist/src/commands/export-adopt-check.d.ts +0 -37
- package/dist/src/commands/export-adopt-check.js +0 -97
- package/dist/src/commands/export-all.d.ts +0 -11
- package/dist/src/commands/export-all.js +0 -361
- package/dist/src/commands/export-flow.d.ts +0 -124
- package/dist/src/commands/export-flow.js +0 -423
- package/dist/src/commands/export-placement-conflicts.d.ts +0 -17
- package/dist/src/commands/export-placement-conflicts.js +0 -75
- package/dist/src/commands/export-placement-gate.d.ts +0 -42
- package/dist/src/commands/export-placement-gate.js +0 -107
- package/dist/src/commands/export-placement-policy.d.ts +0 -22
- package/dist/src/commands/export-placement-policy.js +0 -54
- package/dist/src/commands/export-shared.d.ts +0 -152
- package/dist/src/commands/export-shared.js +0 -396
- package/dist/src/commands/export-staged-registration.d.ts +0 -46
- package/dist/src/commands/export-staged-registration.js +0 -91
- package/dist/src/commands/export.d.ts +0 -13
- package/dist/src/commands/forward-import-remedy.d.ts +0 -31
- package/dist/src/commands/forward-import-remedy.js +0 -62
- package/dist/src/commands/furnace/apply.d.ts +0 -8
- package/dist/src/commands/furnace/apply.js +0 -327
- package/dist/src/commands/furnace/authoring-config.d.ts +0 -13
- package/dist/src/commands/furnace/authoring-config.js +0 -19
- package/dist/src/commands/furnace/chrome-doc-remove.d.ts +0 -14
- package/dist/src/commands/furnace/chrome-doc-remove.js +0 -148
- package/dist/src/commands/furnace/chrome-doc-templates.d.ts +0 -152
- package/dist/src/commands/furnace/chrome-doc-templates.js +0 -331
- package/dist/src/commands/furnace/chrome-doc-tests.d.ts +0 -23
- package/dist/src/commands/furnace/chrome-doc-tests.js +0 -148
- package/dist/src/commands/furnace/chrome-doc.d.ts +0 -87
- package/dist/src/commands/furnace/chrome-doc.js +0 -365
- package/dist/src/commands/furnace/create-browser-test.d.ts +0 -44
- package/dist/src/commands/furnace/create-browser-test.js +0 -179
- package/dist/src/commands/furnace/create-dry-run.d.ts +0 -49
- package/dist/src/commands/furnace/create-dry-run.js +0 -107
- package/dist/src/commands/furnace/create-features.d.ts +0 -24
- package/dist/src/commands/furnace/create-features.js +0 -55
- package/dist/src/commands/furnace/create-mochikit.d.ts +0 -29
- package/dist/src/commands/furnace/create-mochikit.js +0 -75
- package/dist/src/commands/furnace/create-readback.d.ts +0 -22
- package/dist/src/commands/furnace/create-readback.js +0 -32
- package/dist/src/commands/furnace/create-templates.d.ts +0 -119
- package/dist/src/commands/furnace/create-templates.js +0 -283
- package/dist/src/commands/furnace/create-validation.d.ts +0 -6
- package/dist/src/commands/furnace/create-validation.js +0 -59
- package/dist/src/commands/furnace/create-xpcshell.d.ts +0 -27
- package/dist/src/commands/furnace/create-xpcshell.js +0 -80
- package/dist/src/commands/furnace/create.d.ts +0 -24
- package/dist/src/commands/furnace/create.js +0 -407
- package/dist/src/commands/furnace/deploy-fragment-includers.d.ts +0 -59
- package/dist/src/commands/furnace/deploy-fragment-includers.js +0 -120
- package/dist/src/commands/furnace/deploy-named.d.ts +0 -48
- package/dist/src/commands/furnace/deploy-named.js +0 -107
- package/dist/src/commands/furnace/deploy.d.ts +0 -9
- package/dist/src/commands/furnace/deploy.js +0 -229
- package/dist/src/commands/furnace/diff.d.ts +0 -11
- package/dist/src/commands/furnace/diff.js +0 -238
- package/dist/src/commands/furnace/index.d.ts +0 -4
- package/dist/src/commands/furnace/index.js +0 -283
- package/dist/src/commands/furnace/init.d.ts +0 -11
- package/dist/src/commands/furnace/init.js +0 -287
- package/dist/src/commands/furnace/list.d.ts +0 -8
- package/dist/src/commands/furnace/list.js +0 -104
- package/dist/src/commands/furnace/override.d.ts +0 -16
- package/dist/src/commands/furnace/override.js +0 -454
- package/dist/src/commands/furnace/preview.d.ts +0 -19
- package/dist/src/commands/furnace/preview.js +0 -349
- package/dist/src/commands/furnace/refresh.d.ts +0 -10
- package/dist/src/commands/furnace/refresh.js +0 -303
- package/dist/src/commands/furnace/remove-mutations.d.ts +0 -36
- package/dist/src/commands/furnace/remove-mutations.js +0 -168
- package/dist/src/commands/furnace/remove-state.d.ts +0 -20
- package/dist/src/commands/furnace/remove-state.js +0 -60
- package/dist/src/commands/furnace/remove.d.ts +0 -8
- package/dist/src/commands/furnace/remove.js +0 -415
- package/dist/src/commands/furnace/rename-browser-test.d.ts +0 -2
- package/dist/src/commands/furnace/rename-browser-test.js +0 -68
- package/dist/src/commands/furnace/rename-dry-run.d.ts +0 -29
- package/dist/src/commands/furnace/rename-dry-run.js +0 -127
- package/dist/src/commands/furnace/rename-helpers.d.ts +0 -26
- package/dist/src/commands/furnace/rename-helpers.js +0 -85
- package/dist/src/commands/furnace/rename-registrations.d.ts +0 -41
- package/dist/src/commands/furnace/rename-registrations.js +0 -98
- package/dist/src/commands/furnace/rename-xpcshell.d.ts +0 -32
- package/dist/src/commands/furnace/rename-xpcshell.js +0 -95
- package/dist/src/commands/furnace/rename.d.ts +0 -6
- package/dist/src/commands/furnace/rename.js +0 -400
- package/dist/src/commands/furnace/scan.d.ts +0 -14
- package/dist/src/commands/furnace/scan.js +0 -192
- package/dist/src/commands/furnace/status.d.ts +0 -7
- package/dist/src/commands/furnace/status.js +0 -209
- package/dist/src/commands/furnace/sync.d.ts +0 -12
- package/dist/src/commands/furnace/sync.js +0 -145
- package/dist/src/commands/furnace/test-file-name.d.ts +0 -28
- package/dist/src/commands/furnace/test-file-name.js +0 -39
- package/dist/src/commands/furnace/validate-report.d.ts +0 -45
- package/dist/src/commands/furnace/validate-report.js +0 -91
- package/dist/src/commands/furnace/validate.d.ts +0 -8
- package/dist/src/commands/furnace/validate.js +0 -309
- package/dist/src/commands/furnace/validation-output.d.ts +0 -47
- package/dist/src/commands/furnace/validation-output.js +0 -161
- package/dist/src/commands/import.d.ts +0 -11
- package/dist/src/commands/lint-per-patch.d.ts +0 -10
- package/dist/src/commands/lint-per-patch.js +0 -428
- package/dist/src/commands/lint-per-run-checkjs.d.ts +0 -66
- package/dist/src/commands/lint-per-run-checkjs.js +0 -102
- package/dist/src/commands/lint-report.d.ts +0 -25
- package/dist/src/commands/lint-report.js +0 -76
- package/dist/src/commands/lint.d.ts +0 -47
- package/dist/src/commands/manifest.d.ts +0 -38
- package/dist/src/commands/manifest.js +0 -68
- package/dist/src/commands/package.d.ts +0 -11
- package/dist/src/commands/park.d.ts +0 -22
- package/dist/src/commands/park.js +0 -232
- package/dist/src/commands/patch/body.d.ts +0 -29
- package/dist/src/commands/patch/body.js +0 -60
- package/dist/src/commands/patch/compact.d.ts +0 -28
- package/dist/src/commands/patch/compact.js +0 -208
- package/dist/src/commands/patch/delete-gap-notice.d.ts +0 -24
- package/dist/src/commands/patch/delete-gap-notice.js +0 -48
- package/dist/src/commands/patch/delete.d.ts +0 -28
- package/dist/src/commands/patch/delete.js +0 -131
- package/dist/src/commands/patch/entry-projection.d.ts +0 -13
- package/dist/src/commands/patch/entry-projection.js +0 -24
- package/dist/src/commands/patch/index.d.ts +0 -16
- package/dist/src/commands/patch/index.js +0 -54
- package/dist/src/commands/patch/lint-ignore-from.d.ts +0 -43
- package/dist/src/commands/patch/lint-ignore-from.js +0 -141
- package/dist/src/commands/patch/lint-ignore.d.ts +0 -42
- package/dist/src/commands/patch/lint-ignore.js +0 -263
- package/dist/src/commands/patch/move-files-adopt.d.ts +0 -33
- package/dist/src/commands/patch/move-files-adopt.js +0 -65
- package/dist/src/commands/patch/move-files-create.d.ts +0 -19
- package/dist/src/commands/patch/move-files-create.js +0 -187
- package/dist/src/commands/patch/move-files-into.d.ts +0 -65
- package/dist/src/commands/patch/move-files-into.js +0 -325
- package/dist/src/commands/patch/move-files-retire.d.ts +0 -39
- package/dist/src/commands/patch/move-files-retire.js +0 -91
- package/dist/src/commands/patch/move-files.d.ts +0 -28
- package/dist/src/commands/patch/move-files.js +0 -224
- package/dist/src/commands/patch/move-size-tier.d.ts +0 -27
- package/dist/src/commands/patch/move-size-tier.js +0 -66
- package/dist/src/commands/patch/patch-context.d.ts +0 -40
- package/dist/src/commands/patch/patch-context.js +0 -51
- package/dist/src/commands/patch/removal-created-files.d.ts +0 -48
- package/dist/src/commands/patch/removal-created-files.js +0 -83
- package/dist/src/commands/patch/removal-dependents.d.ts +0 -63
- package/dist/src/commands/patch/removal-dependents.js +0 -133
- package/dist/src/commands/patch/rename.d.ts +0 -35
- package/dist/src/commands/patch/rename.js +0 -378
- package/dist/src/commands/patch/reorder-projection.d.ts +0 -17
- package/dist/src/commands/patch/reorder-projection.js +0 -49
- package/dist/src/commands/patch/reorder-shift.d.ts +0 -30
- package/dist/src/commands/patch/reorder-shift.js +0 -307
- package/dist/src/commands/patch/reorder.d.ts +0 -34
- package/dist/src/commands/patch/reorder.js +0 -375
- package/dist/src/commands/patch/reserve.d.ts +0 -33
- package/dist/src/commands/patch/reserve.js +0 -152
- package/dist/src/commands/patch/retire.d.ts +0 -34
- package/dist/src/commands/patch/retire.js +0 -133
- package/dist/src/commands/patch/split-plan.d.ts +0 -125
- package/dist/src/commands/patch/split-plan.js +0 -313
- package/dist/src/commands/patch/split-staged.d.ts +0 -108
- package/dist/src/commands/patch/split-staged.js +0 -202
- package/dist/src/commands/patch/split.d.ts +0 -43
- package/dist/src/commands/patch/split.js +0 -367
- package/dist/src/commands/patch/stage.d.ts +0 -34
- package/dist/src/commands/patch/stage.js +0 -153
- package/dist/src/commands/patch/staged-dependency-batch.d.ts +0 -48
- package/dist/src/commands/patch/staged-dependency-batch.js +0 -176
- package/dist/src/commands/patch/staged-dependency-entries.d.ts +0 -44
- package/dist/src/commands/patch/staged-dependency-entries.js +0 -80
- package/dist/src/commands/patch/staged-dependency-from.d.ts +0 -14
- package/dist/src/commands/patch/staged-dependency-from.js +0 -114
- package/dist/src/commands/patch/staged-dependency-remove.d.ts +0 -53
- package/dist/src/commands/patch/staged-dependency-remove.js +0 -114
- package/dist/src/commands/patch/staged-dependency-validate.d.ts +0 -27
- package/dist/src/commands/patch/staged-dependency-validate.js +0 -78
- package/dist/src/commands/patch/staged-dependency.d.ts +0 -22
- package/dist/src/commands/patch/staged-dependency.js +0 -251
- package/dist/src/commands/patch/tier.d.ts +0 -34
- package/dist/src/commands/patch/tier.js +0 -125
- package/dist/src/commands/patch-rename-map.d.ts +0 -30
- package/dist/src/commands/patch-rename-map.js +0 -54
- package/dist/src/commands/pending-resolution.d.ts +0 -15
- package/dist/src/commands/pending-resolution.js +0 -25
- package/dist/src/commands/re-export-adjacent-registrations.d.ts +0 -20
- package/dist/src/commands/re-export-adjacent-registrations.js +0 -75
- package/dist/src/commands/re-export-adjacent.d.ts +0 -111
- package/dist/src/commands/re-export-adjacent.js +0 -285
- package/dist/src/commands/re-export-bulk-scan.d.ts +0 -19
- package/dist/src/commands/re-export-bulk-scan.js +0 -233
- package/dist/src/commands/re-export-drift.d.ts +0 -110
- package/dist/src/commands/re-export-drift.js +0 -358
- package/dist/src/commands/re-export-each.d.ts +0 -46
- package/dist/src/commands/re-export-each.js +0 -110
- package/dist/src/commands/re-export-files.d.ts +0 -15
- package/dist/src/commands/re-export-files.js +0 -307
- package/dist/src/commands/re-export-hunks.d.ts +0 -37
- package/dist/src/commands/re-export-hunks.js +0 -264
- package/dist/src/commands/re-export-lint.d.ts +0 -137
- package/dist/src/commands/re-export-lint.js +0 -303
- package/dist/src/commands/re-export-options.d.ts +0 -29
- package/dist/src/commands/re-export-options.js +0 -192
- package/dist/src/commands/re-export-preflight.d.ts +0 -23
- package/dist/src/commands/re-export-preflight.js +0 -159
- package/dist/src/commands/re-export-purity-scope.d.ts +0 -18
- package/dist/src/commands/re-export-purity-scope.js +0 -137
- package/dist/src/commands/re-export-register.d.ts +0 -12
- package/dist/src/commands/re-export-register.js +0 -99
- package/dist/src/commands/re-export-removed.d.ts +0 -15
- package/dist/src/commands/re-export-removed.js +0 -94
- package/dist/src/commands/re-export-retired-declarations.d.ts +0 -22
- package/dist/src/commands/re-export-retired-declarations.js +0 -113
- package/dist/src/commands/re-export-scan-owner.d.ts +0 -44
- package/dist/src/commands/re-export-scan-owner.js +0 -116
- package/dist/src/commands/re-export-scan.d.ts +0 -72
- package/dist/src/commands/re-export-scan.js +0 -265
- package/dist/src/commands/re-export-single.d.ts +0 -53
- package/dist/src/commands/re-export-single.js +0 -426
- package/dist/src/commands/re-export-stale-registrations.d.ts +0 -39
- package/dist/src/commands/re-export-stale-registrations.js +0 -106
- package/dist/src/commands/re-export-summary.d.ts +0 -44
- package/dist/src/commands/re-export-summary.js +0 -59
- package/dist/src/commands/re-export.d.ts +0 -8
- package/dist/src/commands/rebase/abort.d.ts +0 -7
- package/dist/src/commands/rebase/abort.js +0 -67
- package/dist/src/commands/rebase/confirm.d.ts +0 -42
- package/dist/src/commands/rebase/confirm.js +0 -36
- package/dist/src/commands/rebase/conflict-summary.d.ts +0 -12
- package/dist/src/commands/rebase/conflict-summary.js +0 -37
- package/dist/src/commands/rebase/continue.d.ts +0 -7
- package/dist/src/commands/rebase/continue.js +0 -119
- package/dist/src/commands/rebase/index.d.ts +0 -22
- package/dist/src/commands/rebase/index.js +0 -209
- package/dist/src/commands/rebase/patch-loop.d.ts +0 -15
- package/dist/src/commands/rebase/patch-loop.js +0 -289
- package/dist/src/commands/rebase/summary.d.ts +0 -8
- package/dist/src/commands/rebase/summary.js +0 -47
- package/dist/src/commands/register.d.ts +0 -13
- package/dist/src/commands/reset.d.ts +0 -11
- package/dist/src/commands/resolve.d.ts +0 -36
- package/dist/src/commands/run.d.ts +0 -10
- package/dist/src/commands/setup-support.d.ts +0 -35
- package/dist/src/commands/setup-support.js +0 -386
- package/dist/src/commands/setup.d.ts +0 -11
- package/dist/src/commands/source.d.ts +0 -9
- package/dist/src/commands/source.js +0 -120
- package/dist/src/commands/status-check.d.ts +0 -87
- package/dist/src/commands/status-check.js +0 -161
- package/dist/src/commands/status-json.d.ts +0 -45
- package/dist/src/commands/status-json.js +0 -97
- package/dist/src/commands/status-output.d.ts +0 -23
- package/dist/src/commands/status-output.js +0 -231
- package/dist/src/commands/status-ownership.d.ts +0 -54
- package/dist/src/commands/status-ownership.js +0 -59
- package/dist/src/commands/status-scope.d.ts +0 -37
- package/dist/src/commands/status-scope.js +0 -54
- package/dist/src/commands/status.d.ts +0 -11
- package/dist/src/commands/test-appdir.d.ts +0 -6
- package/dist/src/commands/test-appdir.js +0 -29
- package/dist/src/commands/test-browser-preflight.d.ts +0 -28
- package/dist/src/commands/test-browser-preflight.js +0 -197
- package/dist/src/commands/test-build-furnace.d.ts +0 -21
- package/dist/src/commands/test-build-furnace.js +0 -53
- package/dist/src/commands/test-build-phase.d.ts +0 -34
- package/dist/src/commands/test-build-phase.js +0 -291
- package/dist/src/commands/test-checkjs.d.ts +0 -3
- package/dist/src/commands/test-checkjs.js +0 -35
- package/dist/src/commands/test-control-restore.d.ts +0 -40
- package/dist/src/commands/test-control-restore.js +0 -86
- package/dist/src/commands/test-diagnose.d.ts +0 -23
- package/dist/src/commands/test-diagnose.js +0 -317
- package/dist/src/commands/test-dispatch.d.ts +0 -39
- package/dist/src/commands/test-dispatch.js +0 -281
- package/dist/src/commands/test-furnace-reach.d.ts +0 -37
- package/dist/src/commands/test-furnace-reach.js +0 -132
- package/dist/src/commands/test-harness-env.d.ts +0 -23
- package/dist/src/commands/test-harness-env.js +0 -81
- package/dist/src/commands/test-harness-teardown.d.ts +0 -62
- package/dist/src/commands/test-harness-teardown.js +0 -128
- package/dist/src/commands/test-modes.d.ts +0 -57
- package/dist/src/commands/test-modes.js +0 -158
- package/dist/src/commands/test-multi-verdict.d.ts +0 -61
- package/dist/src/commands/test-multi-verdict.js +0 -112
- package/dist/src/commands/test-orchestrate.d.ts +0 -70
- package/dist/src/commands/test-orchestrate.js +0 -277
- package/dist/src/commands/test-perf-scope.d.ts +0 -50
- package/dist/src/commands/test-perf-scope.js +0 -138
- package/dist/src/commands/test-prelock.d.ts +0 -61
- package/dist/src/commands/test-prelock.js +0 -301
- package/dist/src/commands/test-register.d.ts +0 -4
- package/dist/src/commands/test-register.js +0 -181
- package/dist/src/commands/test-results.d.ts +0 -71
- package/dist/src/commands/test-results.js +0 -79
- package/dist/src/commands/test-run.d.ts +0 -89
- package/dist/src/commands/test-run.js +0 -251
- package/dist/src/commands/test-shards.d.ts +0 -114
- package/dist/src/commands/test-shards.js +0 -272
- package/dist/src/commands/test-stale-gate.d.ts +0 -56
- package/dist/src/commands/test-stale-gate.js +0 -208
- package/dist/src/commands/test-verdict.d.ts +0 -102
- package/dist/src/commands/test-verdict.js +0 -176
- package/dist/src/commands/test.d.ts +0 -22
- package/dist/src/commands/token-coverage.d.ts +0 -5
- package/dist/src/commands/token-coverage.js +0 -170
- package/dist/src/commands/token-lint.d.ts +0 -14
- package/dist/src/commands/token-lint.js +0 -151
- package/dist/src/commands/token-list.d.ts +0 -26
- package/dist/src/commands/token-list.js +0 -153
- package/dist/src/commands/token.d.ts +0 -14
- package/dist/src/commands/tree.d.ts +0 -19
- package/dist/src/commands/tree.js +0 -341
- package/dist/src/commands/typecheck-explain.d.ts +0 -13
- package/dist/src/commands/typecheck-explain.js +0 -100
- package/dist/src/commands/typecheck.d.ts +0 -61
- package/dist/src/commands/verify-scope.d.ts +0 -28
- package/dist/src/commands/verify-scope.js +0 -67
- package/dist/src/commands/verify.d.ts +0 -58
- package/dist/src/commands/watch.d.ts +0 -9
- package/dist/src/commands/wire.d.ts +0 -13
- package/dist/src/core/ast-utils.d.ts +0 -73
- package/dist/src/core/ast-utils.js +0 -105
- package/dist/src/core/brand-validation.d.ts +0 -7
- package/dist/src/core/brand-validation.js +0 -14
- package/dist/src/core/branding.d.ts +0 -86
- package/dist/src/core/branding.js +0 -371
- package/dist/src/core/browser-wire.d.ts +0 -48
- package/dist/src/core/browser-wire.js +0 -133
- package/dist/src/core/build-audit-platform.d.ts +0 -67
- package/dist/src/core/build-audit-platform.js +0 -373
- package/dist/src/core/build-audit-registration.d.ts +0 -80
- package/dist/src/core/build-audit-registration.js +0 -181
- package/dist/src/core/build-audit-resolve.d.ts +0 -78
- package/dist/src/core/build-audit-resolve.js +0 -240
- package/dist/src/core/build-audit-skip.d.ts +0 -57
- package/dist/src/core/build-audit-skip.js +0 -112
- package/dist/src/core/build-audit-transforms.d.ts +0 -23
- package/dist/src/core/build-audit-transforms.js +0 -92
- package/dist/src/core/build-audit.d.ts +0 -93
- package/dist/src/core/build-audit.js +0 -633
- package/dist/src/core/build-baseline-types.d.ts +0 -225
- package/dist/src/core/build-baseline-types.js +0 -10
- package/dist/src/core/build-baseline-validate.d.ts +0 -32
- package/dist/src/core/build-baseline-validate.js +0 -173
- package/dist/src/core/build-baseline.d.ts +0 -103
- package/dist/src/core/build-baseline.js +0 -261
- package/dist/src/core/build-jar-escalation.d.ts +0 -61
- package/dist/src/core/build-jar-escalation.js +0 -125
- package/dist/src/core/build-overwrite-guard.d.ts +0 -92
- package/dist/src/core/build-overwrite-guard.js +0 -235
- package/dist/src/core/build-prepare.d.ts +0 -83
- package/dist/src/core/build-prepare.js +0 -414
- package/dist/src/core/build-run-record.d.ts +0 -74
- package/dist/src/core/build-run-record.js +0 -136
- package/dist/src/core/checkjs-support-heads.d.ts +0 -41
- package/dist/src/core/checkjs-support-heads.js +0 -104
- package/dist/src/core/component-source-guard.d.ts +0 -20
- package/dist/src/core/component-source-guard.js +0 -68
- package/dist/src/core/config-mutate.d.ts +0 -16
- package/dist/src/core/config-mutate.js +0 -76
- package/dist/src/core/config-paths.d.ts +0 -16
- package/dist/src/core/config-paths.js +0 -106
- package/dist/src/core/config-state.d.ts +0 -16
- package/dist/src/core/config-state.js +0 -141
- package/dist/src/core/config-validate-build-audit.d.ts +0 -8
- package/dist/src/core/config-validate-build-audit.js +0 -80
- package/dist/src/core/config-validate-check.d.ts +0 -8
- package/dist/src/core/config-validate-check.js +0 -219
- package/dist/src/core/config-validate-file-size.d.ts +0 -15
- package/dist/src/core/config-validate-file-size.js +0 -154
- package/dist/src/core/config-validate-history.d.ts +0 -11
- package/dist/src/core/config-validate-history.js +0 -38
- package/dist/src/core/config-validate-patch-policy.d.ts +0 -7
- package/dist/src/core/config-validate-patch-policy.js +0 -284
- package/dist/src/core/config-validate-test-toolchains.d.ts +0 -8
- package/dist/src/core/config-validate-test-toolchains.js +0 -133
- package/dist/src/core/config-validate-token-scales.d.ts +0 -9
- package/dist/src/core/config-validate-token-scales.js +0 -125
- package/dist/src/core/config-validate.d.ts +0 -11
- package/dist/src/core/config-validate.js +0 -509
- package/dist/src/core/config.d.ts +0 -92
- package/dist/src/core/config.js +0 -169
- package/dist/src/core/coverage-dispatch.d.ts +0 -24
- package/dist/src/core/coverage-dispatch.js +0 -44
- package/dist/src/core/coverage-extend.d.ts +0 -89
- package/dist/src/core/coverage-extend.js +0 -239
- package/dist/src/core/coverage-records.d.ts +0 -107
- package/dist/src/core/coverage-records.js +0 -383
- package/dist/src/core/destructive.d.ts +0 -144
- package/dist/src/core/destructive.js +0 -182
- package/dist/src/core/dev-profile.d.ts +0 -28
- package/dist/src/core/dev-profile.js +0 -58
- package/dist/src/core/diff-hunks.d.ts +0 -73
- package/dist/src/core/diff-hunks.js +0 -286
- package/dist/src/core/discard-baseline.d.ts +0 -60
- package/dist/src/core/discard-baseline.js +0 -247
- package/dist/src/core/display-state.d.ts +0 -50
- package/dist/src/core/display-state.js +0 -87
- package/dist/src/core/engine-changes.d.ts +0 -40
- package/dist/src/core/engine-changes.js +0 -95
- package/dist/src/core/engine-precondition.d.ts +0 -42
- package/dist/src/core/engine-precondition.js +0 -60
- package/dist/src/core/engine-session-lock.d.ts +0 -119
- package/dist/src/core/engine-session-lock.js +0 -374
- package/dist/src/core/engine-write-boundary.d.ts +0 -5
- package/dist/src/core/engine-write-boundary.js +0 -41
- package/dist/src/core/export-moved-code-shape.d.ts +0 -98
- package/dist/src/core/export-moved-code-shape.js +0 -220
- package/dist/src/core/file-lock-owner.d.ts +0 -103
- package/dist/src/core/file-lock-owner.js +0 -259
- package/dist/src/core/file-lock-queue.d.ts +0 -67
- package/dist/src/core/file-lock-queue.js +0 -219
- package/dist/src/core/file-lock-shared.d.ts +0 -57
- package/dist/src/core/file-lock-shared.js +0 -117
- package/dist/src/core/file-lock.d.ts +0 -143
- package/dist/src/core/file-lock.js +0 -531
- package/dist/src/core/firefox-archive.d.ts +0 -45
- package/dist/src/core/firefox-archive.js +0 -96
- package/dist/src/core/firefox-cache.d.ts +0 -30
- package/dist/src/core/firefox-cache.js +0 -248
- package/dist/src/core/firefox-download.d.ts +0 -30
- package/dist/src/core/firefox-download.js +0 -152
- package/dist/src/core/firefox-extract.d.ts +0 -42
- package/dist/src/core/firefox-extract.js +0 -248
- package/dist/src/core/firefox-ignorefile.d.ts +0 -17
- package/dist/src/core/firefox-ignorefile.js +0 -30
- package/dist/src/core/firefox.d.ts +0 -66
- package/dist/src/core/firefox.js +0 -121
- package/dist/src/core/forward-registrations.d.ts +0 -33
- package/dist/src/core/forward-registrations.js +0 -16
- package/dist/src/core/furnace-apply-dry-run.d.ts +0 -12
- package/dist/src/core/furnace-apply-dry-run.js +0 -99
- package/dist/src/core/furnace-apply-ftl.d.ts +0 -49
- package/dist/src/core/furnace-apply-ftl.js +0 -210
- package/dist/src/core/furnace-apply-helpers.d.ts +0 -106
- package/dist/src/core/furnace-apply-helpers.js +0 -436
- package/dist/src/core/furnace-apply-output.d.ts +0 -36
- package/dist/src/core/furnace-apply-output.js +0 -111
- package/dist/src/core/furnace-apply-overwrite-warn.d.ts +0 -67
- package/dist/src/core/furnace-apply-overwrite-warn.js +0 -131
- package/dist/src/core/furnace-apply-undeploy-actions.d.ts +0 -10
- package/dist/src/core/furnace-apply-undeploy-actions.js +0 -48
- package/dist/src/core/furnace-apply.d.ts +0 -49
- package/dist/src/core/furnace-apply.js +0 -465
- package/dist/src/core/furnace-checksum-utils.d.ts +0 -25
- package/dist/src/core/furnace-checksum-utils.js +0 -54
- package/dist/src/core/furnace-composed-source.d.ts +0 -76
- package/dist/src/core/furnace-composed-source.js +0 -167
- package/dist/src/core/furnace-config-array-utils.d.ts +0 -11
- package/dist/src/core/furnace-config-array-utils.js +0 -26
- package/dist/src/core/furnace-config-custom.d.ts +0 -15
- package/dist/src/core/furnace-config-custom.js +0 -73
- package/dist/src/core/furnace-config-order.d.ts +0 -8
- package/dist/src/core/furnace-config-order.js +0 -90
- package/dist/src/core/furnace-config-tokens.d.ts +0 -17
- package/dist/src/core/furnace-config-tokens.js +0 -42
- package/dist/src/core/furnace-config-validate-exceptions.d.ts +0 -17
- package/dist/src/core/furnace-config-validate-exceptions.js +0 -122
- package/dist/src/core/furnace-config-validate.d.ts +0 -32
- package/dist/src/core/furnace-config-validate.js +0 -167
- package/dist/src/core/furnace-config.d.ts +0 -139
- package/dist/src/core/furnace-config.js +0 -511
- package/dist/src/core/furnace-constants.d.ts +0 -81
- package/dist/src/core/furnace-constants.js +0 -125
- package/dist/src/core/furnace-css-fragments.d.ts +0 -96
- package/dist/src/core/furnace-css-fragments.js +0 -279
- package/dist/src/core/furnace-deploy-owner.d.ts +0 -29
- package/dist/src/core/furnace-deploy-owner.js +0 -116
- package/dist/src/core/furnace-dir-entry.d.ts +0 -20
- package/dist/src/core/furnace-dir-entry.js +0 -21
- package/dist/src/core/furnace-fragment-includers.d.ts +0 -56
- package/dist/src/core/furnace-fragment-includers.js +0 -122
- package/dist/src/core/furnace-graph-utils.d.ts +0 -11
- package/dist/src/core/furnace-graph-utils.js +0 -93
- package/dist/src/core/furnace-jsconfig.d.ts +0 -87
- package/dist/src/core/furnace-jsconfig.js +0 -248
- package/dist/src/core/furnace-marker.d.ts +0 -15
- package/dist/src/core/furnace-marker.js +0 -21
- package/dist/src/core/furnace-operation.d.ts +0 -195
- package/dist/src/core/furnace-operation.js +0 -444
- package/dist/src/core/furnace-precondition.d.ts +0 -61
- package/dist/src/core/furnace-precondition.js +0 -67
- package/dist/src/core/furnace-refresh.d.ts +0 -28
- package/dist/src/core/furnace-refresh.js +0 -125
- package/dist/src/core/furnace-registration-ast.d.ts +0 -53
- package/dist/src/core/furnace-registration-ast.js +0 -402
- package/dist/src/core/furnace-registration-jar-inplace.d.ts +0 -12
- package/dist/src/core/furnace-registration-jar-inplace.js +0 -79
- package/dist/src/core/furnace-registration-remove.d.ts +0 -56
- package/dist/src/core/furnace-registration-remove.js +0 -260
- package/dist/src/core/furnace-registration-rename.d.ts +0 -26
- package/dist/src/core/furnace-registration-rename.js +0 -77
- package/dist/src/core/furnace-registration-validate.d.ts +0 -53
- package/dist/src/core/furnace-registration-validate.js +0 -110
- package/dist/src/core/furnace-registration.d.ts +0 -112
- package/dist/src/core/furnace-registration.js +0 -348
- package/dist/src/core/furnace-rollback.d.ts +0 -48
- package/dist/src/core/furnace-rollback.js +0 -170
- package/dist/src/core/furnace-scanner.d.ts +0 -47
- package/dist/src/core/furnace-scanner.js +0 -236
- package/dist/src/core/furnace-stale-export.d.ts +0 -60
- package/dist/src/core/furnace-stale-export.js +0 -125
- package/dist/src/core/furnace-staleness.d.ts +0 -24
- package/dist/src/core/furnace-staleness.js +0 -67
- package/dist/src/core/furnace-state-persist.d.ts +0 -68
- package/dist/src/core/furnace-state-persist.js +0 -116
- package/dist/src/core/furnace-step-errors.d.ts +0 -23
- package/dist/src/core/furnace-step-errors.js +0 -25
- package/dist/src/core/furnace-stories.d.ts +0 -37
- package/dist/src/core/furnace-stories.js +0 -186
- package/dist/src/core/furnace-tag-map.d.ts +0 -47
- package/dist/src/core/furnace-tag-map.js +0 -182
- package/dist/src/core/furnace-validate-accessibility.d.ts +0 -39
- package/dist/src/core/furnace-validate-accessibility.js +0 -417
- package/dist/src/core/furnace-validate-checks.d.ts +0 -4
- package/dist/src/core/furnace-validate-checks.js +0 -6
- package/dist/src/core/furnace-validate-compatibility.d.ts +0 -6
- package/dist/src/core/furnace-validate-compatibility.js +0 -295
- package/dist/src/core/furnace-validate-exceptions.d.ts +0 -49
- package/dist/src/core/furnace-validate-exceptions.js +0 -98
- package/dist/src/core/furnace-validate-helpers.d.ts +0 -7
- package/dist/src/core/furnace-validate-helpers.js +0 -4
- package/dist/src/core/furnace-validate-icon-button.d.ts +0 -7
- package/dist/src/core/furnace-validate-icon-button.js +0 -78
- package/dist/src/core/furnace-validate-registration.d.ts +0 -67
- package/dist/src/core/furnace-validate-registration.js +0 -487
- package/dist/src/core/furnace-validate-structure.d.ts +0 -22
- package/dist/src/core/furnace-validate-structure.js +0 -122
- package/dist/src/core/furnace-validate.d.ts +0 -41
- package/dist/src/core/furnace-validate.js +0 -331
- package/dist/src/core/furnace-version-drift.d.ts +0 -57
- package/dist/src/core/furnace-version-drift.js +0 -102
- package/dist/src/core/gecko-dom-types.d.ts +0 -2
- package/dist/src/core/gecko-dom-types.js +0 -17
- package/dist/src/core/git-base.d.ts +0 -101
- package/dist/src/core/git-base.js +0 -162
- package/dist/src/core/git-diff-new-file.d.ts +0 -40
- package/dist/src/core/git-diff-new-file.js +0 -118
- package/dist/src/core/git-diff.d.ts +0 -82
- package/dist/src/core/git-diff.js +0 -539
- package/dist/src/core/git-file-ops.d.ts +0 -108
- package/dist/src/core/git-file-ops.js +0 -280
- package/dist/src/core/git-readonly-index.d.ts +0 -91
- package/dist/src/core/git-readonly-index.js +0 -177
- package/dist/src/core/git-status.d.ts +0 -84
- package/dist/src/core/git-status.js +0 -208
- package/dist/src/core/git.d.ts +0 -114
- package/dist/src/core/git.js +0 -540
- package/dist/src/core/harness-helper-pids.d.ts +0 -98
- package/dist/src/core/harness-helper-pids.js +0 -240
- package/dist/src/core/harness-orphans.d.ts +0 -118
- package/dist/src/core/harness-orphans.js +0 -268
- package/dist/src/core/harness-port-fallback.d.ts +0 -60
- package/dist/src/core/harness-port-fallback.js +0 -96
- package/dist/src/core/harness-port-reservation.d.ts +0 -60
- package/dist/src/core/harness-port-reservation.js +0 -122
- package/dist/src/core/history-log-file.d.ts +0 -61
- package/dist/src/core/history-log-file.js +0 -164
- package/dist/src/core/history-log.d.ts +0 -20
- package/dist/src/core/history-log.js +0 -30
- package/dist/src/core/json-preserving-edit.d.ts +0 -22
- package/dist/src/core/json-preserving-edit.js +0 -199
- package/dist/src/core/launchable-build.d.ts +0 -39
- package/dist/src/core/launchable-build.js +0 -85
- package/dist/src/core/license-headers.d.ts +0 -103
- package/dist/src/core/license-headers.js +0 -328
- package/dist/src/core/line-prefixer.d.ts +0 -18
- package/dist/src/core/line-prefixer.js +0 -34
- package/dist/src/core/lit-template-regions.d.ts +0 -4
- package/dist/src/core/lit-template-regions.js +0 -50
- package/dist/src/core/mach-build-artifacts.d.ts +0 -176
- package/dist/src/core/mach-build-artifacts.js +0 -436
- package/dist/src/core/mach-error-hints.d.ts +0 -24
- package/dist/src/core/mach-error-hints.js +0 -135
- package/dist/src/core/mach-known-noise-filter.d.ts +0 -122
- package/dist/src/core/mach-known-noise-filter.js +0 -257
- package/dist/src/core/mach-mozconfig.d.ts +0 -57
- package/dist/src/core/mach-mozconfig.js +0 -166
- package/dist/src/core/mach-python.d.ts +0 -19
- package/dist/src/core/mach-python.js +0 -131
- package/dist/src/core/mach-resource-shim.d.ts +0 -107
- package/dist/src/core/mach-resource-shim.js +0 -640
- package/dist/src/core/mach.d.ts +0 -284
- package/dist/src/core/mach.js +0 -445
- package/dist/src/core/marionette-port.d.ts +0 -153
- package/dist/src/core/marionette-port.js +0 -474
- package/dist/src/core/marionette-preflight.d.ts +0 -58
- package/dist/src/core/marionette-preflight.js +0 -332
- package/dist/src/core/markdown-table.d.ts +0 -104
- package/dist/src/core/markdown-table.js +0 -265
- package/dist/src/core/mochitest-server-port.d.ts +0 -81
- package/dist/src/core/mochitest-server-port.js +0 -175
- package/dist/src/core/module-resolution-preflight.d.ts +0 -65
- package/dist/src/core/module-resolution-preflight.js +0 -171
- package/dist/src/core/moz-manifest-helpers.d.ts +0 -79
- package/dist/src/core/moz-manifest-helpers.js +0 -163
- package/dist/src/core/moz-manifest-register.d.ts +0 -19
- package/dist/src/core/moz-manifest-register.js +0 -51
- package/dist/src/core/moz-manifest-rules.d.ts +0 -58
- package/dist/src/core/moz-manifest-rules.js +0 -264
- package/dist/src/core/moz-manifest-tokenizers.d.ts +0 -38
- package/dist/src/core/moz-manifest-tokenizers.js +0 -108
- package/dist/src/core/negative-control-compiled.d.ts +0 -46
- package/dist/src/core/negative-control-compiled.js +0 -109
- package/dist/src/core/negative-control-diff.d.ts +0 -51
- package/dist/src/core/negative-control-diff.js +0 -167
- package/dist/src/core/negative-control.d.ts +0 -150
- package/dist/src/core/negative-control.js +0 -399
- package/dist/src/core/objdir-install-manifests.d.ts +0 -73
- package/dist/src/core/objdir-install-manifests.js +0 -226
- package/dist/src/core/objdir-maintenance.d.ts +0 -10
- package/dist/src/core/objdir-maintenance.js +0 -167
- package/dist/src/core/ownership-table.d.ts +0 -53
- package/dist/src/core/ownership-table.js +0 -159
- package/dist/src/core/parent-exit-watchdog.d.ts +0 -62
- package/dist/src/core/parent-exit-watchdog.js +0 -69
- package/dist/src/core/park-store.d.ts +0 -63
- package/dist/src/core/park-store.js +0 -216
- package/dist/src/core/parser-fallback.d.ts +0 -50
- package/dist/src/core/parser-fallback.js +0 -61
- package/dist/src/core/patch-apply-fuzz.d.ts +0 -57
- package/dist/src/core/patch-apply-fuzz.js +0 -125
- package/dist/src/core/patch-apply.d.ts +0 -88
- package/dist/src/core/patch-apply.js +0 -435
- package/dist/src/core/patch-export-coverage.d.ts +0 -49
- package/dist/src/core/patch-export-coverage.js +0 -73
- package/dist/src/core/patch-export-metadata.d.ts +0 -46
- package/dist/src/core/patch-export-metadata.js +0 -47
- package/dist/src/core/patch-export-update.d.ts +0 -55
- package/dist/src/core/patch-export-update.js +0 -95
- package/dist/src/core/patch-export.d.ts +0 -175
- package/dist/src/core/patch-export.js +0 -312
- package/dist/src/core/patch-files.d.ts +0 -17
- package/dist/src/core/patch-files.js +0 -59
- package/dist/src/core/patch-identifier-suggest.d.ts +0 -26
- package/dist/src/core/patch-identifier-suggest.js +0 -135
- package/dist/src/core/patch-lint-binary.d.ts +0 -45
- package/dist/src/core/patch-lint-binary.js +0 -39
- package/dist/src/core/patch-lint-cache-checkjs.d.ts +0 -45
- package/dist/src/core/patch-lint-cache-checkjs.js +0 -195
- package/dist/src/core/patch-lint-cache.d.ts +0 -79
- package/dist/src/core/patch-lint-cache.js +0 -247
- package/dist/src/core/patch-lint-checkjs-any-import.d.ts +0 -57
- package/dist/src/core/patch-lint-checkjs-any-import.js +0 -91
- package/dist/src/core/patch-lint-checkjs-cache.d.ts +0 -18
- package/dist/src/core/patch-lint-checkjs-cache.js +0 -45
- package/dist/src/core/patch-lint-checkjs-diagnostics.d.ts +0 -17
- package/dist/src/core/patch-lint-checkjs-diagnostics.js +0 -32
- package/dist/src/core/patch-lint-checkjs-resolve.d.ts +0 -31
- package/dist/src/core/patch-lint-checkjs-resolve.js +0 -86
- package/dist/src/core/patch-lint-checkjs.d.ts +0 -182
- package/dist/src/core/patch-lint-checkjs.js +0 -563
- package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +0 -43
- package/dist/src/core/patch-lint-chrome-jsdoc.js +0 -90
- package/dist/src/core/patch-lint-code-lines.d.ts +0 -59
- package/dist/src/core/patch-lint-code-lines.js +0 -105
- package/dist/src/core/patch-lint-creators.d.ts +0 -26
- package/dist/src/core/patch-lint-creators.js +0 -45
- package/dist/src/core/patch-lint-cross.d.ts +0 -232
- package/dist/src/core/patch-lint-cross.js +0 -590
- package/dist/src/core/patch-lint-css.d.ts +0 -27
- package/dist/src/core/patch-lint-css.js +0 -228
- package/dist/src/core/patch-lint-diff-tag.d.ts +0 -51
- package/dist/src/core/patch-lint-diff-tag.js +0 -105
- package/dist/src/core/patch-lint-diff.d.ts +0 -42
- package/dist/src/core/patch-lint-diff.js +0 -100
- package/dist/src/core/patch-lint-file-size.d.ts +0 -57
- package/dist/src/core/patch-lint-file-size.js +0 -62
- package/dist/src/core/patch-lint-forward-registration-extended.d.ts +0 -61
- package/dist/src/core/patch-lint-forward-registration-extended.js +0 -265
- package/dist/src/core/patch-lint-forward-registration.d.ts +0 -71
- package/dist/src/core/patch-lint-forward-registration.js +0 -266
- package/dist/src/core/patch-lint-ignore.d.ts +0 -196
- package/dist/src/core/patch-lint-ignore.js +0 -429
- package/dist/src/core/patch-lint-imports.d.ts +0 -9
- package/dist/src/core/patch-lint-imports.js +0 -90
- package/dist/src/core/patch-lint-jsdoc.d.ts +0 -67
- package/dist/src/core/patch-lint-jsdoc.js +0 -471
- package/dist/src/core/patch-lint-module-registration.d.ts +0 -22
- package/dist/src/core/patch-lint-module-registration.js +0 -97
- package/dist/src/core/patch-lint-mozbuild.d.ts +0 -18
- package/dist/src/core/patch-lint-mozbuild.js +0 -192
- package/dist/src/core/patch-lint-observer.d.ts +0 -37
- package/dist/src/core/patch-lint-observer.js +0 -167
- package/dist/src/core/patch-lint-ownership.d.ts +0 -74
- package/dist/src/core/patch-lint-ownership.js +0 -125
- package/dist/src/core/patch-lint-prettier.d.ts +0 -34
- package/dist/src/core/patch-lint-prettier.js +0 -124
- package/dist/src/core/patch-lint-projection.d.ts +0 -25
- package/dist/src/core/patch-lint-projection.js +0 -43
- package/dist/src/core/patch-lint-queue-types.d.ts +0 -60
- package/dist/src/core/patch-lint-queue-types.js +0 -12
- package/dist/src/core/patch-lint-size-thresholds.d.ts +0 -52
- package/dist/src/core/patch-lint-size-thresholds.js +0 -110
- package/dist/src/core/patch-lint-size.d.ts +0 -117
- package/dist/src/core/patch-lint-size.js +0 -331
- package/dist/src/core/patch-lint-staged-registration.d.ts +0 -98
- package/dist/src/core/patch-lint-staged-registration.js +0 -128
- package/dist/src/core/patch-lint-token-scale.d.ts +0 -65
- package/dist/src/core/patch-lint-token-scale.js +0 -304
- package/dist/src/core/patch-lint-unmanaged-companion.d.ts +0 -106
- package/dist/src/core/patch-lint-unmanaged-companion.js +0 -214
- package/dist/src/core/patch-lint.d.ts +0 -206
- package/dist/src/core/patch-lint.js +0 -533
- package/dist/src/core/patch-lock.d.ts +0 -40
- package/dist/src/core/patch-lock.js +0 -129
- package/dist/src/core/patch-manifest-consistency.d.ts +0 -95
- package/dist/src/core/patch-manifest-consistency.js +0 -256
- package/dist/src/core/patch-manifest-files-affected.d.ts +0 -43
- package/dist/src/core/patch-manifest-files-affected.js +0 -77
- package/dist/src/core/patch-manifest-io.d.ts +0 -199
- package/dist/src/core/patch-manifest-io.js +0 -556
- package/dist/src/core/patch-manifest-key-order.d.ts +0 -23
- package/dist/src/core/patch-manifest-key-order.js +0 -60
- package/dist/src/core/patch-manifest-query.d.ts +0 -55
- package/dist/src/core/patch-manifest-query.js +0 -139
- package/dist/src/core/patch-manifest-resolve.d.ts +0 -21
- package/dist/src/core/patch-manifest-resolve.js +0 -35
- package/dist/src/core/patch-manifest-stage.d.ts +0 -46
- package/dist/src/core/patch-manifest-stage.js +0 -96
- package/dist/src/core/patch-manifest-validate.d.ts +0 -20
- package/dist/src/core/patch-manifest-validate.js +0 -240
- package/dist/src/core/patch-manifest.d.ts +0 -12
- package/dist/src/core/patch-manifest.js +0 -13
- package/dist/src/core/patch-order-legal.d.ts +0 -26
- package/dist/src/core/patch-order-legal.js +0 -88
- package/dist/src/core/patch-parse.d.ts +0 -176
- package/dist/src/core/patch-parse.js +0 -416
- package/dist/src/core/patch-policy-content.d.ts +0 -40
- package/dist/src/core/patch-policy-content.js +0 -219
- package/dist/src/core/patch-policy.d.ts +0 -80
- package/dist/src/core/patch-policy.js +0 -394
- package/dist/src/core/patch-registration-refs.d.ts +0 -41
- package/dist/src/core/patch-registration-refs.js +0 -107
- package/dist/src/core/patch-retired.d.ts +0 -57
- package/dist/src/core/patch-retired.js +0 -92
- package/dist/src/core/patch-source-metadata.d.ts +0 -6
- package/dist/src/core/patch-source-metadata.js +0 -12
- package/dist/src/core/patch-subset.d.ts +0 -18
- package/dist/src/core/patch-subset.js +0 -67
- package/dist/src/core/patch-transform.d.ts +0 -61
- package/dist/src/core/patch-transform.js +0 -198
- package/dist/src/core/preflight-wait.d.ts +0 -22
- package/dist/src/core/preflight-wait.js +0 -62
- package/dist/src/core/process-cpu-time.d.ts +0 -12
- package/dist/src/core/process-cpu-time.js +0 -52
- package/dist/src/core/process-owner.d.ts +0 -9
- package/dist/src/core/process-owner.js +0 -43
- package/dist/src/core/rebase-dry-run.d.ts +0 -48
- package/dist/src/core/rebase-dry-run.js +0 -105
- package/dist/src/core/rebase-from-version.d.ts +0 -46
- package/dist/src/core/rebase-from-version.js +0 -71
- package/dist/src/core/rebase-session.d.ts +0 -100
- package/dist/src/core/rebase-session.js +0 -174
- package/dist/src/core/register-browser-content.d.ts +0 -11
- package/dist/src/core/register-browser-content.js +0 -52
- package/dist/src/core/register-browser-test.d.ts +0 -18
- package/dist/src/core/register-browser-test.js +0 -66
- package/dist/src/core/register-module.d.ts +0 -11
- package/dist/src/core/register-module.js +0 -56
- package/dist/src/core/register-result.d.ts +0 -30
- package/dist/src/core/register-result.js +0 -8
- package/dist/src/core/register-scaffold.d.ts +0 -55
- package/dist/src/core/register-scaffold.js +0 -146
- package/dist/src/core/register-shared-css.d.ts +0 -36
- package/dist/src/core/register-shared-css.js +0 -112
- package/dist/src/core/register-xpcshell-test.d.ts +0 -50
- package/dist/src/core/register-xpcshell-test.js +0 -143
- package/dist/src/core/run-log-redact.d.ts +0 -38
- package/dist/src/core/run-log-redact.js +0 -69
- package/dist/src/core/run-log.d.ts +0 -97
- package/dist/src/core/run-log.js +0 -334
- package/dist/src/core/run-profile.d.ts +0 -57
- package/dist/src/core/run-profile.js +0 -137
- package/dist/src/core/shared-ftl.d.ts +0 -28
- package/dist/src/core/shared-ftl.js +0 -49
- package/dist/src/core/signal-critical.d.ts +0 -38
- package/dist/src/core/signal-critical.js +0 -62
- package/dist/src/core/smoke-patterns.d.ts +0 -81
- package/dist/src/core/smoke-patterns.js +0 -176
- package/dist/src/core/state-file.d.ts +0 -60
- package/dist/src/core/state-file.js +0 -71
- package/dist/src/core/status-binary.d.ts +0 -62
- package/dist/src/core/status-binary.js +0 -133
- package/dist/src/core/status-classify.d.ts +0 -96
- package/dist/src/core/status-classify.js +0 -244
- package/dist/src/core/test-changed-prefs.d.ts +0 -30
- package/dist/src/core/test-changed-prefs.js +0 -93
- package/dist/src/core/test-harness-crash.d.ts +0 -251
- package/dist/src/core/test-harness-crash.js +0 -780
- package/dist/src/core/test-harness-infra.d.ts +0 -32
- package/dist/src/core/test-harness-infra.js +0 -69
- package/dist/src/core/test-harness-output.d.ts +0 -45
- package/dist/src/core/test-harness-output.js +0 -119
- package/dist/src/core/test-harness-signature.d.ts +0 -57
- package/dist/src/core/test-harness-signature.js +0 -35
- package/dist/src/core/test-harness-verdict-notes.d.ts +0 -54
- package/dist/src/core/test-harness-verdict-notes.js +0 -48
- package/dist/src/core/test-host-state.d.ts +0 -14
- package/dist/src/core/test-host-state.js +0 -80
- package/dist/src/core/test-path-scope.d.ts +0 -59
- package/dist/src/core/test-path-scope.js +0 -147
- package/dist/src/core/test-profile-files.d.ts +0 -17
- package/dist/src/core/test-profile-files.js +0 -75
- package/dist/src/core/test-raw-log.d.ts +0 -66
- package/dist/src/core/test-raw-log.js +0 -122
- package/dist/src/core/test-run-completeness.d.ts +0 -97
- package/dist/src/core/test-run-completeness.js +0 -191
- package/dist/src/core/test-stale-check.d.ts +0 -213
- package/dist/src/core/test-stale-check.js +0 -396
- package/dist/src/core/test-stale-exempt.d.ts +0 -40
- package/dist/src/core/test-stale-exempt.js +0 -70
- package/dist/src/core/test-stale-symlink.d.ts +0 -12
- package/dist/src/core/test-stale-symlink.js +0 -39
- package/dist/src/core/test-stall-triage.d.ts +0 -51
- package/dist/src/core/test-stall-triage.js +0 -142
- package/dist/src/core/test-xpcshell-retry.d.ts +0 -35
- package/dist/src/core/test-xpcshell-retry.js +0 -31
- package/dist/src/core/token-category.d.ts +0 -54
- package/dist/src/core/token-category.js +0 -299
- package/dist/src/core/token-coverage.d.ts +0 -12
- package/dist/src/core/token-coverage.js +0 -96
- package/dist/src/core/token-dark-mode.d.ts +0 -64
- package/dist/src/core/token-dark-mode.js +0 -186
- package/dist/src/core/token-docs.d.ts +0 -34
- package/dist/src/core/token-docs.js +0 -102
- package/dist/src/core/token-inventory.d.ts +0 -56
- package/dist/src/core/token-inventory.js +0 -114
- package/dist/src/core/token-lint.d.ts +0 -53
- package/dist/src/core/token-lint.js +0 -131
- package/dist/src/core/token-manager.d.ts +0 -87
- package/dist/src/core/token-manager.js +0 -407
- package/dist/src/core/token-scaffold.d.ts +0 -36
- package/dist/src/core/token-scaffold.js +0 -73
- package/dist/src/core/token-sibling-sheets.d.ts +0 -46
- package/dist/src/core/token-sibling-sheets.js +0 -119
- package/dist/src/core/token-variant.d.ts +0 -90
- package/dist/src/core/token-variant.js +0 -327
- package/dist/src/core/toolchain-preflight.d.ts +0 -90
- package/dist/src/core/toolchain-preflight.js +0 -251
- package/dist/src/core/tree-cow.d.ts +0 -16
- package/dist/src/core/tree-cow.js +0 -71
- package/dist/src/core/tree-guard.d.ts +0 -35
- package/dist/src/core/tree-guard.js +0 -194
- package/dist/src/core/tree-store.d.ts +0 -143
- package/dist/src/core/tree-store.js +0 -478
- package/dist/src/core/typecheck-explain.d.ts +0 -93
- package/dist/src/core/typecheck-explain.js +0 -213
- package/dist/src/core/typecheck-shim.d.ts +0 -90
- package/dist/src/core/typecheck-shim.js +0 -508
- package/dist/src/core/typecheck.d.ts +0 -97
- package/dist/src/core/typecheck.js +0 -457
- package/dist/src/core/wire-destroy.d.ts +0 -25
- package/dist/src/core/wire-destroy.js +0 -126
- package/dist/src/core/wire-dom-fragment.d.ts +0 -44
- package/dist/src/core/wire-dom-fragment.js +0 -139
- package/dist/src/core/wire-init.d.ts +0 -28
- package/dist/src/core/wire-init.js +0 -219
- package/dist/src/core/wire-subscript.d.ts +0 -23
- package/dist/src/core/wire-subscript.js +0 -145
- package/dist/src/core/wire-utils.d.ts +0 -149
- package/dist/src/core/wire-utils.js +0 -338
- package/dist/src/core/xpcshell-appdir.d.ts +0 -157
- package/dist/src/core/xpcshell-appdir.js +0 -299
- package/dist/src/core/xpcshell-profile-dir.d.ts +0 -12
- package/dist/src/core/xpcshell-profile-dir.js +0 -45
- package/dist/src/errors/base.d.ts +0 -217
- package/dist/src/errors/base.js +0 -279
- package/dist/src/errors/build.d.ts +0 -92
- package/dist/src/errors/build.js +0 -166
- package/dist/src/errors/codes.d.ts +0 -74
- package/dist/src/errors/codes.js +0 -74
- package/dist/src/errors/config.d.ts +0 -17
- package/dist/src/errors/config.js +0 -39
- package/dist/src/errors/download.d.ts +0 -66
- package/dist/src/errors/download.js +0 -160
- package/dist/src/errors/furnace.d.ts +0 -20
- package/dist/src/errors/furnace.js +0 -28
- package/dist/src/errors/git.d.ts +0 -65
- package/dist/src/errors/git.js +0 -140
- package/dist/src/errors/patch.d.ts +0 -27
- package/dist/src/errors/patch.js +0 -52
- package/dist/src/errors/rebase.d.ts +0 -42
- package/dist/src/errors/rebase.js +0 -71
- package/dist/src/errors/run.d.ts +0 -16
- package/dist/src/errors/run.js +0 -22
- package/dist/src/index.d.ts +0 -42
- package/dist/src/index.js +0 -32
- package/dist/src/types/cli.d.ts +0 -14
- package/dist/src/types/commands/index.d.ts +0 -6
- package/dist/src/types/commands/index.js +0 -5
- package/dist/src/types/commands/options.d.ts +0 -1372
- package/dist/src/types/commands/options.js +0 -5
- package/dist/src/types/commands/patches.d.ts +0 -352
- package/dist/src/types/commands/patches.js +0 -5
- package/dist/src/types/commands/project.d.ts +0 -51
- package/dist/src/types/commands/project.js +0 -5
- package/dist/src/types/config.d.ts +0 -732
- package/dist/src/types/config.js +0 -15
- package/dist/src/types/furnace.d.ts +0 -422
- package/dist/src/types/furnace.js +0 -26
- package/dist/src/types/index.d.ts +0 -5
- package/dist/src/types/index.js +0 -5
- package/dist/src/types/json.d.ts +0 -22
- package/dist/src/types/json.js +0 -11
- package/dist/src/types/typecheck.d.ts +0 -51
- package/dist/src/types/typecheck.js +0 -14
- package/dist/src/utils/assert.d.ts +0 -34
- package/dist/src/utils/assert.js +0 -61
- package/dist/src/utils/build-info.d.ts +0 -30
- package/dist/src/utils/build-info.js +0 -99
- package/dist/src/utils/child-env.d.ts +0 -28
- package/dist/src/utils/child-env.js +0 -27
- package/dist/src/utils/concurrency.d.ts +0 -8
- package/dist/src/utils/concurrency.js +0 -32
- package/dist/src/utils/elapsed.d.ts +0 -2
- package/dist/src/utils/elapsed.js +0 -23
- package/dist/src/utils/errors.d.ts +0 -39
- package/dist/src/utils/errors.js +0 -67
- package/dist/src/utils/fs.d.ts +0 -113
- package/dist/src/utils/fs.js +0 -337
- package/dist/src/utils/hash.d.ts +0 -12
- package/dist/src/utils/hash.js +0 -16
- package/dist/src/utils/line-dispatch.d.ts +0 -15
- package/dist/src/utils/line-dispatch.js +0 -48
- package/dist/src/utils/logger.d.ts +0 -109
- package/dist/src/utils/logger.js +0 -270
- package/dist/src/utils/machine-output.d.ts +0 -12
- package/dist/src/utils/machine-output.js +0 -33
- package/dist/src/utils/options.d.ts +0 -155
- package/dist/src/utils/options.js +0 -312
- package/dist/src/utils/package-root.d.ts +0 -21
- package/dist/src/utils/package-root.js +0 -70
- package/dist/src/utils/parse.d.ts +0 -117
- package/dist/src/utils/parse.js +0 -214
- package/dist/src/utils/path-glob.d.ts +0 -15
- package/dist/src/utils/path-glob.js +0 -47
- package/dist/src/utils/paths.d.ts +0 -31
- package/dist/src/utils/paths.js +0 -80
- package/dist/src/utils/platform.d.ts +0 -9
- package/dist/src/utils/platform.js +0 -14
- package/dist/src/utils/process-group.d.ts +0 -42
- package/dist/src/utils/process-group.js +0 -190
- package/dist/src/utils/process-input.d.ts +0 -27
- package/dist/src/utils/process-input.js +0 -46
- package/dist/src/utils/process.d.ts +0 -293
- package/dist/src/utils/process.js +0 -593
- package/dist/src/utils/ps-duration.d.ts +0 -31
- package/dist/src/utils/ps-duration.js +0 -70
- package/dist/src/utils/regex.d.ts +0 -39
- package/dist/src/utils/regex.js +0 -109
- package/dist/src/utils/sleep.d.ts +0 -25
- package/dist/src/utils/sleep.js +0 -30
- package/dist/src/utils/stdio-drain.d.ts +0 -28
- package/dist/src/utils/stdio-drain.js +0 -54
- package/dist/src/utils/validation.d.ts +0 -182
- package/dist/src/utils/validation.js +0 -394
- package/docs/lifecycle-invariants.md +0 -523
- package/docs/run-logs.md +0 -122
- package/docs/verification-trees.md +0 -49
- /package/dist/src/{types/cli.js → cli/context.js} +0 -0
package/docs/patch-workflow.md
CHANGED
|
@@ -2,792 +2,228 @@
|
|
|
2
2
|
|
|
3
3
|
# Patch workflow
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
queue applying cleanly. `fireforge --help` is the authority on flags. This
|
|
7
|
-
file covers the behavior a flag list cannot state.
|
|
5
|
+
In patch mode (`"mode": "patches"` in `fireforge.json`) you edit Firefox in place under `engine/`, and FireForge stores your changes as a queue of patches in `patches/`. This page covers the queue in depth. [getting-started.md](getting-started.md) shows the daily loop.
|
|
8
6
|
|
|
9
|
-
## The
|
|
7
|
+
## The queue
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
npx fireforge status
|
|
13
|
-
npx fireforge export browser/base/content/browser.js --name custom-toolbar --category ui
|
|
14
|
-
npx fireforge re-export custom-toolbar
|
|
15
|
-
npx fireforge lint --per-patch
|
|
16
|
-
npx fireforge verify
|
|
17
|
-
```
|
|
9
|
+
`patches/` holds one `.patch` file per patch and a manifest, `patches.json`:
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## Exporting
|
|
11
|
+
```
|
|
12
|
+
patches/
|
|
13
|
+
patches.json
|
|
14
|
+
001-branding-assets.patch
|
|
15
|
+
010-ui-sidebar.patch
|
|
16
|
+
012-ui-toolbar.patch
|
|
17
|
+
```
|
|
27
18
|
|
|
28
|
-
|
|
29
|
-
`ui-window-chrome-tests`, and `235-ui-window-chrome-tests` all resolve to the
|
|
30
|
-
same `<order>-ui-window-chrome-tests.patch` shape.
|
|
19
|
+
A patch file is plain `git diff` output: `a/` and `b/` prefixes, three lines of context, full blob ids, binary files as `GIT binary patch` sections, and no rename detection (a rename is a deletion plus an addition). The same change always gives the same bytes.
|
|
31
20
|
|
|
32
|
-
|
|
33
|
-
<manifest>` assigns files to their owner patches without scanning whole
|
|
34
|
-
directories. The manifest is JSON:
|
|
21
|
+
The manifest is the one record of which patches exist, their order and what is known about each:
|
|
35
22
|
|
|
36
23
|
```json
|
|
37
24
|
{
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
"version": 2,
|
|
26
|
+
"firefox": { "product": "firefox-esr", "version": "140.9.0esr" },
|
|
27
|
+
"patches": [
|
|
28
|
+
{
|
|
29
|
+
"order": 1,
|
|
30
|
+
"name": "branding-assets",
|
|
31
|
+
"description": "Logos, icons and brand strings",
|
|
32
|
+
"tier": "branding"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"order": 10,
|
|
36
|
+
"name": "ui-sidebar",
|
|
37
|
+
"description": "The sidebar panel",
|
|
38
|
+
"lintIgnore": [
|
|
39
|
+
"file-too-large",
|
|
40
|
+
{ "rule": "large-patch-lines", "max": 1800, "reason": "Reviewed: one feature" }
|
|
41
|
+
],
|
|
42
|
+
"stagedDependencies": [
|
|
43
|
+
{
|
|
44
|
+
"file": "browser/base/content/browser-sidebar.js",
|
|
45
|
+
"creates": "browser/modules/Sidebar.sys.mjs"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{ "order": 12, "name": "ui-toolbar", "description": "Toolbar buttons" }
|
|
50
|
+
],
|
|
51
|
+
"retired": [{ "order": 11, "name": "ui-old-toolbar", "reason": "Folded into ui-toolbar" }]
|
|
41
52
|
}
|
|
42
53
|
```
|
|
43
54
|
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
- `name`: lowercase words joined by hyphens. The first word is the patch's category (`ui`, `branding`).
|
|
56
|
+
- `order`: the position in the apply order. Gaps are allowed unless `patchPolicy.allowGaps` is `false`. The file name follows from order and name: `<order padded to three digits>-<name>.patch`.
|
|
57
|
+
- `firefox`: the Firefox release the queue was last verified against. A patch whose stamp differs carries its own `firefox` field.
|
|
58
|
+
- `tier`: `branding` holds the patch to the larger branding size bands of the size rules.
|
|
59
|
+
- `lintIgnore`: waivers for this patch ([quality.md](quality.md#waivers)).
|
|
60
|
+
- `stagedDependencies`: `file`, in this patch, imports or registers `creates`, which a later patch creates. Lint accepts that forward reference because it is declared.
|
|
61
|
+
- `retired`: orders that belonged to deleted patches and stay taken.
|
|
46
62
|
|
|
47
|
-
|
|
48
|
-
refused. The run refreshes the patches the manifest names plus the
|
|
49
|
-
positionals, once each and in queue order. A positional the manifest does
|
|
50
|
-
not name has no files to adopt and refreshes without a scan.
|
|
63
|
+
A command that names a patch takes its order (`10` or `010`), its file name (with or without `.patch`), its name (`ui-sidebar`), or its name without the category (`sidebar`) when that is unique.
|
|
51
64
|
|
|
52
|
-
`
|
|
53
|
-
does not queue behind a peer's build or test run, and its git plumbing runs on
|
|
54
|
-
a private index. Its purity guard covers what the dry run could touch (the
|
|
55
|
-
selected patches, their `patches.json` rows, the engine files they own, and
|
|
56
|
-
the engine HEAD and index). A peer writing any of those during the preview is
|
|
57
|
-
named from the history log or the engine-session lock, and the preview is
|
|
58
|
-
simply rerun.
|
|
65
|
+
FireForge reads a manifest with `"version": 1` (rows carrying `filename`, `category` and `filesAffected`) and writes it as version 2 the next time the queue changes.
|
|
59
66
|
|
|
60
|
-
|
|
61
|
-
with `--scan-file <patch>:<path>`. A call with more than one target patch
|
|
62
|
-
requires the prefix on every `--scan-file`. Selected patches that get no
|
|
63
|
-
file refresh scan-less, without a broad directory scan:
|
|
67
|
+
## Applying the queue: `import`
|
|
64
68
|
|
|
65
69
|
```sh
|
|
66
|
-
fireforge
|
|
70
|
+
npx fireforge import
|
|
67
71
|
```
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
Every `re-export` previews drift. For each file a patch already owns, it
|
|
72
|
-
compares the refreshed body with the old one and lists the lines the engine
|
|
73
|
-
file gained or lost since the last export (`+2 added / -1 removed`). Both
|
|
74
|
-
directions count, so an edit that only deletes lines is drift too.
|
|
75
|
-
`--refuse-foreign-drift` turns the preview into a refusal. `--expect <path>`
|
|
76
|
-
admits drift in the files you meant to change. Drift in any other owned
|
|
77
|
-
file, added or removed, still refuses.
|
|
78
|
-
|
|
79
|
-
Under `--refuse-foreign-drift` a run judges every selected patch (scan,
|
|
80
|
-
diff and drift check, nothing written) before it writes any. When one patch
|
|
81
|
-
is refused for drift, none is written: `re-export 518 626 --refuse-foreign-drift` with
|
|
82
|
-
drift only in 626 leaves 518 unwritten too, and the closing summary names
|
|
83
|
-
518 as held back by 626's refusal. Without the flag each patch is written
|
|
84
|
-
or refused on its own.
|
|
85
|
-
|
|
86
|
-
The belt works beside `--scan`, `--scan-file` and `--scan-files`. It guards
|
|
87
|
-
each patch's existing files, and the files a scan adopts count as expected,
|
|
88
|
-
so the call that adopts a new file can still refuse a peer's edit in the
|
|
89
|
-
patch's other files. It cannot combine with `--files`, which replaces the
|
|
90
|
-
file list outright.
|
|
91
|
-
|
|
92
|
-
The adoption gate and the plain re-export refuse a forward import of a
|
|
93
|
-
module a later patch creates. They also refuse a forward registration
|
|
94
|
-
(`patchLint.forwardRegistration`, for example a `jar.mn` line packaging that
|
|
95
|
-
module), in the same refusal and with the `patch staged-dependency` command
|
|
96
|
-
that declares it, so one declaration pass covers both.
|
|
97
|
-
|
|
98
|
-
### Exporting by hunk
|
|
99
|
-
|
|
100
|
-
Re-export captures whole files, so on a shared engine a peer's unexported
|
|
101
|
-
line in a shared manifest or chrome document lands in the exporting patch.
|
|
102
|
-
Two flags export a file by hunk instead. Each takes one explicit patch and
|
|
103
|
-
cannot combine with `--scan`, `--files` or `--all`:
|
|
104
|
-
|
|
105
|
-
- `--hunks-from <diff>` exports each file the diff names as the patch's
|
|
106
|
-
current body for it plus only the diff's hunks. Files the diff does not
|
|
107
|
-
name keep their old section.
|
|
108
|
-
- `--exclude-hunks <diff>` exports each named file as the working tree minus
|
|
109
|
-
the diff's hunks. The other files export as usual.
|
|
110
|
-
|
|
111
|
-
Hunks are placed by their context, so a diff taken before a peer's edit
|
|
112
|
-
above it still applies, and a hunk whose context is gone refuses. The
|
|
113
|
-
section is diffed by git against HEAD on a throwaway index, and the engine
|
|
114
|
-
is not touched. A spine patch can then export one change's lines at a time:
|
|
73
|
+
Every file the queue touches ends up holding what the queue leaves there. Other edits in `engine/` are kept. `import` refuses to overwrite edits in the queue's files that no patch accounts for; `--force` overwrites them after saving a recovery snapshot.
|
|
115
74
|
|
|
116
|
-
|
|
117
|
-
git -C engine diff -- browser/base/content/hominis.js > my-change.diff # trim to your hunks
|
|
118
|
-
fireforge re-export 200 --hunks-from my-change.diff --wait-lock 600
|
|
119
|
-
```
|
|
75
|
+
`--until <patch>` applies the queue up to and including that patch.
|
|
120
76
|
|
|
121
|
-
The
|
|
122
|
-
`diff --git` lines). When a section's two sides name different paths, the
|
|
123
|
-
side that is a file the patch owns names the file, with an `engine/` prefix
|
|
124
|
-
accepted.
|
|
77
|
+
When a patch does not apply, the import pauses. The engine holds the state before that patch, plus the hunks that fitted, and `.rej` files beside the files whose hunks did not. Then:
|
|
125
78
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
patch leaves it (engine HEAD, or nothing for a file HEAD lacks, with the
|
|
129
|
-
patch's section applied), which is the base `--hunks-from` places hunks
|
|
130
|
-
against. Diff the working file against it:
|
|
79
|
+
1. Finish the change by hand in `engine/`, using the `.rej` files.
|
|
80
|
+
2. Either run `fireforge import --continue`, which rewrites the failed patch from what `engine/` holds and applies the rest, or run `fireforge resolve` to rewrite only that patch and `fireforge import --continue` afterwards.
|
|
131
81
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
fireforge re-export 200 --hunks-from my-change.diff --wait-lock 600
|
|
136
|
-
```
|
|
82
|
+
The rewritten patch body is exactly that patch's own work: the change in its files relative to what the patches before it leave there, deletions included. `fireforge status` shows a paused import as `session-paused`.
|
|
83
|
+
|
|
84
|
+
## Capturing edits: `export`
|
|
137
85
|
|
|
138
|
-
|
|
139
|
-
patch already creates is refused: its one hunk is the whole file, not the
|
|
140
|
-
lines changed since the patch body.
|
|
141
|
-
|
|
142
|
-
### Re-export belts and arguments
|
|
143
|
-
|
|
144
|
-
`--refuse-adjacent-unmanaged` refuses a patch when an unmanaged file is
|
|
145
|
-
adjacent to it, meaning the re-export would plausibly have to capture it:
|
|
146
|
-
|
|
147
|
-
- a changed file in the same directory as a file the patch owns, or
|
|
148
|
-
- a changed file named by a registration line the patch adds (a jar.mn,
|
|
149
|
-
moz.build or test-manifest line, `*` globs included).
|
|
150
|
-
|
|
151
|
-
A file in a sibling or nested directory is not adjacent, so a peer
|
|
152
|
-
session's unexported test in `test/hominis-tiles/` does not refuse a
|
|
153
|
-
patch that owns `test/hominis/browser.toml`. The refusal names every file
|
|
154
|
-
with its anchor (`beside engine/<dir>` or `registered by engine/<carrier>`).
|
|
155
|
-
A backup-shaped file (`*-E`, `*.bak`, `*.orig`, `*.rej`, `*~`) is named as
|
|
156
|
-
a stray backup to delete, such as the `-E` copy macOS `sed -i -E` leaves,
|
|
157
|
-
instead of a file to adopt with `--scan-file`.
|
|
158
|
-
|
|
159
|
-
Beside `--scan` and `--scan-file` the belt judges the adjacent files the
|
|
160
|
-
scan did not adopt, so one call can adopt a new widget and its test and
|
|
161
|
-
still refuse a peer's neighbour. It cannot combine with `--files`.
|
|
162
|
-
|
|
163
|
-
Three carve-outs keep the belt armed for everything they do not name. Each
|
|
164
|
-
requires `--refuse-adjacent-unmanaged`, and each admitted file is still
|
|
165
|
-
listed:
|
|
166
|
-
|
|
167
|
-
- `--expect-new <path>` names a file this session created and will adopt
|
|
168
|
-
with its next export. The owners of a new module's registration can
|
|
169
|
-
re-export first while a peer's neighbour still refuses. The path must be
|
|
170
|
-
changed in engine/ and owned by no patch. The run ends by naming the
|
|
171
|
-
export still owed, and an unmet path is a warning.
|
|
172
|
-
- `--expect-unmanaged <path>` records a reviewed exception that stays
|
|
173
|
-
unmanaged. An unmet path is a warning.
|
|
174
|
-
- `--adjacent-ignore <path|glob>` is a reviewed ignore list. A `*` stays
|
|
175
|
-
within one path segment and `**` is refused. Unmatched entries are only
|
|
176
|
-
noted, because the same list is reused across runs.
|
|
86
|
+
`export` turns edits no patch holds into a new patch:
|
|
177
87
|
|
|
178
88
|
```sh
|
|
179
|
-
fireforge
|
|
180
|
-
|
|
181
|
-
--wait-lock 600
|
|
89
|
+
npx fireforge export browser/base/content/browser-sidebar.js browser/modules/Sidebar.sys.mjs --name ui-sidebar -d "The sidebar panel"
|
|
90
|
+
npx fireforge export --all --name ui-misc -d "Small fixes"
|
|
182
91
|
```
|
|
183
92
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
`--expect`, `--expect-unmanaged`, `--expect-new` or `--scan-file` value that
|
|
194
|
-
names no changed file in engine/. The banner reads `DRY RUN` or `WRITING`.
|
|
195
|
-
A multi-patch run ends with one line naming the patches it wrote and those
|
|
196
|
-
it did not, each with its reason (`failed`, `refused: adjacent unmanaged`,
|
|
197
|
-
`refused: foreign drift`, `skipped`).
|
|
198
|
-
|
|
199
|
-
### Deletions
|
|
200
|
-
|
|
201
|
-
A deleted upstream file is captured like any other change: a path tracked in
|
|
202
|
-
HEAD but absent from disk stays in the diff scope, and the emitted patch
|
|
203
|
-
carries a `deleted file mode` section. A captured deletion keeps its
|
|
204
|
-
`filesAffected` entry, because the patch is what performs the deletion, and
|
|
205
|
-
pruning the entry would leave the body deleting a file the manifest says the
|
|
206
|
-
patch has nothing to do with. It also still requires the confirmation,
|
|
207
|
-
because the patch will remove those files wherever it is applied.
|
|
208
|
-
|
|
209
|
-
An untracked absent path is refused rather than warned about, because a patch
|
|
210
|
-
cannot express it either way. The `--files` path also refuses when any
|
|
211
|
-
requested path produces no hunk. That is checked against the full requested
|
|
212
|
-
list rather than the subset left after filtering, so nothing dropped upstream
|
|
213
|
-
can pass as a silent success.
|
|
214
|
-
|
|
215
|
-
A file can be retired from a selected patch with repeatable
|
|
216
|
-
`--expect-removed <path>`. This works for an absent
|
|
217
|
-
file the patch created, and for an upstream file the patch modified or
|
|
218
|
-
deleted whose engine copy is back at HEAD:
|
|
93
|
+
- Paths are engine files or directories. `--all` captures every edit no patch holds.
|
|
94
|
+
- `--name` is required. `-d`/`--description` is recorded in the manifest.
|
|
95
|
+
- The patch goes after the last one, or where `--order <n>`, `--before <patch>` or `--after <patch>` puts it. With `patchPolicy.ranges` the order must lie in the category's range.
|
|
96
|
+
- `--tier branding` sets the size tier.
|
|
97
|
+
- A named file that another patch already changes is refused; under a named directory such files are left out. Those edits belong to `re-export`.
|
|
98
|
+
|
|
99
|
+
## Updating patches: `re-export`
|
|
100
|
+
|
|
101
|
+
`re-export` rewrites existing patches so the queue ends in what `engine/` holds in their files:
|
|
219
102
|
|
|
220
103
|
```sh
|
|
221
|
-
fireforge re-export
|
|
104
|
+
npx fireforge re-export ui-sidebar
|
|
105
|
+
npx fireforge re-export --all
|
|
106
|
+
npx fireforge re-export --all --dry-run
|
|
222
107
|
```
|
|
223
108
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
validated before writes, in dry-run too. Other paths keep
|
|
234
|
-
both refusal checks; retirement grants no unmanaged or foreign-drift
|
|
235
|
-
exception. Removing every file would empty the patch and requires `patch
|
|
236
|
-
delete` (or `patch retire`, which keeps the order number) instead.
|
|
237
|
-
`--expect-removed` cannot combine with `--files` or `--all`. It combines
|
|
238
|
-
with `--scan`, so one call can retire a widget's files from one patch while
|
|
239
|
-
`--scan-file` adopts a new module into another: the retired path leaves the
|
|
240
|
-
owner's file list before its scan, which cannot adopt it back.
|
|
241
|
-
|
|
242
|
-
The same run drops every staged declaration, registration or forward
|
|
243
|
-
import, in any patch of the queue, whose `creates` path it retired and no
|
|
244
|
-
other patch still owns. It prints each one (`would drop` in a dry run) and
|
|
245
|
-
records the drop in the history log (`re-export-staged-prune`).
|
|
246
|
-
|
|
247
|
-
### Forward imports and new modules
|
|
248
|
-
|
|
249
|
-
A re-export (plain or `--scan`) refused because a file imports a module a
|
|
250
|
-
later patch creates names the earliest legal order for exporting those
|
|
251
|
-
files as their own patch (free, inside the category range, and not opening
|
|
252
|
-
a gap under `allowGaps: false`), and prints the exact `patch
|
|
253
|
-
staged-dependency --add` command for each edge, with a `--reason`
|
|
254
|
-
placeholder. A refused `--scan` adoption, `patch move-files` or `patch split`
|
|
255
|
-
also writes every declaration it proposes into one lint-report-shaped JSON
|
|
256
|
-
(`--declarations-out <path>`, by default under `.fireforge/declarations/`)
|
|
257
|
-
and names the single `patch staged-dependency <holder> --add --from <file>`
|
|
258
|
-
call per holding patch that discharges them all, so moving tests out of a
|
|
259
|
-
patch that owns a shared manifest needs no declaration typed per manifest
|
|
260
|
-
line.
|
|
261
|
-
|
|
262
|
-
For `patch move-files`, `patch split` and a placed `export`:
|
|
263
|
-
|
|
264
|
-
- The projection of `patch move-files`, `patch split` and a placed `export`
|
|
265
|
-
lints with the queue's whole lint configuration, as the committed `lint
|
|
266
|
-
--per-patch` gate does. With `patchLint.forwardRegistration: "extended"`,
|
|
267
|
-
a shared test manifest's suite entries (`["browser_*.js"]`) are projected
|
|
268
|
-
with the move and written to the `--declarations-out` report, not only its
|
|
269
|
-
`support-files` lines. A dry run that reads clean stays clean after the
|
|
270
|
-
move.
|
|
271
|
-
- A refused `move-files --create` or `split` report names the patch the
|
|
272
|
-
rerun creates as the `owner` (its planned `<order>-<category>-<name>.patch`).
|
|
273
|
-
- The declarations `move-files` and `split` write, and every entry of their
|
|
274
|
-
report, carry a `reason` naming the move, such as
|
|
275
|
-
`"201-ui-tests.patch → 236-ui-suites.patch by patch move-files"`. The
|
|
276
|
-
`--add --from` call the refusal prints then needs no `--reason`; an
|
|
277
|
-
entry's own reason wins over the flag.
|
|
278
|
-
|
|
279
|
-
A re-export also drops a staged registration whose `creates` path no patch
|
|
280
|
-
in the queue owns any more, for example after a merge deleted the file it
|
|
281
|
-
registered. The dry run names the drop, and the write records it in the
|
|
282
|
-
history log (`re-export-staged-prune`). A registration whose
|
|
283
|
-
`creates` file exists in engine/, or is an `--expect-new` path of the run,
|
|
284
|
-
is kept and named ("kept: file exists but no patch owns it yet"): the
|
|
285
|
-
manifest owner can re-export after the declaration and before the scan
|
|
286
|
-
that adopts the file, in either order.
|
|
287
|
-
|
|
288
|
-
An `export --order` (or `--before`/`--after`) refused on a new system
|
|
289
|
-
module that no patch registers in moz.build says "register first". When the
|
|
290
|
-
module's moz.build line is already in the working tree but the patch that
|
|
291
|
-
owns that moz.build has not exported it, the refusal prints three steps:
|
|
292
|
-
declare the line as a staged registration on that patch, re-run the export,
|
|
293
|
-
then re-export that patch. With the declaration in place and the line in the
|
|
294
|
-
working tree, the export is accepted, with a note to re-export the
|
|
295
|
-
registering patch next.
|
|
296
|
-
|
|
297
|
-
The refusal offers the adopt-then-split sequence (`re-export --scan
|
|
298
|
-
--scan-file`, then `patch move-files --create`) only when the new file
|
|
299
|
-
shares a block of at least three consecutive substantive lines with an
|
|
300
|
-
existing patch, quotes the matched lines, and only when adopting the files
|
|
301
|
-
into that patch would itself pass: it names the forward import or the hard
|
|
302
|
-
size limit that would refuse the adopt instead. When the only error is the
|
|
303
|
-
missing registration, adopt-then-split is not offered at all.
|
|
304
|
-
|
|
305
|
-
This is the route for pruning a path from a reserved-range allowlist
|
|
306
|
-
(`patchPolicy.reservedRanges[].allowed[].files`). Remove the path from the
|
|
307
|
-
allowlist, restore its engine copy, and retire it with `--expect-removed`.
|
|
308
|
-
The re-export policy gate checks the `filesAffected` the export will write,
|
|
309
|
-
and only for the patch being written, so one patch's stale row cannot fail
|
|
310
|
-
the other patches in the same call.
|
|
311
|
-
|
|
312
|
-
### Registering files
|
|
313
|
-
|
|
314
|
-
`fireforge register <path>` adds a new file's line to the build manifest
|
|
315
|
-
that packages or runs it: a jar.mn, a moz.build list, a test manifest. Most
|
|
316
|
-
manifests are kept in sorted order, and the entry is inserted
|
|
317
|
-
alphabetically. `--after <entry>` places it after the line containing that
|
|
318
|
-
substring instead, where the manifest's rule supports it. Elsewhere the
|
|
319
|
-
flag is ignored with a warning, and an `--after` that matches nothing falls
|
|
320
|
-
back to sorted order with a warning.
|
|
321
|
-
|
|
322
|
-
An xpcshell test (`test_*.js` outside `browser/base/content/test/`) goes
|
|
323
|
-
into its directory's `xpcshell.toml` as a `["test_*.js"]` section, placed
|
|
324
|
-
as follows:
|
|
325
|
-
|
|
326
|
-
- The new section is inserted ahead of the `#` comment lines directly above
|
|
327
|
-
the entry it precedes, never between a comment and the entry it describes.
|
|
328
|
-
- `--after <entry>` places the new section after the named entry's whole
|
|
329
|
-
block, with its keys and before the next entry's comment. An exact
|
|
330
|
-
section name matches first, then a substring.
|
|
109
|
+
- A patch whose files hold no edit is left byte for byte.
|
|
110
|
+
- A file deleted in `engine/` is recorded as a deletion. A file the patch created that is absent from `engine/` leaves the patch.
|
|
111
|
+
- `--scan` also adopts edits no patch owns in the directories the selected patches' files are in. Each adopted file goes to the last selected patch with a file in its directory.
|
|
112
|
+
- `--stamp` stamps the rewritten patches with the project's Firefox version.
|
|
113
|
+
- `--dry-run` reports what would change and writes nothing.
|
|
114
|
+
|
|
115
|
+
### Files several patches change
|
|
116
|
+
|
|
117
|
+
When two or more patches change one file, an edit to that file goes to the last of them that is being re-exported. The others keep their change unchanged, and the patches after the receiving one are adjusted so they still apply. So to put an edit into an earlier patch, re-export only that patch:
|
|
331
118
|
|
|
332
119
|
```sh
|
|
333
|
-
fireforge
|
|
334
|
-
--after test_HominisStore.js
|
|
120
|
+
npx fireforge re-export ui-sidebar
|
|
335
121
|
```
|
|
336
122
|
|
|
337
|
-
|
|
338
|
-
nearest moz.build instead of refusing with "Manifest not found".
|
|
339
|
-
|
|
340
|
-
## Queue maintenance
|
|
341
|
-
|
|
342
|
-
Under `fireforge patch`:
|
|
343
|
-
|
|
344
|
-
- `patch compact` closes ordinal gaps, and is range-aware when
|
|
345
|
-
`patchPolicy.ranges` is configured.
|
|
346
|
-
- `patch reorder` moves a patch. `patch reorder --shift <n>
|
|
347
|
-
--from <order> [--through <order>]` (no patch name) renumbers a run of
|
|
348
|
-
patches up by `n` in one transaction, to open room for inserts.
|
|
349
|
-
`--through` defaults to the end of the run of consecutive occupied orders
|
|
350
|
-
of `--from`'s category. Retired and reserved slots inside the run move
|
|
351
|
-
with it (a moved reservation is named, so its holder can be told). A shift
|
|
352
|
-
that would land on an order a patch or slot holds past the run is refused.
|
|
353
|
-
Under `patchPolicy.allowGaps: false` the opened orders are recorded as
|
|
354
|
-
reservations (owner `patch reorder --shift`), so the queue stays valid,
|
|
355
|
-
and the `export --order` or `split --order` that takes each one fills it.
|
|
356
|
-
The shift checks the patch policy, projects the cross-patch lint
|
|
357
|
-
(refusing only on errors the shift adds), and commits under the patch
|
|
358
|
-
lock, refusing if the plan changed while it waited for confirmation.
|
|
359
|
-
`--map-out <file>` on `reorder` (every mode) and on `split` writes the
|
|
360
|
-
committed old-to-new filename map as a JSON object, so references to the
|
|
361
|
-
renumbered patches can be rewritten from the file:
|
|
362
|
-
|
|
363
|
-
```sh
|
|
364
|
-
fireforge patch reorder --shift 4 --from 104 --through 128 --map-out shift-map.json --yes
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
- `patch split <source> --files <paths...> --name <name>` carves files out of
|
|
368
|
-
a patch into a new one as a single transaction, including staged-dependency
|
|
369
|
-
owner rewrites, and supports `--dry-run`. `patch move-files <from> <to>
|
|
370
|
-
--create --order <n>` does the same with the files named by `--file`.
|
|
371
|
-
Both keep the staged declarations in step with the move and list every
|
|
372
|
-
change: owners (of forward imports and registrations alike) that named
|
|
373
|
-
the source for a moved `creates` path are re-pointed at the new patch, a
|
|
374
|
-
declaration whose declaring file moved goes with it, and a declaration the
|
|
375
|
-
move makes unused is dropped. The patch policy, including the gap rule, is
|
|
376
|
-
checked before any lint runs.
|
|
377
|
-
- `patch move-files` covers a whole split in one call:
|
|
378
|
-
- `--scan-file <path>` (repeatable) adopts a new engine file that no patch
|
|
379
|
-
owns into the destination (`<to>`, or the patch `--create` makes) in
|
|
380
|
-
the same transaction. Both bodies are linted as the transaction leaves
|
|
381
|
-
them, so the source is never judged on a body grown by an adoption the
|
|
382
|
-
move would shrink again. An owned or missing path is refused.
|
|
383
|
-
- `--retire-empty` lets a move into an existing patch take every file of
|
|
384
|
-
the source: the declarations whose `owner` is the source re-point to the
|
|
385
|
-
destination, the source's own declarations go with its files (one that
|
|
386
|
-
becomes self-owned is dropped), and the source is retired as by `patch
|
|
387
|
-
retire`, its order kept as a retired slot. Without the flag, a move that
|
|
388
|
-
would empty the source is refused and names the flag.
|
|
389
|
-
- A per-patch size refusal on either side names a tier change behind it,
|
|
390
|
-
for example `Tier change: the source becomes test tier (it was general
|
|
391
|
-
tier): 9634 lines against 6000.` A source that keeps only test files is
|
|
392
|
-
held to the test tier's ceiling for every line, so move its test files
|
|
393
|
-
out before its last product file.
|
|
394
|
-
- `patch rename` also supports `--category` and `--order`.
|
|
395
|
-
- `patch retire <name>` removes a patch like `patch delete` (same dependency
|
|
396
|
-
refusal, `--dry-run` and confirmation) but keeps its order number as a
|
|
397
|
-
retired slot in `patches.json#retired`, so `patchPolicy.allowGaps: false`
|
|
398
|
-
sees no gap and no later patch is renumbered. Use it for a patch emptied by
|
|
399
|
-
a rename. The slot has no `.patch` file and no row in `patches`: apply,
|
|
400
|
-
export, lint and rebase never see it, and only the gap check counts it as
|
|
401
|
-
occupied. A patch that later takes the order (`export --order <n>`, a
|
|
402
|
-
rename or a renumber) fills the slot, which then disappears. `patch
|
|
403
|
-
compact` renumbers through retired slots like any other gap.
|
|
404
|
-
- `patch delete` and `patch retire` name each file the patch creates that is
|
|
405
|
-
still on disk, in the dry run and at the prompt: once the patch is gone
|
|
406
|
-
nothing owns it, so `status` would report it unmanaged. Delete those files
|
|
407
|
-
first, or pass `--delete-created` to remove them as part of the confirmed
|
|
408
|
-
operation (under the engine lock as well). Files the patch only modifies
|
|
409
|
-
keep their edits and become unmanaged.
|
|
410
|
-
- `patch reserve <order> --category <c> --owner <label> [--reason <text>]`
|
|
411
|
-
holds an order for a patch a session has agreed to export but has not
|
|
412
|
-
exported yet. The reservation lives in `patches.json#reserved`. Like a
|
|
413
|
-
retired slot, the gap check counts it as occupied, so `export --order 571`
|
|
414
|
-
is legal while a peer holds 569 and 570. Unlike a retired slot, the
|
|
415
|
-
earliest-legal-order search and a default `export` skip it, because it is
|
|
416
|
-
held for its owner. The export that lands on the order fills it, with a
|
|
417
|
-
notice naming the owner. `patch reserve <order> --release` drops a
|
|
418
|
-
reservation whose patch will not come. An order a patch, a retired slot or
|
|
419
|
-
another reservation holds, or one outside the category's range, is
|
|
420
|
-
refused.
|
|
421
|
-
- `patch stage <name>...` stages the named patches' `.patch` files and only
|
|
422
|
-
their rows of `patches/patches.json` in the project repository's git index.
|
|
423
|
-
Every other row stays as at HEAD. The staged manifest is built from HEAD's
|
|
424
|
-
rows plus the named working rows (with their retired slots; a reservation
|
|
425
|
-
a staged row fills is dropped), validated, and written with `git
|
|
426
|
-
hash-object` and `git update-index`. A collision (two rows at one order) or
|
|
427
|
-
an invalid result is refused before the index is touched. The working copy
|
|
428
|
-
is never changed and nothing is committed. Name a patch the working copy
|
|
429
|
-
no longer has by its HEAD filename to stage its removal, and name both
|
|
430
|
-
filenames of a renamed patch. Every manifest write, a
|
|
431
|
-
re-export's row update included, puts every row, changed or not, in the one
|
|
432
|
-
canonical key order that `patch stage` writes, so after a write the working
|
|
433
|
-
copy and the index do not differ on key order alone.
|
|
434
|
-
- `patch staged-dependency <name> --remove` names the entries to remove by
|
|
435
|
-
any of `--file`, `--specifier`/`--line`, `--creates` and `--owner`. It needs
|
|
436
|
-
`--creates`, or `--file` with the matcher. Without `--kind`, `--specifier`
|
|
437
|
-
selects imports, `--line` selects registrations, and a selection with
|
|
438
|
-
neither searches both kinds, so `--creates` alone removes every
|
|
439
|
-
declaration for that created path, imports and registrations alike, which
|
|
440
|
-
is the cleanup after a merge deletes it. Registration lines compare
|
|
441
|
-
whitespace-insensitively, as the lint does. A selection that matches
|
|
442
|
-
nothing is refused with exit 8, on a dry run too, and the refusal lists
|
|
443
|
-
the patch's declarations of every kind it searched.
|
|
444
|
-
- `patch staged-dependency <name> --add --kind registration` warns when
|
|
445
|
-
`--line` matches no line the patch body adds to `--file`. Lines compare
|
|
446
|
-
with whitespace runs collapsed, inner spacing included, so a jar.mn line
|
|
447
|
-
aligned with two spaces matches a `--line` typed with one. The declaration
|
|
448
|
-
is still written, and the lint reports it as `staged-dependency-unused`
|
|
449
|
-
until the patch adds that line.
|
|
450
|
-
- `patch staged-dependency <name> --add --from <json-file>` adds many
|
|
451
|
-
declarations in one call under one lock hold. The file is a `lint
|
|
452
|
-
--per-patch --report` document (its findings' `stagedDeclarations` for
|
|
453
|
-
that patch) or a JSON array of `{ file, specifier | line, creates, owner?,
|
|
454
|
-
reason?, patch? }` entries; entries naming another patch are skipped, and
|
|
455
|
-
`--reason` fills entries without one. Every `staged-dependency` call logs
|
|
456
|
-
only its delta (`added` / `removed`) in the history. A history record may
|
|
457
|
-
carry the whole `before` / `after` lists instead.
|
|
458
|
-
- `--add` (single or `--from`) on a declaration already present
|
|
459
|
-
(same file, specifier or line, creates and owner) with a different
|
|
460
|
-
`reason` replaces the reason in place, keeping the entry's position in its
|
|
461
|
-
list. The summary counts these apart from additions, as in
|
|
462
|
-
`updated the reason of 87`, and the history logs each as the old entry
|
|
463
|
-
removed and the new one added. An `--add` without a reason never clears
|
|
464
|
-
one.
|
|
465
|
-
|
|
466
|
-
### Parking a session's edits
|
|
467
|
-
|
|
468
|
-
Several sessions edit the same files, and a peer's `re-export
|
|
469
|
-
--refuse-foreign-drift` refuses while another session's hunks sit in its
|
|
470
|
-
patch's files. `fireforge park <patch>` sets them aside: every drifted file of
|
|
471
|
-
the patch goes back to its queue-applied baseline (or, with `--hunks <diff>`,
|
|
472
|
-
only the named hunks come out of the working tree), and both sides of each
|
|
473
|
-
file are kept under `.fireforge/park/<label>/`. After the owner commits,
|
|
474
|
-
`fireforge park --restore <label>` three-way merges the parked edits back on
|
|
475
|
-
top of the commit. A conflict leaves markers, keeps the park and exits
|
|
476
|
-
non-zero. `park --list` and `park --drop <label>` manage parks, `--dry-run`
|
|
477
|
-
previews, and park takes the engine lock.
|
|
478
|
-
|
|
479
|
-
Before parking it warns when a hunk it takes out removes a Fluent message id,
|
|
480
|
-
or a whole file, that files outside the patch still reference. A parked
|
|
481
|
-
string still used by markup another patch owns makes `document.l10n.ready`
|
|
482
|
-
reject in every new window, so move it somewhere you own first.
|
|
483
|
-
|
|
484
|
-
Every queue-mutating patch command accepts `--wait-lock [seconds]`. See
|
|
485
|
-
[`configuration.md`](configuration.md#lock-waits) for how the budget
|
|
486
|
-
resolves.
|
|
487
|
-
|
|
488
|
-
## Linting the queue
|
|
489
|
-
|
|
490
|
-
`lint --per-patch --patches` accepts repeated flags, comma lists, full
|
|
491
|
-
filenames or stems, bare order numbers, manifest names, category-prefixed
|
|
492
|
-
slugs, and bare slugs. A list is also split on whitespace, so
|
|
493
|
-
a list held in one shell variable (`--patches "$P"` under zsh) selects every
|
|
494
|
-
patch it names. A name that matches no patch is refused with that name, its
|
|
495
|
-
nearest matches and the queue size, not with every patch in the queue.
|
|
496
|
-
|
|
497
|
-
`lint --per-patch --max-warnings 0` is the warning-clean form for a release
|
|
498
|
-
gate.
|
|
499
|
-
|
|
500
|
-
`lint --per-patch --notices summary` prints one line per check in place of
|
|
501
|
-
every NOTICE row, for example `NOTICE [large-patch-lines]: 180 across 172
|
|
502
|
-
patch(es), 150 of them suppressed by lintIgnore (see --report)`. On a green
|
|
503
|
-
queue those rows are reviewed waivers and under-threshold measurements, and
|
|
504
|
-
there can be hundreds of them. The default, `--notices full`, prints every
|
|
505
|
-
row. Errors and warnings always print in full, and the `--report`
|
|
506
|
-
JSON is the same in both modes.
|
|
507
|
-
|
|
508
|
-
`lint --per-patch --report <path>` writes a machine-readable JSON report with
|
|
509
|
-
each patch's line count, the `metric` it was counted in
|
|
510
|
-
(`patchLint.patchSizeMetric`: `diff` or `addedCode`), tier, active size
|
|
511
|
-
thresholds, issues, and issues suppressed by `lintIgnore`, plus the
|
|
512
|
-
cross-patch findings in `queueIssues`. A `forward-import` or
|
|
513
|
-
`forward-registration` finding carries the declarations that discharge it as
|
|
514
|
-
`stagedDeclarations`, which `patch staged-dependency --from` reads. Size-rule
|
|
515
|
-
issues carry the value they measured as `measurement`. The size metrics
|
|
516
|
-
(`countNonBinaryDiffLines`, `resolvePatchSizeTier`,
|
|
517
|
-
`getPatchSizeThresholds(tier, config)`) are also exported on the
|
|
518
|
-
programmatic API, with the file-size helpers `isTestFile`,
|
|
519
|
-
`resolveFileSizeThresholds` and `countCodeLines`. So is
|
|
520
|
-
`filesMeasuredByFileTooLarge(patchText)`, which returns the files
|
|
521
|
-
`file-too-large` measures in a patch: the JS files it creates, and never a
|
|
522
|
-
modified file or a new file of another kind. The rule selects its files
|
|
523
|
-
through that same function, so an audit that uses it cannot drift from the
|
|
524
|
-
rule. The API also exports the measurement the size rules
|
|
525
|
-
themselves take, `measurePatchSize(engineDir, diff, filesAffected, config)`
|
|
526
|
-
(lines, test-file lines, files and registration files under the configured
|
|
527
|
-
metric), `isPatchSizeRegistrationFile(file, globs)`, the per-line
|
|
528
|
-
`codeLineMask(file, content)` behind `countCodeLines`, and
|
|
529
|
-
`evaluatePatchPolicyContentForQueue(config, projectRoot, patchesDir,
|
|
530
|
-
manifest)`, the body-dependent `patchPolicy` rules `verify` runs. A waiver
|
|
531
|
-
audit or a policy probe can then measure a patch exactly as the lint does,
|
|
532
|
-
without importing `dist/` files by path.
|
|
533
|
-
|
|
534
|
-
`lint --per-patch` measures sizes on the working tree, the way export and
|
|
535
|
-
re-export do: each patch's diff is taken against the engine baseline from
|
|
536
|
-
the files in `engine/`, and `file-too-large` reads the file on disk. A test
|
|
537
|
-
file grown past its tier fails the lint gate while the edit is in progress,
|
|
538
|
-
without a re-export first. See
|
|
539
|
-
[`configuration.md`](configuration.md#patchlint) for the size metrics and
|
|
540
|
-
thresholds.
|
|
541
|
-
|
|
542
|
-
Per-patch lint type-checks plain Firefox JS against a built-in
|
|
543
|
-
Firefox-globals shim that tracks upstream WebIDL additions per release. A
|
|
544
|
-
`resource://` or `chrome://` import resolves to the module the queue
|
|
545
|
-
creates under that name; a test script's own program sees the modules
|
|
546
|
-
created up to the test's patch. An import the program cannot resolve (a
|
|
547
|
-
module a later patch creates, an upstream module, or a basename two
|
|
548
|
-
patches create) is typed `any`, and so is a type-member reference through
|
|
549
|
-
it (`import("…").Type`); an implicit-`any` finding in a file with such an
|
|
550
|
-
import names it, since the whole-tree `fireforge typecheck` sees the real
|
|
551
|
-
type. `fireforge typecheck --explain <file>` prints which program checks a
|
|
552
|
-
file and how its imports resolve there. See
|
|
553
|
-
[`configuration.md`](configuration.md#patchlint) for the project hooks
|
|
554
|
-
(`checkJsExtraShim`, `checkJsTestFiles`, `checkJsTestShim`).
|
|
555
|
-
|
|
556
|
-
For release whitespace checks, use `npm run whitespace:check`. It checks
|
|
557
|
-
source diffs while excluding the diff syntax of generated
|
|
558
|
-
`patches/*.patch` files.
|
|
559
|
-
|
|
560
|
-
### License headers
|
|
561
|
-
|
|
562
|
-
A file a patch creates must open with the project's license header
|
|
563
|
-
(`missing-license-header`, an error). A JS or CSS file may keep upstream
|
|
564
|
-
Mozilla's MPL-2.0 block header instead, whatever the project license. A file
|
|
565
|
-
a patch modifies must still carry a recognized header in its first ten lines
|
|
566
|
-
(`modified-file-missing-header`, a warning): any known license header, an
|
|
567
|
-
SPDX tag, a common license name, or the CC0 dedication on Mozilla's tests.
|
|
568
|
-
The MPL header is matched whatever its wrap: `//` lines, or a `/* … */` block
|
|
569
|
-
with `*` or `-` continuation lines (Mozilla's dashed form,
|
|
570
|
-
`/* - This Source Code Form …`), behind any editor-directive comments.
|
|
571
|
-
|
|
572
|
-
Some upstream files carry no header at all. A patch that modifies one takes
|
|
573
|
-
a reviewed `lintIgnore` entry instead of a license the file never had:
|
|
123
|
+
## Throwing edits away: `discard` and `reset`
|
|
574
124
|
|
|
575
125
|
```sh
|
|
576
|
-
fireforge
|
|
126
|
+
npx fireforge discard browser/base/content/browser.js
|
|
127
|
+
npx fireforge reset --yes
|
|
577
128
|
```
|
|
578
129
|
|
|
579
|
-
|
|
130
|
+
- `discard <paths>` puts files back: a file the queue touches gets the queue's content (re-created or removed as the queue has it), any other changed file goes back to upstream, and an untracked file is deleted. Paths are relative to `engine/`, or to the current directory when you run the command inside `engine/`. A directory covers every changed file below it.
|
|
131
|
+
- `reset` restores every tracked file of `engine/` to pristine Firefox and removes untracked files, keeping the build output. A paused import or rebase is dropped. Without a terminal it needs `--yes`. Run `fireforge import` afterwards to apply the queue again.
|
|
580
132
|
|
|
581
|
-
|
|
582
|
-
built on the host (a pinned requirement missing from PyPI, or a host Python
|
|
583
|
-
the requirements do not support), no Mozilla-configured ESLint runs, and a
|
|
584
|
-
bare `engine/node_modules/.bin/eslint` lacks the chrome-script globals and
|
|
585
|
-
reports mostly noise. FireForge's own checks cover part of the gap:
|
|
133
|
+
Both save a recovery snapshot first.
|
|
586
134
|
|
|
587
|
-
|
|
588
|
-
(paths relative to `engine/`; a leading `engine/` is accepted, and a
|
|
589
|
-
directory takes its modified and untracked files). It runs the
|
|
590
|
-
patch-quality rules on those files' diff against HEAD, plus the checkJs
|
|
591
|
-
pass when `patchLint.checkJs` is on. It needs no build.
|
|
592
|
-
- `fireforge lint --per-patch --patches <patch>` lints one patch's queued
|
|
593
|
-
diff, the gate an export is held to.
|
|
594
|
-
- `fireforge typecheck` type-checks the configured jsconfig projects.
|
|
135
|
+
## Recovery snapshots
|
|
595
136
|
|
|
596
|
-
|
|
597
|
-
still fail `./mach eslint` once the virtualenv builds again.
|
|
137
|
+
Before a command destroys engine edits (`discard`, `reset`, `import --force`, `rebase --force`, `rebase --abort`, `download --force`), it saves the working tree of `engine/` as a commit under `refs/fireforge/recovery/<time>-<label>-<id>` in the engine's git repository and prints the ref. The newest 20 are kept. The repository's index, HEAD and branches do not move.
|
|
598
138
|
|
|
599
|
-
|
|
139
|
+
```sh
|
|
140
|
+
git -C engine for-each-ref refs/fireforge/recovery/
|
|
141
|
+
git -C engine diff HEAD refs/fireforge/recovery/<ref> -- browser/base/content/browser.js
|
|
142
|
+
git -C engine checkout refs/fireforge/recovery/<ref> -- browser/base/content/browser.js
|
|
143
|
+
```
|
|
600
144
|
|
|
601
|
-
|
|
602
|
-
size, so a waived file can keep growing. For the measured size rules
|
|
603
|
-
(`file-too-large`, `large-patch-lines`, `large-patch-files`) an entry can
|
|
604
|
-
instead carry a ceiling:
|
|
145
|
+
## Queue operations: `patch`
|
|
605
146
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
147
|
+
Each operation is one transaction on the queue. The ones that move content between patches replay the queue and are refused when the result would differ from what the queue produced before.
|
|
148
|
+
|
|
149
|
+
```sh
|
|
150
|
+
npx fireforge patch rename ui-sidebar ui-side-panel
|
|
151
|
+
npx fireforge patch reorder ui-toolbar --before ui-sidebar
|
|
152
|
+
npx fireforge patch split ui-sidebar browser/modules/Sidebar.sys.mjs --name ui-sidebar-module
|
|
153
|
+
npx fireforge patch move-files ui-toolbar ui-sidebar browser/base/content/toolbar.css
|
|
154
|
+
npx fireforge patch delete ui-misc
|
|
155
|
+
npx fireforge patch retire ui-old-toolbar --reason "Folded into ui-toolbar"
|
|
156
|
+
npx fireforge patch compact
|
|
157
|
+
npx fireforge patch set ui-sidebar --description "The sidebar panel" --tier none
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
- `rename`: order, body and metadata stay; the file follows the name.
|
|
161
|
+
- `reorder`: `--order`, `--before` or `--after`. An occupied order is freed by moving the run of patches above it up by one. Patches that change the same lines keep their relative order.
|
|
162
|
+
- `split`: moves some files of a patch into a new patch, right after it unless placed elsewhere. Staged dependencies declared on the moved files go with them.
|
|
163
|
+
- `move-files`: moves files from one patch into another. Where the target already changes a file, the two changes are combined. A source patch left with no files is removed.
|
|
164
|
+
- `delete`: removes a patch. `engine/` is not touched: its files keep their content and belong to no patch (`fireforge discard` puts them back). Refused when another patch does not apply without it.
|
|
165
|
+
- `retire`: like `delete`, but the order stays recorded in `retired`, so no other patch gets it and the gap check sees no gap.
|
|
166
|
+
- `compact`: closes gaps in the numbering, keeping the apply order. With `patchPolicy.ranges`, each category range is numbered from its first patch.
|
|
167
|
+
- `set`: edits metadata without touching the body: `--description`, `--tier branding|none`, `--lint-ignore <rule>` (with `--max <n>` and `--reason` for a size ceiling), `--remove-lint-ignore <rule>`, `--staged-dependency <file>:<creates>`, `--remove-staged-dependency <file>:<creates>`.
|
|
612
168
|
|
|
613
169
|
```sh
|
|
614
|
-
fireforge patch
|
|
170
|
+
npx fireforge patch set ui-sidebar --lint-ignore large-patch-lines --max 1800 --reason "Reviewed: one feature"
|
|
171
|
+
npx fireforge patch set ui-sidebar --staged-dependency browser/base/content/browser-sidebar.js:browser/modules/Sidebar.sys.mjs --reason "Module lands in ui-sidebar-module"
|
|
615
172
|
```
|
|
616
173
|
|
|
617
|
-
|
|
618
|
-
agent or a script) needs `--yes`.
|
|
619
|
-
|
|
620
|
-
The finding stays suppressed while its measurement (lines for the line
|
|
621
|
-
rules, files for `large-patch-files`) is at or below `max`, and fires at its
|
|
622
|
-
own severity past it, with a message naming the ceiling. Once the rule no
|
|
623
|
-
longer reaches its own warning band, `lint --per-patch` prints a
|
|
624
|
-
`lint-ignore-removable` notice naming the `patch lint-ignore --remove`
|
|
625
|
-
command, and the `--report` JSON carries each ceiling under
|
|
626
|
-
`lintIgnoreCeilings` with its current `measurement` and a `state` of
|
|
627
|
-
`within`, `exceeded` or `removable`. A notice never exceeds a ceiling: it
|
|
628
|
-
gates nothing, so a notice-band measurement past `max` surfaces as the plain
|
|
629
|
-
notice it is. The report's `lintIgnoreWaivers` lists every entry, bare IDs
|
|
630
|
-
included (`kind: "bare"`, `max: null`), with the same `measurement` and
|
|
631
|
-
`state`, so an audit does not have to re-measure bare waivers from
|
|
632
|
-
`suppressedIssues`. For a bare waiver the state is informational:
|
|
633
|
-
`removable` also covers a rule this lint does not run. An `--add` for a rule
|
|
634
|
-
that already has an entry replaces it, so the same command moves a ceiling
|
|
635
|
-
or widens it back to a bare waiver. `export` and `re-export --lint-ignore
|
|
636
|
-
<id>` only append bare IDs, and never widen an existing ceiling. The manifest
|
|
637
|
-
refuses a ceiling on any other rule, and a second entry for the same rule.
|
|
638
|
-
|
|
639
|
-
Under `patchSizeMetric: "addedCode"` a general-tier patch's
|
|
640
|
-
`large-patch-lines` findings carry `share: "product"` (non-test files) or
|
|
641
|
-
`share: "test"` (test files, held to the test tier). A ceiling can name the
|
|
642
|
-
share it bounds, and `large-patch-lines` may then carry one ceiling per
|
|
643
|
-
share instead of a single one:
|
|
174
|
+
With `patchPolicy` set, an operation that would create a policy problem (an order outside the category's range, a missing description under `requireDescription`, a name the `filenamePattern` refuses) is refused, or only reported under `mutationMode: "warn"`.
|
|
644
175
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
]
|
|
176
|
+
## Checking the queue
|
|
177
|
+
|
|
178
|
+
```sh
|
|
179
|
+
npx fireforge verify
|
|
180
|
+
npx fireforge lint --per-patch
|
|
651
181
|
```
|
|
652
182
|
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
183
|
+
- `verify` checks the manifest, every patch body, and that the queue replays onto the engine's `HEAD`. It reports patch files the manifest does not list (`stray-patch-file`), empty patches (`empty-patch`), unsafe paths and binary sections without content, ordering-policy problems (`patch-policy`), a patch that creates a file upstream already has (`replaces-upstream-file`, fixed by re-exporting it), and a patch that does not apply (`does-not-apply`).
|
|
184
|
+
- `lint` judges what `engine/` holds. `--per-patch` judges the stored queue patch by patch instead, which is what CI should run: it sees exactly what is committed.
|
|
185
|
+
|
|
186
|
+
`status` lists every owned path with its patch, and these states:
|
|
656
187
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
188
|
+
| Code | Meaning | Fix |
|
|
189
|
+
| ---------------- | -------------------------------------------------------------------- | ---------------------------------------------------- |
|
|
190
|
+
| `unexported` | Edited since its patch was written | `fireforge re-export` or `discard` |
|
|
191
|
+
| `unmanaged` | Changed, and no patch holds it | `fireforge export <path>` or `discard` |
|
|
192
|
+
| `unapplied` | The queue changes it, and the engine holds the upstream state | `fireforge import` |
|
|
193
|
+
| `outdated` | The engine holds what an earlier import wrote; the queue moved since | `fireforge import` |
|
|
194
|
+
| `missing` | Absent from the engine where the queue leaves a file | `fireforge discard <path>` |
|
|
195
|
+
| `session-paused` | An import or rebase is unfinished | `fireforge import --continue` or `rebase --continue` |
|
|
196
|
+
| `does-not-apply` | A patch does not apply | `fireforge import` |
|
|
197
|
+
|
|
198
|
+
## Moving to another Firefox version: `rebase`
|
|
665
199
|
|
|
666
200
|
```sh
|
|
667
|
-
fireforge
|
|
668
|
-
fireforge patch lint-ignore 310-ui-sidebar --from lint-report.json --yes
|
|
201
|
+
npx fireforge rebase --to 140.10.0esr
|
|
669
202
|
```
|
|
670
203
|
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
`fireforge status --check` exits non-zero when any unmanaged, drifted, or
|
|
674
|
-
conflicted file exists. `--fail-on <class,...>` tunes the policy set, and
|
|
675
|
-
`--json` composes with it: the JSON stays parseable and its `files[]` entries
|
|
676
|
-
name the owning `patch`. `--include-ownership` adds ownership rows to JSON
|
|
677
|
-
status output.
|
|
678
|
-
|
|
679
|
-
`ownership-conflict` is a `--fail-on` class beside the file classifications:
|
|
680
|
-
a path claimed by more than one patch, judged from the same rows as
|
|
681
|
-
`--include-ownership` (so it fails on a clean tree too). It is not in the
|
|
682
|
-
default set. `--allow <class,...>` names classes that never fail and removes
|
|
683
|
-
them from the fail set. `--fail-on-unknown` (which needs `--allow`) fails
|
|
684
|
-
every class present that neither list names, so a gate written today keeps
|
|
685
|
-
failing closed when a later FireForge adds a classification:
|
|
686
|
-
|
|
687
|
-
```bash
|
|
688
|
-
npx fireforge status --json --summary \
|
|
689
|
-
--fail-on unmanaged,patch-owned-drift,conflict,ownership-conflict \
|
|
690
|
-
--allow patch-backed,branding,furnace,binary-unsupported --fail-on-unknown
|
|
691
|
-
```
|
|
204
|
+
`rebase` downloads the version (`--product`, `--sha256` and `--candidate` pin it further), writes it to `fireforge.json`, replaces `engine/` with a checkout of the new source, and applies the queue again with reduced context, rewriting every patch against the new source and stamping it with the new version. Edits no patch holds are refused; capture them first, or pass `--force` to save them in a recovery snapshot and go ahead.
|
|
692
205
|
|
|
693
|
-
|
|
694
|
-
and marks an offender that failed only through `--fail-on-unknown` with
|
|
695
|
-
`"unnamed": true`. Under `--check` the full `--json` payload carries the
|
|
696
|
-
`check` block too, not only `--summary`.
|
|
697
|
-
|
|
698
|
-
On a shared engine, `--patches <list>` judges only the named patches:
|
|
699
|
-
`status` keeps the files each one owns or claims (and, with `--ownership` or
|
|
700
|
-
the ownership checks, the rows naming it), and `verify` keeps the findings
|
|
701
|
-
that name it. Patches are named the way `lint --per-patch --patches` names
|
|
702
|
-
them (filename, stem, order number, manifest name or slug; repeated, or
|
|
703
|
-
separated by commas or whitespace). A peer's drifted
|
|
704
|
-
patch then does not turn this session's gate red. The limit is the
|
|
705
|
-
point: an unmanaged file belongs to no patch, so a scoped run never judges
|
|
706
|
-
unexported files, this session's included. Run the unscoped gate before a
|
|
707
|
-
commit that should cover them. `lint --per-patch --patches` keeps every
|
|
708
|
-
queue finding that names a scoped patch, even on a file the patch no longer
|
|
709
|
-
touches (a stale `staged-dependency-unused` declaration). `verify --patches` keeps findings about the
|
|
710
|
-
queue as a whole (a `patches.json` that does not parse) whatever the scope.
|
|
711
|
-
|
|
712
|
-
`verify` resolves every `resource:///modules/…` and `resource://gre/modules/…`
|
|
713
|
-
`.sys.mjs` specifier the queue's files import, and fails on a fork module that
|
|
714
|
-
is missing or that no `moz.build` at or above its directory registers. Such
|
|
715
|
-
an import otherwise crashes every browser start of the objdir, or kills
|
|
716
|
-
xpcshell with no output. An unscoped run also scans the engine worktree:
|
|
717
|
-
changed files are read for imports, and untracked files count as fork
|
|
718
|
-
modules. That covers a chrome script's lazy getter for a module that neither
|
|
719
|
-
file has exported yet.
|
|
720
|
-
|
|
721
|
-
`fireforge check` composes the static gates into one command: `status`
|
|
722
|
-
(as `--json --summary --check`), `verify`, `lint --per-patch`,
|
|
723
|
-
`typecheck`, `furnace validate` and `token coverage`, plus the project's
|
|
724
|
-
`check.extraSteps[]` (see [`configuration.md`](configuration.md#check)). The
|
|
725
|
-
steps run in parallel as child `fireforge` processes, so each behaves exactly
|
|
726
|
-
as it does standalone and takes only its own locks; `check` takes none
|
|
727
|
-
itself. None of the built-in steps takes the engine session lock. The one
|
|
728
|
-
built-in step that writes, `typecheck` (it regenerates a stale Furnace
|
|
729
|
-
jsconfig), runs before `furnace validate`, which reads that file. `--patches`
|
|
730
|
-
is forwarded to status, verify and lint. `--only` and `--skip` narrow the
|
|
731
|
-
step list, and `--jobs <n>` caps how many run at once. The run ends with a
|
|
732
|
-
per-step table and one verdict line:
|
|
206
|
+
`--dry-run` reports whether the queue applies to the target version and changes nothing.
|
|
733
207
|
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
208
|
+
When a patch does not apply, the rebase pauses exactly as `import` does: fitting hunks applied, `.rej` files for the rest. Fix the files in `engine/`, then:
|
|
209
|
+
|
|
210
|
+
```sh
|
|
211
|
+
npx fireforge rebase --continue
|
|
737
212
|
```
|
|
738
213
|
|
|
739
|
-
|
|
740
|
-
lines are printed under the table.
|
|
214
|
+
Repeat until the rebase completes. The queue itself is written once, at the end. To give up:
|
|
741
215
|
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
216
|
+
```sh
|
|
217
|
+
npx fireforge rebase --abort
|
|
218
|
+
```
|
|
745
219
|
|
|
746
|
-
|
|
220
|
+
`--abort` puts back the previous version in `fireforge.json`, a checkout of it in `engine/`, and the queue applied, after a recovery snapshot of the engine.
|
|
747
221
|
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
222
|
+
## Moving to source mode
|
|
223
|
+
|
|
224
|
+
```sh
|
|
225
|
+
git add -A && git commit -m "Before migration"
|
|
226
|
+
npx fireforge migrate --to-source
|
|
752
227
|
```
|
|
753
228
|
|
|
754
|
-
`
|
|
755
|
-
replaces `engine/` wholesale, so applied patches, unexported edits and
|
|
756
|
-
commits made in `engine/` are gone once the new tree is active. When the
|
|
757
|
-
engine it is about to replace has changed paths against HEAD, or HEAD has
|
|
758
|
-
moved off the recorded base commit, it names the loss (how many changed
|
|
759
|
-
paths match the patch queue and how many do not) and asks first. A
|
|
760
|
-
non-interactive run refuses unless `--yes` is given. A clean engine is
|
|
761
|
-
replaced without a prompt.
|
|
762
|
-
|
|
763
|
-
`npx fireforge rebase --dry-run` replays the queue onto the engine's HEAD
|
|
764
|
-
without touching `engine/`. It seeds a private index from HEAD and applies
|
|
765
|
-
each patch there with `git apply --cached`, in queue order, walking the same
|
|
766
|
-
context-reduction ladder as the real run (exact, then `-C2`, `-C1`, `-C0`,
|
|
767
|
-
bounded by `--max-fuzz`). Each patch is reported as `clean`, `reduced
|
|
768
|
-
context` (with the step it needed) or `reject` (with the files git named).
|
|
769
|
-
It exits 6 when anything rejects. A reject after an earlier one is marked
|
|
770
|
-
as possibly cascading from it, since the replay continues without the
|
|
771
|
-
rejected patch. Run it after the download, when HEAD is the new source. The
|
|
772
|
-
header names the previous pin as "from": `firefox.version` in the
|
|
773
|
-
`fireforge.json` committed at the project's HEAD, the tree the queue was
|
|
774
|
-
last applied to. The patch stamps follow on their own line
|
|
775
|
-
(`Patch stamps: 317 at 153.0esr, 5 at 153.3.0esr`), oldest first and
|
|
776
|
-
compared as versions rather than strings, because patches untouched since an
|
|
777
|
-
older hop keep their older stamp. When no committed pin precedes the target
|
|
778
|
-
(the project is not a repository, or the pin move is already committed), the
|
|
779
|
-
header falls back to the oldest stamp and says so. The header also warns
|
|
780
|
-
when `engine/` is not yet on the pinned version.
|
|
781
|
-
|
|
782
|
-
A source refresh replaces `engine/node_modules`, which an engine-ESLint
|
|
783
|
-
ratchet runs from. `fireforge doctor` warns ("Engine ESLint installed") until
|
|
784
|
-
it is back. Reinstall it with `cd engine && ./mach npm ci --no-audit
|
|
785
|
-
--no-fund`, which installs only the node dependencies. `./mach eslint
|
|
786
|
-
--setup` also builds mach's Python `lint` virtualenv, and that step fails
|
|
787
|
-
whenever a requirement it pins is no longer served by PyPI.
|
|
788
|
-
|
|
789
|
-
If a patch fails, fix the reject inside `engine/`, then run
|
|
790
|
-
`npx fireforge rebase --continue`. A rebase leaves the engine mutated on
|
|
791
|
-
purpose, so its apply-and-persist pairs are held across a signal rather than
|
|
792
|
-
rolled back. See invariant 4 in
|
|
793
|
-
[`lifecycle-invariants.md`](lifecycle-invariants.md).
|
|
229
|
+
`migrate --to-source` replays the queue onto the pinned Firefox and writes the result as owned files under `src/` with an override record per changed upstream file. Each patch becomes a component. `fireforge.json` takes `"mode": "source"`, a `source` block, each patch's tier and lint waivers, and `exportQueue.groups` that keep each patch's created files together in an export (named `<patch>-created` when the patch also changed upstream files, since two groups may not share an ID). The result is proven to reproduce the tree the queue replays to before anything is kept. `patches/` is removed; git is the undo. [source-workflow.md](source-workflow.md) continues from there.
|