oxidecomputer / oxidecomputer/omicron
`cargo nextest` could be verified (and downloaded) with other prerequisite dependencies
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
I noticed while looking at #3939 that cargo nextest is handled differently from other dependency requirements for developing omicron: Instead of it being automatically downloaded as a part of the normal "prerequisite" script flow, the repo-level README mentions downloading or installing it specifically before running the prerequisite scripts. For CI, the binary is downloaded explicitly before the prerequisite script is run:
https://github.com/oxidecomputer/omicron/blob/3412cb17e5d52796ad5a81020992d6a851f89f92/.github/buildomat/build-and-test.sh#L14
I could understand wanting to give developers some flexibility here in terms of how this tool is installed. At the least, I think our tooling should be checking that cargo nextest is on the system, perhaps in terms of PATH, like we have done for other expected binaries:
https://github.com/oxidecomputer/omicron/blob/3412cb17e5d52796ad5a81020992d6a851f89f92/tools/install_builder_prerequisites.sh#L204-L211
I think ideally the prerequisite tools (such as the one I am working on for #3939) would also install this dependency, as that would remove a step required to do a pretty common development task (running tests). I am curious if anyone disagrees on that point.
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 with tools/install_builder_prerequisites.sh around the existing prerequisite binary checks, then compare the repo README and .github/buildomat/build-and-test.sh handling of cargo nextest. Determine the intended verification and installation flow, and consider how the normal prerequisite scripts and CI should stay consistent. Done means the prerequisite flow handles or clearly verifies cargo nextest and the documented setup matches it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, ci-cd, tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100