oxidecomputer / oxidecomputer/omicron
Blueprints should store the reasons zone dispositions were changed
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
In #5493, we realized that blueprint diffs weren't quite clear about why a disposition was changed. That's because blueprints themselves don't have any persistent information about this.
To address this, we should consider storing a zone log (append-only?) next to each zone which indicates the particular blueprint an action was taken in, and why that was done.
For diffs it may be a bit confusing to see the zone log if the "before" blueprint isn't an ancestor of the "after" blueprint. We'll have to see how it looks, but may need to make blueprint diffs aware of the ancestor relationship, and enhance their output accordingly. Ancestor and cousin blueprint diffs definitely feel different to me in ways that implementing this will hopefully elaborate.
(We're reinventing bits of a source control system. :) )
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing blueprint diff behavior and how zones and dispositions are represented. Define what persistent zone logs should record, then validate how ancestor and cousin blueprint diffs should present that history; done means the reason and blueprint for each disposition change are retained and reflected clearly in diffs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100