Skip to content

Update and diff modes for lifecycle management #53

Description

@omattsson

Problem

After initial bootstrap, workspaces have no easy way to incorporate template improvements from new tool versions. Users must either re-generate and manually merge, or ignore updates entirely.

Proposed Solution

Two new CLI modes for managing the lifecycle of generated files:

bootstrap-iac diff

Show what would change if you re-generated from current templates, without writing anything.

# Compare current generated files against what would be produced
bootstrap-iac diff

# With explicit config
bootstrap-iac diff --config .bootstrap-iac.yaml

Output: a unified diff for each file that would change, plus a summary of new/removed files.

bootstrap-iac update

Re-generate files, intelligently merging template improvements while preserving user customizations.

# Interactive update — prompts for each conflict
bootstrap-iac update

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # rs# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #ru# # `

### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Merge Strat### Miles fro### Merge Strat### generate and add
- **Removed templates**: warn but do not delete user files

### Implementation### Implementation### Implementation### Implementation### Implementation### Implementationt or### Imat### Implementation### Implementation### Implementation### Impleem### Implementatigeneration time
- `diff` is read-only and safe; `update` modifies files
- D- end- D- end- D- end- D- end- D- end- D- end- D- end- D- end- D- end- D- end- D- end- D- en

- [ ] `bootstrap-iac diff` shows - [ ] `bootstrap-iac diff` shows - [ ] `bootstrap-iac diff` shows - [ ] `bootstrap-iac diff` shows  ] - [ ] n/- [ ] `bootstrap-iac diff` shows - [ ] `bootstrap-t- [ ] `bootstrap-ia-interactive updates
- [ ] Tests covering: diff output, update with no changes, update with conflicts
- [ ] Document in cli/README.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions