Conversation
Bumps [toml](https://github.com/toml-rs/toml) from 1.0.7+spec-1.1.0 to 1.1.0+spec-1.1.0. - [Commits](toml-rs/toml@toml-v1.0.7...toml-v1.1.0) --- updated-dependencies: - dependency-name: toml dependency-version: 1.1.0+spec-1.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
….0spec-1.1.0 build(deps): bump toml from 1.0.7+spec-1.1.0 to 1.1.0+spec-1.1.0
Bumps [clap_mangen](https://github.com/clap-rs/clap) from 0.2.33 to 0.3.0. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@clap_mangen-v0.2.33...clap_mangen-v0.3.0) --- updated-dependencies: - dependency-name: clap_mangen dependency-version: 0.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…gen-0.3.0 build(deps): bump clap_mangen from 0.2.33 to 0.3.0
Add ubuntu-24.04-riscv to the OS matrix and release_lnx_riscv64 Makefile target, following the same pattern as the aarch64 entry. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Bumps [toml](https://github.com/toml-rs/toml) from 1.1.0+spec-1.1.0 to 1.1.1+spec-1.1.0. - [Commits](toml-rs/toml@toml-v1.1.0...toml-v1.1.1) --- updated-dependencies: - dependency-name: toml dependency-version: 1.1.1+spec-1.1.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
….1spec-1.1.0 build(deps): bump toml from 1.1.0+spec-1.1.0 to 1.1.1+spec-1.1.0
Bumps [toml](https://github.com/toml-rs/toml) from 1.1.1+spec-1.1.0 to 1.1.2+spec-1.1.0. - [Commits](toml-rs/toml@toml-v1.1.1...toml-v1.1.2) --- updated-dependencies: - dependency-name: toml dependency-version: 1.1.2+spec-1.1.0 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
….2spec-1.1.0 build(deps): bump toml from 1.1.1+spec-1.1.0 to 1.1.2+spec-1.1.0
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.183 to 0.2.184. - [Release notes](https://github.com/rust-lang/libc/releases) - [Changelog](https://github.com/rust-lang/libc/blob/0.2.184/CHANGELOG.md) - [Commits](rust-lang/libc@0.2.183...0.2.184) --- updated-dependencies: - dependency-name: libc dependency-version: 0.2.184 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
….184 build(deps): bump libc from 0.2.183 to 0.2.184
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.50.0 to 1.51.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.50.0...tokio-1.51.0) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.51.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…51.0 build(deps): bump tokio from 1.50.0 to 1.51.0
📝 WalkthroughWalkthroughThis PR adds RISC-V support to CI and release flows (new Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as "Developer (push/PR)"
participant GH as "GitHub Actions"
participant Matrix as "Job Matrix"
participant Runner as "Runner (ubuntu-24.04-riscv / others)"
participant Build as "Cargo / Make"
participant Store as "Artifact Upload"
Dev->>GH: push / open PR
GH->>Matrix: evaluate matrix (includes ubuntu-24.04-riscv)
Matrix->>Runner: start job
Runner->>Build: if matrix.run_tests == false\n-> cargo build --locked --target riscv64...
Runner->>Build: if matrix.run_tests == true\n-> cargo test (with/without default features)
alt RISC-V release job (release.yml)
Runner->>Build: run `make release_lnx_riscv64`
end
Build->>Store: upload artifacts
Store-->>GH: artifact stored
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates several dependencies, including tokio, toml, and clap_mangen, and adds a new RISC-V 64-bit Linux release target to the Makefile. Feedback was provided regarding the new Makefile target, noting that it is inconsistent with other Linux targets because it lacks an explicit target triple and uses a different output directory structure.
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
Makefile (1)
10-10: Addrelease_lnx_riscv64to.PHONYdeclaration.The new target should be added to the
.PHONYline for consistency with other release targets. While not strictly necessary since there's no matching file, it documents that this is a phony target.Proposed fix
-.PHONY: all test clean release_lnx release_win release_mac +.PHONY: all test clean release_lnx release_lnx_aarch64 release_lnx_riscv64 release_win release_mac🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Makefile` at line 10, Update the .PHONY declaration in the Makefile to include the new phony target name: add release_lnx_riscv64 to the existing .PHONY line (which currently lists all test/clean/release_* targets) so the Makefile's .PHONY symbol accurately documents the new release_lnx_riscv64 target..github/workflows/regression.yml (1)
20-22: Optional: Add actionlint configuration for self-hosted runner label.To ensure
actionlintproperly recognizes theubuntu-24.04-riscvself-hosted runner label if linting is enabled, create.github/actionlint.yaml:self-hosted-runner: labels: - ubuntu-24.04-riscvThis prevents actionlint from flagging the custom runner label as unknown.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/regression.yml around lines 20 - 22, Add an actionlint config so the custom self-hosted runner label is recognized: create the file .github/actionlint.yaml and define a top-level key self-hosted-runner with a labels array that includes "ubuntu-24.04-riscv" (the exact label used in regression.yml), so actionlint won't flag the custom runner label as unknown.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/release.yml:
- Line 13: The workflow includes the self-hosted runner label
"ubuntu-24.04-riscv" in the matrix 'os' which triggers actionlint warnings;
update the repository-level actionlint configuration like you did for
regression.yml so this label is accepted. Add the same rule/allow-list entry to
actionlint.yaml (the previously suggested configuration) so actionlint
recognizes "ubuntu-24.04-riscv" as a valid runner label for the 'os' matrix in
release.yml and re-run validation.
---
Nitpick comments:
In @.github/workflows/regression.yml:
- Around line 20-22: Add an actionlint config so the custom self-hosted runner
label is recognized: create the file .github/actionlint.yaml and define a
top-level key self-hosted-runner with a labels array that includes
"ubuntu-24.04-riscv" (the exact label used in regression.yml), so actionlint
won't flag the custom runner label as unknown.
In `@Makefile`:
- Line 10: Update the .PHONY declaration in the Makefile to include the new
phony target name: add release_lnx_riscv64 to the existing .PHONY line (which
currently lists all test/clean/release_* targets) so the Makefile's .PHONY
symbol accurately documents the new release_lnx_riscv64 target.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 40f31530-ab9b-4a76-a34c-eda65ed80ac4
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (4)
.github/workflows/regression.yml.github/workflows/release.ymlCargo.tomlMakefile
| strategy: | ||
| matrix: | ||
| os: [ubuntu-latest, ubuntu-24.04-arm, macOS-latest, windows-latest] | ||
| os: [ubuntu-latest, ubuntu-24.04-arm, ubuntu-24.04-riscv, macOS-latest, windows-latest] |
There was a problem hiding this comment.
Same self-hosted runner label issue as regression.yml.
The ubuntu-24.04-riscv label triggers the same actionlint warning. The recommended actionlint.yaml configuration (suggested in the regression.yml review) will resolve this for both workflow files.
🧰 Tools
🪛 actionlint (1.7.12)
[error] 13-13: label "ubuntu-24.04-riscv" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-intel", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/release.yml at line 13, The workflow includes the
self-hosted runner label "ubuntu-24.04-riscv" in the matrix 'os' which triggers
actionlint warnings; update the repository-level actionlint configuration like
you did for regression.yml so this label is accepted. Add the same
rule/allow-list entry to actionlint.yaml (the previously suggested
configuration) so actionlint recognizes "ubuntu-24.04-riscv" as a valid runner
label for the 'os' matrix in release.yml and re-run validation.
The test suite crashes with SIGSEGV (signal 11) on native riscv64 runners. Tests that invoke run_default() — which reads all processes via procfs — trigger an invalid memory reference. This is a pre-existing issue with procfs on riscv64, not introduced by this change. Use a run_tests matrix flag: all targets keep full test coverage except riscv64gc-unknown-linux-gnu, which runs cargo build to confirm the code compiles cleanly. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/regression.yml:
- Around line 22-25: The workflow uses a non-standard self-hosted runner label
"ubuntu-24.04-riscv" in regression.yml and release.yml which will fail to
schedule on forks or repos without that runner; update the repo by adding a
short note in CONTRIBUTING.md (or .github/RUNNER_SETUP.md) describing the
self-hosted runner requirement and the expected label, and modify the workflows
to guard the RISC-V job so it doesn't run on repos without the runner (for
example add a conditional check to the RISC-V job that skips it unless running
in the canonical repo or unless the runner label is available, e.g. using an if:
condition like github.repository == 'gounthar/procs' or another suitable guard)
so external contributors/forks won't have unschedulable job legs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 17b0a3e6-a869-4144-84e1-5fe171471b04
📒 Files selected for processing (1)
.github/workflows/regression.yml
| - os: ubuntu-24.04-riscv | ||
| rust: stable | ||
| target: riscv64gc-unknown-linux-gnu | ||
| run_tests: false |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
repo="$(gh repo view --json nameWithOwner -q .nameWithOwner)"
echo "Repository: ${repo}"
echo "== Self-hosted runners and labels =="
gh api "repos/${repo}/actions/runners?per_page=100" \
| jq -r '.runners[] | .name as $n | .labels[].name | [$n, .] | `@tsv`' \
| sort -u || true
echo "== Check required label: ubuntu-24.04-riscv =="
if gh api "repos/${repo}/actions/runners?per_page=100" \
| jq -e '.runners[].labels[].name | select(.=="ubuntu-24.04-riscv")' >/dev/null; then
echo "FOUND: ubuntu-24.04-riscv"
else
echo "MISSING: ubuntu-24.04-riscv"
fi
echo "== actionlint config (if custom label is intentional) =="
fd -i 'actionlint\.ya?ml' -a || true
fd -i 'actionlint\.ya?ml' -a --exec sed -n '1,200p' {} || trueRepository: gounthar/procs
Length of output: 156
🏁 Script executed:
# Check the workflow file and surrounding context
cat -n .github/workflows/regression.yml | head -50Repository: gounthar/procs
Length of output: 1787
🏁 Script executed:
# Look for actionlint configuration
find .github -type f -name "*actionlint*" -o -name ".actionlintrc*"Repository: gounthar/procs
Length of output: 40
🏁 Script executed:
# Search for self-hosted runner references in workflows
rg -i "self-hosted" .github/workflows/Repository: gounthar/procs
Length of output: 40
🏁 Script executed:
# Check if there are other workflow files that might reference ubuntu-24.04-riscv
rg "ubuntu-24.04-riscv" .github/Repository: gounthar/procs
Length of output: 325
🏁 Script executed:
# Look for any documentation about runners or CI setup
fd -i readme .github/ -o -i readme . --max-depth 2 --exec cat {} \;Repository: gounthar/procs
Length of output: 174
🏁 Script executed:
# Check release.yml to see how ubuntu-24.04-riscv is used
cat -n .github/workflows/release.yml | head -100Repository: gounthar/procs
Length of output: 2304
Non-standard runner label will not schedule without self-hosted runners configured
Lines 22-25 use ubuntu-24.04-riscv, which is neither a GitHub-hosted runner label nor a documented self-hosted label within this repository. This label appears intentionally in both regression.yml (line 22) and release.yml (line 13), with conditional build steps, but without visible self-hosted runner infrastructure in the repo, these job legs will fail to schedule on GitHub Actions.
This creates a portability issue: external contributors or forks cannot run these workflows without separately setting up self-hosted runners with the ubuntu-24.04-riscv label, which is not transparent from the workflow files alone.
Recommended action:
- Document the self-hosted runner requirement in the repository (e.g., in
CONTRIBUTING.mdor a.github/RUNNER_SETUP.md) - Alternatively, make the RISC-V job conditional (e.g.,
if: github.repository == 'gounthar/procs') to prevent failures in forks, or conditionally skip it if runners are not available
🧰 Tools
🪛 actionlint (1.7.12)
[error] 22-22: label "ubuntu-24.04-riscv" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-intel", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/regression.yml around lines 22 - 25, The workflow uses a
non-standard self-hosted runner label "ubuntu-24.04-riscv" in regression.yml and
release.yml which will fail to schedule on forks or repos without that runner;
update the repo by adding a short note in CONTRIBUTING.md (or
.github/RUNNER_SETUP.md) describing the self-hosted runner requirement and the
expected label, and modify the workflows to guard the RISC-V job so it doesn't
run on repos without the runner (for example add a conditional check to the
RISC-V job that skips it unless running in the canonical repo or unless the
runner label is available, e.g. using an if: condition like github.repository ==
'gounthar/procs' or another suitable guard) so external contributors/forks won't
have unschedulable job legs.
Intra-fork PR to validate CI on RISE riscv64 runners before upstream dalance#894 is reviewed. Upstream is waiting on RISE app installation.
Summary by CodeRabbit
New Features
Chores