oxidecomputer / oxidecomputer/omicron
ideally, omicron-omdb should not depend on omicron-nexus
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
#10447 added a dependency from the omicron-omdb crate to omicron-nexus in order to access omicron_nexus::app::crucible::crucible_pantry_client_volume_health. This function is not used by Nexus itself and appears to exist in Nexus to rely on some of the types defined in the same module.
While I have not landed this change yet, I've had plans for a while to split up the builds during cargo xtask releng to allow the packages included on the host OS to be built separately from the zones that are distributed on their own in the TUF repo, with the goal of parallelizing the two longest tasks: building omicron-nexus and building the host OS image. omdb is in the switch zone and thus the host image, and adding this edge to the dependency graph eliminates this optimization.
(Note: the dev-dependency from omicron-omdb to omicron-nexus is fine.)
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 tracing omicron_nexus::app::crucible::crucible_pantry_client_volume_health and the types in its module, then inspect the omicron-omdb production dependency and the cargo xtask releng build graph. Done means omicron-omdb no longer depends on omicron-nexus for its normal build, the releng host-image and Nexus builds can be independent, and the dev-dependency remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100