Skip to content

[ci, clippy, deps] extend ci suite and clippy feature testing - #99

Merged
ahl merged 6 commits into
mainfrom
zl/ci
Sep 4, 2026
Merged

[ci, clippy, deps] extend ci suite and clippy feature testing#99
ahl merged 6 commits into
mainfrom
zl/ci

Conversation

@zeeshanlakhani

@zeeshanlakhani zeeshanlakhani commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

oxnet has been lacking on the CI-side compared to some of the other Rust libs in our GH org, e.g., rustfmt and clippy checks, a rustdoc build, illumos-runs on buildomat, etc.

This also allows PRs built atop other PRs to run the suite.

This repo lacked the typical CI checks: formatting, feature-testing,
etc.

Here we model the workflow on oxidecomputer/iddqd (and similar libraries
in our ecosystem):

- RUSTFLAGS: -D warnings across every job, RUSTDOCFLAGS for the doc build
- a lint job running rustfmt, clippy over the feature powerset via
  cargo-hack, and rustdoc
- the powerset build and test on one runner, since a feature combination
  that breaks does so identically everywhere, with a separate pass for
  doctests, which nextest does not run
- macOS covered at two feature points instead, for platform rather than
  configuration breadth
- nextest as the runner, as omicron, maghemite, and iddqd use, pinned by
  .config/nextest.toml in the omicron style, with required and recommended
  in sync with the buildomat pin
- MSRV moved out of the build matrix into its own job
- SHA-pinned actions and Swatinem/rust-cache

We also add an illumos job, running on buildomat.
oxnet has carried configuraitons for both (depend-a)bots, where only
dependabot has ever run. Every other Rust repo in our org is renovate-only.

Here, we drop dependabot.yml to follow other repos and avoid overlap
once renovate is switched on for this repo.
@ahl

ahl commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Happy to take a look; what's the motivation for each of these changes?

@zeeshanlakhani

Copy link
Copy Markdown
Contributor Author

Happy to take a look; what's the motivation for each of these changes?

Mainly, some consistency with our other libraries. oxnet is used in many illumos repos as a dep, hence buildomat. I'm working on adding more types to oxnet (and no_std) for use across dendrite, maghemite, omicron, so feature (powerset) testing is nice. Plus, it incorporates the other basics. On the pull_request non-main trigger, that's mainly in working with PRs against PRs.

On renovate, well, I feel like that's our standard, no?

@ahl

ahl commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Mainly, some consistency with our other libraries. oxnet is used in many illumos repos as a dep, hence buildomat. I'm working on adding more types to oxnet (and no_std) for use across dendrite, maghemite, omicron, so feature (powerset) testing is nice. Plus, it incorporates the other basics. On the pull_request non-main trigger, that's mainly in working with PRs against PRs.

Makes sense. With regard to other types, I think the mandate of the crate is to keep it to things that are very unlikely to change e.g. because they're well established industry concepts or are specified by some unchanging RFC.

On renovate, well, I feel like that's our standard, no?

I don't think so? But maybe? Can we leave dependabot since I mostly deal with the dependencies?

Also: nextest and cargo-hack?

@zeeshanlakhani

Copy link
Copy Markdown
Contributor Author

Mainly, some consistency with our other libraries. oxnet is used in many illumos repos as a dep, hence buildomat. I'm working on adding more types to oxnet (and no_std) for use across dendrite, maghemite, omicron, so feature (powerset) testing is nice. Plus, it incorporates the other basics. On the pull_request non-main trigger, that's mainly in working with PRs against PRs.

Makes sense. With regard to other types, I think the mandate of the crate is to keep it to things that are very unlikely to change e.g. because they're well established industry concepts or are specified by some unchanging RFC.

Sure, but I think we're trying to use oxnet to make types consistent across various projects now (maghemite, dendrite, omicron as examples), so we'll see more types enter here for consistency across domains.

On renovate, well, I feel like that's our standard, no?

I don't think so? But maybe? Can we leave dependabot since I mostly deal with the dependencies?

Sure, but should we settle on one or the other? I saw both configurations here?

Also: nextest and cargo-hack?

Nextest mainly cause that's the defactor for illumos work, but I can remove it. On hack, that was geared toward the feature powerset work, but I can remove that too (for sure). That was mostly toward other lib consistency.

@ahl

ahl commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Makes sense. With regard to other types, I think the mandate of the crate is to keep it to things that are very unlikely to change e.g. because they're well established industry concepts or are specified by some unchanging RFC.

Sure, but I think we're trying to use oxnet to make types consistent across various projects now (maghemite, dendrite, omicron as examples), so we'll see more types enter here for consistency across domains.

I can't tell if that's like "sure, that was the plan, but there's a new plan" or "sure, these types conform to those existing expectations."

I don't think so? But maybe? Can we leave dependabot since I mostly deal with the dependencies?

Sure, but should we settle on one or the other? I saw both configurations here?

dependabot

Also: nextest and cargo-hack?

Nextest mainly cause that's the defactor for illumos work, but I can remove it. On hack, that was geared toward the feature powerset work, but I can remove that too (for sure). That was mostly toward other lib consistency.

Whatever you think.

@zeeshanlakhani

Copy link
Copy Markdown
Contributor Author

Sure, but I think we're trying to use oxnet to make types consistent across various projects now (maghemite, dendrite, omicron as examples), so we'll see more types enter here for consistency across domains.

I can't tell if that's like "sure, that was the plan, but there's a new plan" or "sure, these types conform to those existing expectations."

I meant that we'll be trying to generalize more in this repo, so we'll see more types enter the fray. However, I know that we need to be careful how we update the code here, because it's a dep for so many projects.

Sure, but should we settle on one or the other? I saw both configurations here?

dependabot

+1.

Nextest mainly cause that's the defactor for illumos work, but I can remove it. On hack, that was geared toward the feature powerset work, but I can remove that too (for sure). That was mostly toward other lib consistency.

+1 (then I'll keep these).

Based on discussion with @ahl, we want to keep dependabot, and
focus the feature testing where possible.
@zeeshanlakhani zeeshanlakhani changed the title [ci, clippy, deps] extend ci suite, move to renovate-only, clippy [ci, clippy, deps] extend ci suite and clippy feature testing Sep 3, 2026
@zeeshanlakhani

Copy link
Copy Markdown
Contributor Author

@ahl updated.

Comment thread .github/workflows/rust.yml
@zeeshanlakhani
zeeshanlakhani requested a review from ahl September 4, 2026 01:45
@zeeshanlakhani zeeshanlakhani self-assigned this Sep 4, 2026

@ahl ahl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

k

@ahl
ahl merged commit 2d03e16 into main Sep 4, 2026
15 checks passed
@ahl
ahl deleted the zl/ci branch September 4, 2026 04:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants