oxidecomputer / oxidecomputer/omicron

`cargo nextest` could be verified (and downloaded) with other prerequisite dependencies

Open
#3,944 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

development Testing & Analysis
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.