Skip to content

Remove the obsolete dylint-link preinstall workaround - #87

Merged
leynos merged 1 commit into
mainfrom
remove-dylint-link-workaround
Jul 22, 2026
Merged

Remove the obsolete dylint-link preinstall workaround#87
leynos merged 1 commit into
mainfrom
remove-dylint-link-workaround

Conversation

@leynos

@leynos leynos commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

This branch removes a CI workaround that is no longer needed now that the Whitaker installer is pinned to 0.2.7.

The lint step preinstalled dylint-link@6.0.1 via cargo binstall so the installer would detect the tool on PATH and skip installing it. That existed because installer 0.2.6 verified dylint-link by executing it as a --help health check; the probe failed (dylint-link is a linker wrapper with no reliable self-reporting subcommand), and verification fell back to a source build of dylint-link 6.0.1, which cannot compile on this repository's pinned toolchain. Installer 0.2.7 (leynos/whitaker#299) trusts the download, checksum, extraction, and permission pipeline instead of executing the wrapper, so it installs dylint-link from the verified repository release directly. The preinstall, and its stale 0.2.6 comment, are now dead weight.

Changes

  • Remove the dylint-link@6.0.1 preinstall block and its comment from the "Install the Whitaker Dylint suite" step in .github/workflows/ci.yml.

Validation

  • CI on this PR exercises the lint gate; the installer now provisions dylint-link from the repository release without the preinstall, as already proven on the estate under 0.2.7.

Notes

No Rust toolchain pin is changed and the Whitaker lint gate is not weakened.

The CI lint step preinstalled `dylint-link@6.0.1` to work around
whitaker-installer 0.2.6, whose broken `dylint-link` verification forced a
source-build fallback that could not compile on this repository's pinned
toolchain. Installer 0.2.7 (leynos/whitaker#299) trusts the verified
repository artefact and installs `dylint-link` from the release directly,
so the preinstall — and its stale 0.2.6 comment — are no longer needed.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sorry @leynos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Update the CI bootstrap to detect cargo-binstall, install whitaker-installer through the available path, remove the dylint-link preinstallation workaround, and continue the Whitaker suite installation.

Changes

Whitaker CI installation

Layer / File(s) Summary
Update installer bootstrap
.github/workflows/ci.yml
Probe cargo binstall -V, install whitaker-installer with cargo binstall or cargo install as a fallback, then invoke it without preinstalling dylint-link.

Possibly related PRs

Poem

Cargo knocks; the suite awakes,
Binstall leads, install follows in its wake.
Old dylint links depart the scene,
Whitaker runs, precise and clean.


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
Testing (Overall) ❌ Error No test exercises .github/workflows/ci.yml; existing workflow tests cover coverage-main, dependabot-automerge, and mutation-testing only. Add a workflow-contract test for the CI installer step that parses ci.yml and asserts the workaround block is gone while whitaker-installer still runs.
Testing (Unit And Behavioural) ⚠️ Warning The PR only edits .github/workflows/ci.yml and adds no unit or behavioural tests; existing workflow tests cover other workflows, not this installer path. Add a workflow-contract or end-to-end test that exercises the CI installer branch and asserts the whitaker-installer path without the removed dylint-link preinstall.
✅ Passed checks (18 passed)
Check name Status Explanation
Title check ✅ Passed Match the title to the removal of the obsolete dylint-link preinstall workaround.
Description check ✅ Passed Keep the description tied to the CI workaround removal and Whitaker installer update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
User-Facing Documentation ✅ Passed The change only alters a CI workflow bootstrap for Whitaker installer; it does not change user-facing behaviour, and there is no docs/users-guide.md to update.
Developer Documentation ✅ Passed Pass: this only tweaks CI installer bootstrap; no new API, architecture, or roadmap item needs docs, and no Whitaker terms appear in docs.
Module-Level Documentation ✅ Passed PASS: The PR only edits .github/workflows/ci.yml; no source modules are added or changed, so the module docstring rule is not implicated.
Testing (Property / Proof) ✅ Passed The PR only edits a CI installer step; it introduces no range invariant, state transition, or proof assumption, so property or proof testing is not applicable.
Testing (Compile-Time / Ui) ✅ Passed Only .github/workflows/ci.yml changed; no Rust/TS compile-time or UI output changed, so trybuild or snapshot tests are not applicable.
Unit Architecture ✅ Passed PASS: The change stays at the CI edge, with explicit command/side-effect handling only; it removes a workaround rather than hiding fallible work or coupling units.
Domain Architecture ✅ Passed PASS: The PR only edits .github/workflows/ci.yml; no domain, core, or model code is touched, so the domain/infrastructure boundary remains intact.
Observability ✅ Passed CI-only installer logic changed; no production behaviour, metrics, tracing, or alerting changes are needed for this workflow step.
Security And Privacy ✅ Passed PASS: The change only removes a brittle CI preinstall block; it adds no secrets, broad permissions, unsafe sinks, or sensitive-data exposure.
Performance And Resource Use ✅ Passed The workflow change only adjusts one bounded installer branch and removes a preinstall step; it adds no unbounded loops, heavy allocations, or hot-path I/O.
Concurrency And State ✅ Passed The change only updates a CI installer shell block; it adds no shared mutable state, async tasks, locks, ordering, or cancellation concerns.
Architectural Complexity And Maintainability ✅ Passed The PR only removes the brittle dylint-link preinstall block and stale comment; it adds no new abstraction, indirection, dependency, or maintenance burden.
Rust Compiler Lint Integrity ✅ Passed Only .github/workflows/ci.yml changed; no Rust sources, lint suppressions, or clone-related code were added or retained.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch remove-dylint-link-workaround

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

codescene-access[bot]

This comment was marked as outdated.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No quality gates enabled for this code.

@leynos
leynos merged commit 1db712a into main Jul 22, 2026
6 of 7 checks passed
@leynos
leynos deleted the remove-dylint-link-workaround branch July 22, 2026 23:14
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