Skip to content

refactor(build): default to a full provisioned build; add --fast - #111

Merged
dakejahl merged 1 commit into
mainfrom
refactor/build-provision-by-default
Jul 24, 2026
Merged

refactor(build): default to a full provisioned build; add --fast#111
dakejahl merged 1 commit into
mainfrom
refactor/build-provision-by-default

Conversation

@dakejahl

Copy link
Copy Markdown
Collaborator

Summary

Invert build.sh's defaults so a bare ./build.sh <TARGET> produces a full, provisioned, ship-ready image. Quick rebuilds and bare images become explicit opt-outs (--fast, --no-provision).

Problem

--clean and --provision were opt-in, so the common and correctness-critical case — a provisioned image with ARK-OS and the pinned camera stack — required remembering two flags, while the rare case (a fast kernel-only rebuild) was the flagless default. Forgetting the flags silently produced a stock, unprovisioned image, and --provision on an already-staged tree quietly no-op'd. This is the class of confusion behind #110: a build that ships the stock 36.5.0 camera stack instead of the pinned +ark1 one.

Solution

The default is now clean + provision + build. Two opt-outs:

  • --fast — reuse the existing staged tree, recompile the kernel/device tree only. Errors if nothing is staged, so it can't silently ship an unprovisioned image.
  • --no-provision — fresh stage + build, skip provisioning (the compile-check path).

--clean/--provision remain accepted as harmless no-ops. CI's PR/main compile-check moves to --no-provision so it no longer provisions (or hits NVIDIA/GitHub) on every push; tag builds keep --provision explicit. Comments and docs referencing the old opt-in flags are updated to match.

build.sh's --clean and --provision were opt-in, so the common and
correctness-critical case (a provisioned, ship-ready image with ARK-OS
and the pinned camera stack) needed two flags, while the rare case (a
quick kernel-only rebuild) was the flagless default. Forgetting the
flags silently produced a stock, unprovisioned image.

Invert it: a bare `./build.sh <TARGET>` now wipes staging, re-stages,
provisions, and builds. Two opt-outs cover the rest:
  --fast          reuse the existing staged tree, recompile only; errors
                  if nothing is staged, so it can't silently ship stock
  --no-provision  fresh stage + build, skip provisioning (compile-check)

--clean/--provision stay accepted as no-ops. CI's PR/main compile-check
moves to --no-provision so it doesn't provision (or hit the network) on
every push; tag builds keep --provision explicit.
@dakejahl

Copy link
Copy Markdown
Collaborator Author

@HumphreyGremsySolutions this should help

@dakejahl
dakejahl merged commit 3f237c0 into main Jul 24, 2026
1 check passed
@dakejahl
dakejahl deleted the refactor/build-provision-by-default branch July 24, 2026 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant