Skip to content

Align Dependabot coverage and add the dev-fast build fragment - #83

Draft
leynos wants to merge 5 commits into
mainfrom
parabellum-wave-1
Draft

leynos wants to merge 5 commits into
mainfrom
parabellum-wave-1

Conversation

@leynos

@leynos leynos commented Aug 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

This branch applies Wave 1 of the Rust estate baseline remediation
(Operation Parabellum, phase 2). It aligns
.github/dependabot.yml
with the canonical Dependabot reference: one update stanza per package
ecosystem the repository uses (cargo, rust-toolchain, github-actions), each stanza labelled
dependencies plus its channel label, and GitHub Actions updates batched
into a single pull request via a wildcard group. It also adds the opt-in dev-fast build
fragment with dev-build and dev-test Make targets, signposted in
AGENTS.md.

Review walkthrough

Validation

  • Audited the amended tree with the Concordat rule packages
    dependabot-baseline and rust-dev-fast-baseline: dependabot-baseline compliant, rust-dev-fast-baseline compliant.

Notes

  • The canonical labels (including the Dependabot channel labels this
    configuration references) were created on the repository ahead of this
    pull request, so no stanza names a missing label.
  • The dev-fast fragment is strictly opt-in local tooling: it is only
    applied when passed explicitly with --config, so continuous
    integration, release, coverage, and verification builds are untouched.
    The targets need a nightly toolchain and, on Linux, a mold binary on
    the PATH; repositories still pinned to stable gain the wiring now and
    the capability when Wave 2 moves the pin to nightly.

Summary by Sourcery

Introduce opt-in accelerated local debug builds and align Dependabot coverage for Rust tooling.

New Features:

  • Add dev-build and dev-test Make targets that use an opt-in Cargo config fragment for faster local debug builds with Cranelift and mold.

Enhancements:

  • Document the fast development build workflow and its constraints in AGENTS.md for contributors.
  • Add a canonical dev-fast Cargo configuration fragment under tools/dev-fast/config.toml to support accelerated debug builds without affecting CI or release builds.

CI:

  • Extend .github/dependabot.yml to track rust-toolchain updates with labeled weekly checks.

Bring `.github/dependabot.yml` to the estate baseline: one update
stanza per package ecosystem the repository uses, each labelled
`dependencies` plus its channel label, with GitHub Actions updates
batched into a single pull request via a wildcard group.

Add the opt-in dev-fast build fragment at
`tools/dev-fast/config.toml` (Cranelift codegen for the dev profile
and the mold linker on Linux) with `dev-build` and `dev-test` Make
targets that pass it explicitly via `--config`, and signpost the
workflow in `AGENTS.md`. Release, coverage, and verification builds
are unaffected: the fragment is never auto-discovered.
@coderabbitai

coderabbitai Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 82a2c2d7-f6c7-4874-b6c0-504c46b93504

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Reviewer's Guide

Aligns Dependabot configuration with canonical Rust baseline coverage and introduces an opt-in 'dev-fast' local build path using Cranelift+mold via new Make targets and a dedicated Cargo config fragment, documented in AGENTS.md.

Flow diagram for dev-fast Make targets and Cargo config fragment

flowchart LR
  Dev([Developer runs dev-fast target])
  Dev_build[[make dev-build]]
  Dev_test[[make dev-test]]
  Makefile[[Makefile DEV_FAST_CONFIG]]
  Cargo_build[[cargo --config tools/dev-fast/config.toml build]]
  Cargo_test[[cargo --config tools/dev-fast/config.toml test]]
  Config[[tools/dev-fast/config.toml]]
  Cranelift["profile.dev codegen-backend = cranelift"]
  Mold_linux["target cfg(target_os = linux) rustflags = -Clink-arg=-fuse-ld=mold"]
  Other_builds[[Release/CI builds use default LLVM + platform linker]]

  Dev --> Dev_build
  Dev --> Dev_test
  Dev_build --> Makefile
  Dev_test --> Makefile
  Makefile --> Cargo_build
  Makefile --> Cargo_test
  Cargo_build --> Config
  Cargo_test --> Config
  Config --> Cranelift
  Config --> Mold_linux
  Dev --> Other_builds
Loading

File-Level Changes

Change Details Files
Introduce opt-in accelerated local debug build path wired through Make targets to a dedicated Cargo config fragment.
  • Define DEV_FAST_CONFIG variable pointing to tools/dev-fast/config.toml as the default dev-fast configuration path.
  • Add phony dev-build and dev-test Make targets that invoke cargo with the explicit --config argument, ensuring only these debug builds use the fast toolchain settings.
  • Document that the dev-fast path is opt-in, requires nightly and mold, and does not affect other CI or release workflows.
Makefile
Document the dev-fast build workflow and its constraints for contributors.
  • Add a 'Fast development builds' section explaining make dev-build and make dev-test semantics, including Cranelift backend and mold linker usage.
  • Clarify tooling requirements (nightly toolchain and mold on PATH for Linux) and that the fragment is passed explicitly via --config so standard builds remain untouched.
  • Warn against copying the dev-fast fragment into .cargo/config.toml to avoid impacting all builds.
AGENTS.md
Align Dependabot configuration with canonical Rust baseline, including rust-toolchain coverage and consistent labelling.
  • Add a rust-toolchain update stanza covering the repository root directory.
  • Apply canonical labels to the rust-toolchain stanza: dependencies and rust-toolchain.
  • Maintain existing schedule semantics with a weekly interval for rust-toolchain updates, consistent with baseline guidance.
.github/dependabot.yml
Add canonical dev-fast Cargo configuration fragment to support faster local debug builds using Cranelift and mold.
  • Create tools/dev-fast/config.toml containing an opt-in Cargo config fragment for accelerated dev builds.
  • Enable unstable codegen-backend in the [unstable] table and configure the dev profile to use Cranelift for faster compilation.
  • Conditionally set rustflags to use the mold linker only on Linux targets via a target cfg table, leaving other platforms unchanged.
  • Include guidance comments about interaction with repository-wide rustflags and the need to restate them in the target table if present.
tools/dev-fast/config.toml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

codescene-access[bot]

This comment was marked as outdated.

The dev-fast rollout writes "mold" (the linker) into AGENTS.md and
the Makefile, and the en-GB-oxendict spelling gate reads it as a
misspelling of "mould", failing CI. Accept the word via the estate's
correction-to-itself pattern in `typos.local.toml`, and mirror it in
the generated dictionary so local runs agree with the regenerated
configuration.
@leynos

leynos commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

The spelling gate failed on this branch because the appended dev-fast text names the mold linker, which the en-GB-oxendict dictionary read as a misspelling of “mould”. The follow-up commit accepts the word via the estate's correction-to-itself pattern in typos.local.toml (mirrored in the generated dictionary); the AGENTS.md and Makefile hunks are untouched, so the companion parabellum-wave-2-3 branches still merge cleanly where they exist.

codescene-access[bot]

This comment was marked as outdated.

A blanket `mold = "mold"` correction disables detection of genuine
"mould" misspellings everywhere in the repository. Replace it with
pattern-scoped exemptions covering only the linker contexts the
dev-fast rollout introduced (`-fuse-ld=mold`, "mold linker",
"Cranelift + mold", "Cranelift and mold", and backticked `mold`),
and mirror them in the generated dictionary. Text such as "the bread
had mold growing on it" is flagged again.
codescene-access[bot]

This comment was marked as outdated.

Estate review flagged two defects in the fragment's deployed
comments: a stale "copy this fragment" instruction that reads as
nonsense once the file is in place, and a mis-statement of Cargo's
rustflags semantics (Cargo joins the entries of every matching
`[target.*]` table; only the joined result takes precedence over
`[build].rustflags` rather than merging). Both are corrected in the
canonical source; take its bytes verbatim. No configuration key
changes.
codescene-access[bot]

This comment was marked as outdated.

The recent spelling-configuration commits edited the committed
`typos.toml` by hand; the pinned typos-config-builder orders entries
canonically, so the drift check rejects the hand-inserted ordering.
Regenerate the file with the repository's own pinned builder. The
diff is ordering only: no pattern is added or removed, and the
scoped mold exemptions behave identically.
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.

1 participant