Conversation
Add explicit `cargo-binstall` metadata to `Cargo.toml` and publish Linux release archives in the shape that `binstall` expects. Build tagged releases for both `x86_64-unknown-linux-gnu` and `aarch64-unknown-linux-gnu`, package each binary into a versioned `.tgz`, and upload the full set of assets to the GitHub release. Document the new install path in `README.md`. Keep the small `html.rs` match cleanup that Clippy required while validating the branch, and retain the repo-wide Markdown list-numbering normalisation from `make fmt` so the Markdown lint gate passes.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
Cargo-binstall Linux Release SupportThis PR adds cargo-binstall integration for Linux releases, extends the release workflow to produce pre-built Linux binaries for two architectures, and includes documentation, linting and small code refinements. Key ChangesBuild & Release Workflow (.github/workflows/release.yml)
Package Metadata (Cargo.toml)
Documentation (README.md)
Tooling & Linting
Code Refinement & Bug Tracking (src/html.rs)
Repository-wide formatting
Notes for reviewers
WalkthroughSummarise the workflow and documentation changes: add a GitHub Actions matrix build for x86_64 and AArch64, perform target-specific setup and caching, build and package per-target .tgz artifacts, upload release archives via Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Developer
participant GitHubActions as GitHub Actions (matrix)
participant Runner as Runner
participant Rustup as rustup
participant Apt as apt (optional)
participant Cargo as cargo
participant Tar as tar
participant GH as gh (GitHub CLI)
Developer->>GitHubActions: push / create release
GitHubActions->>Runner: start matrix jobs (x86_64, aarch64)
Runner->>Rustup: rustup target add ${matrix.target}
alt matrix.target == aarch64-unknown-linux-gnu
Runner->>Apt: install gcc-aarch64-linux-gnu
Apt-->>Runner: cross-linker available
Runner->>Runner: set CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER
end
Runner->>Cargo: cargo build --locked --release --target ${matrix.target} --bin ${REPO_NAME}
Runner->>Runner: install binary into ${REPO_NAME}-${TARGET}-v${version}/
Runner->>Tar: create ${REPO_NAME}-${matrix.target}-${github.ref_name}.tgz
Runner->>GitHubActions: upload artifact (tgz)
GitHubActions->>GH: download all artifacts into release-artifacts/
GH->>GH: ensure release exists (create if needed)
GH->>GH: gh release upload --clobber *.tgz
GH-->>Developer: release artifacts published
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 4❌ Failed checks (4 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Reviewer's GuideAdds Linux release support for cargo-binstall by enriching Cargo.toml metadata, extending the GitHub release workflow to build and package architecture-specific tgz archives, tightens HTML details-collapse logic, and normalizes Markdown formatting and ordered lists across docs while documenting the new install path. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Switch the `markdownlint` Make target to the same `markdownlint-cli2`-based invocation used in `rstest-bdd` so the default repo gate no longer depends on a missing `markdownlint` binary. Update `.markdownlint-cli2.jsonc` to match the shared ignore set and rule set from that repository, including `.uv-cache/` handling.
|
@coderabbitai please create a new GitHub issue for the following:
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain |
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/release.yml:
- Around line 102-106: The workflow fails because gh release upload is called
without ensuring the release exists; modify the step that currently runs gh
release upload (the "Upload release" step invoking gh release upload and using
"${{ github.ref_name }}") to first check/create the release (e.g., run gh
release view "${{ github.ref_name }}" and if missing run gh release create "${{
github.ref_name }}" --verify-tag --generate-notes) before mapping assets and
calling gh release upload; keep the same env GITHUB_TOKEN and ensure the step
name reflects creation (e.g., "Create or update release").
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 218d5027-75cf-44d2-bc44-069d213199e8
📒 Files selected for processing (13)
.github/workflows/release.yml.markdownlint-cli2.jsoncCargo.tomlMakefileREADME.mddocs/execplans/adopt-ortho-config-v0-8-0.mddocs/github-token.mddocs/ortho-config-users-guide.mddocs/ortho-config-v0-6-0-migration-guide.mddocs/ortho-config-v0-7-0-migration-guide.mddocs/vk-design.mddocs/vk-end-to-end-testing-guide.mdsrc/html.rs
Verify the reported release workflow finding against the current YAML and fix only the missing release-creation path. Before uploading assets, check whether the GitHub release already exists for the tag and create it with `--verify-tag` and `--generate-notes` when it does not. Keep the existing token handling and upload behaviour unchanged otherwise.
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/release.yml:
- Around line 64-66: The workflow currently sets
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER unconditionally; scope that
environment variable so it only applies when building the aarch64 target by
moving or applying the env to the step that runs when matrix.target ==
"aarch64-unknown-linux-gnu" (or use a conditional/matrix property) so the run
step that executes cargo build for matrix.target uses the linker env only for
the AArch64 matrix entry; reference the env key
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER and the cargo build step (run:
cargo build --locked --release --target ${{ matrix.target }} --bin ${{
env.REPO_NAME }}) when making the change.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: f93196ab-bae2-45bc-82c3-8eb795b05744
📒 Files selected for processing (1)
.github/workflows/release.yml
Verify the reported workflow finding against the current release YAML and narrow the linker override only where it is needed. Split the release build step so `CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER` is exported only for the `aarch64-unknown-linux-gnu` matrix entry while the existing `cargo build --locked --release --target ...` command stays unchanged.
Add explicit
cargo-binstallmetadata toCargo.tomland publish Linux release archives in the shape thatbinstallexpects.Build tagged releases for both
x86_64-unknown-linux-gnuandaarch64-unknown-linux-gnu, package each binary into a versioned.tgz, and upload the full set of assets to the GitHub release. Document the new install path inREADME.md.Keep the small
html.rsmatch cleanup that Clippy required while validating the branch, and retain the repo-wide Markdown list-numbering normalisation frommake fmtso the Markdown lint gate passes.Summary by Sourcery
Add support for publishing Linux release archives consumable by cargo-binstall and document the new installation path while updating formatting and tooling to satisfy markdown linting and Clippy requirements.
New Features:
Enhancements:
Build:
Documentation: