oxidecomputer / oxidecomputer/oxide.rs

`system_update_status` `components_by_release_version` is ordered randomly

Open Beginner friendly
#1,545 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
75
Forks
21
Avg merge
2d 2h
Merged PRs (30d)
19

Description

When running e.g. watch oxide system update status:

Every 2.0s: oxide --resolve recovery.sys.dublin.eng.oxide.computer:443:"$(dig +short @172.20.29.1 recovery.sys.dublin.eng.oxide.computer | head -n 1)" system update status
{
  "components_by_release_version": {
    "23.0.0-0.ci+giteda69a8e45f": 27,
    "23.0.0-0.local+gita08ad974814": 61
  },
  "suspended": false,
  "target_release": {
    "time_requested": "2026-09-17T22:10:24.555924Z",
    "version": "23.0.0-0.local+gita08ad974814"
  },
  "time_last_step_planned": "2026-09-17T23:02:53.898713Z"
}

the keys in components_by_release_version are not presented in a consistent order, so they jump around randomly even when the values have not changed. This is a minor annoyance.

Presumably this is a HashMap -> BTreeMap sort of thing.

Contributor guide

No contributing guide indexed for this repository

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 at the system update status command and trace how components_by_release_version is serialized into the displayed JSON. Check the existing tests or output fixtures for this status response; done means the component version keys appear in a consistent sorted order across repeated runs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.