Applying changes
buildprint apply pushes local workspace changes back to Bubble. It is the final step after sync, edit, and check.
buildprint check
buildprint applyFresh check requirement
Apply requires a fresh successful unfiltered buildprint check for the current Bubble baseline and the current pending changes. If files changed after the last check, apply fails with:
Workspace changed since the last successful `buildprint check`. Run `buildprint check` and retry.Targeted checks, path checks, and rule-filtered checks do not satisfy this requirement.
What apply does
1. Verifies linked auth and the current branch workspace. 2. Ensures the branch folder name matches the checked-out git branch. 3. Confirms the workspace app and branch match any positional arguments you passed. 4. Requires the fresh check record unless --force-apply is used. 5. Reruns the internal validation pass unless --no-check or --force-apply is used. 6. Auto-commits unapplied local edits when needed with Apply from <appId>/<branch>. 7. Assembles the Bubble snapshot and local head, diffs them, and sends Bubble write operations through Buildprint. 8. Sends changed tests/ definitions through the Buildprint tests apply route. 9. Advances the local Bubble snapshot and published refs on success.
If there are no app or test changes to apply, the command returns an unchanged JSON result.
Arguments and flags
buildprint apply
buildprint apply <appId> <branch>
buildprint apply --no-check
buildprint apply --allow-large-apply
buildprint apply --force-applyPositional appId and branch are safety checks only. They must match the workspace values; they do not redirect the apply.
Flags:
--no-checkskips the internal validation rerun, but still requires the fresh successfulbuildprint checkrecord.--allow-large-applyallows apply when the local Bubble base is suspiciously tiny and the workspace is substantial.--force-applybypasses check freshness, internal validation, and large-apply safety gates. Use only for exceptional recovery.
Output
Apply always prints a JSON line:
{"ok":true,"appId":"my-app","branch":"test","seconds":1.2,"kind":"applied","applied":3,"summary":{}}Possible kind values are applied and unchanged. Scripts can parse this line directly.
Auto-commit behavior
If the worktree has uncommitted changes that differ from the Bubble snapshot, apply stages only those pending apply paths and creates a commit. If you want a custom commit message or a multi-commit history, commit manually before running apply.
When apply fails
Common causes:
The workspace changed since the last successful check. Run
buildprint checkagain.The folder name and checked-out git branch do not match. Follow the printed
cdorgit checkoutguidance.The local Bubble snapshot is missing. Recreate the branch workspace with
buildprint project clone.Bubble or Buildprint rejects the write because of permissions, branch scope, or stale remote state. Run
buildprint sync, resolve any merge conflicts, runbuildprint check, and retry.
Use git status, git diff, and git log buildprint/<branch>..HEAD to review what will be applied.