oxidecomputer / oxidecomputer/omicron
Consider breaking up big Nexus 🔨
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
As @jgallagher helpfully showed during our weekly Rust study, cargo build --timings generates a nice report of build times.
From this report, there are some particularly bad offenders - among them, Nexus take 60+ seconds to compile.
By breaking Nexus into smaller crates, we could:
- Get better incremental compilation results - @cbiffle mentioned this was handy for Hubris folks
- Get better visibility in "what takes so long build". This could help us make further optimizations, and keep developer productivity high.
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 running cargo build --timings and inspect the Nexus build report to identify the compile-time offenders. The issue names no files or tests, so first map the Nexus crate and its dependencies, then determine suitable crate boundaries. Done means Nexus is split into smaller crates with improved incremental-build visibility and results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100