Skip to content

Repin install-whitaker to 5a99aed7 (whitaker-installer 0.2.11) - #160

Merged
leynos merged 1 commit into
mainfrom
repin-install-whitaker-0-2-11
Oct 30, 2026
Merged

leynos merged 1 commit into
mainfrom
repin-install-whitaker-0-2-11

Conversation

@leynos

@leynos leynos commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Part of DF12-89

Repins leynos/shared-actions/.github/actions/install-whitaker to 5a99aed78ce68dcebd3052b75c31e6f173162b1e (shared-actions #651, approved as a root by concordat QG-002, leynos/concordat#331). The action then defaults to whitaker-installer 0.2.11, which builds the Dylint driver from a verified Clippy snapshot: upstream Dylint 6.0.1 clones Clippy's master, which no longer exists, so every cold Whitaker driver build fails.

Also INSTALL_PIN in tests/workflow_contracts/whitaker_contracts.py.

Other Whitaker paths

No bare cargo dylint, cargo binstall whitaker or hand-rolled installer outside the action and the whitaker wrapper.

Notes

A cache-restored driver rebuilds once (about a minute); that is expected. Gate: CI green on the lint lane at the head, with the lint job's log read for Whitaker's diagnostics.

Summary by Sourcery

Repin the Whitaker installation action to restore reliable CI lint-driver builds.

Bug Fixes:

  • Update the Whitaker installation action to a version that uses whitaker-installer 0.2.11, restoring reliable cold driver builds.

Enhancements:

  • Repin the CI Whitaker action and its workflow contract to the approved commit.

CI:

  • Align the lint workflow and contract checks with the updated Whitaker action pin.

@sourcery-ai

sourcery-ai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

The PR updates the Whitaker installation action to a verified commit whose installer builds the Dylint driver from a stable, verified Clippy snapshot, preventing cold-build failures caused by upstream Dylint 6.0.1 referencing the removed Clippy master branch; the corresponding workflow contract pin is updated to keep CI enforcement aligned.

Flow diagram for the updated Whitaker pin enforcement

flowchart TD
    Workflow[CI workflow pin] --> Contract[INSTALL_PIN contract]
    Contract --> Match{Pins match?}
    Match -->|Yes| Install[Install Whitaker]
    Match -->|No| Fail[Contract check fails]
    Install --> Lint[Run lint lane]
Loading

File-Level Changes

Change Details Files
Repin the Whitaker installation action to a verified shared-actions commit that uses whitaker-installer 0.2.11.
  • Update the CI lint job’s action reference and document the shared-actions and installer versions.
  • Update the workflow contract test’s expected immutable action pin.
.github/workflows/ci.yml
tests/workflow_contracts/whitaker_contracts.py

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T03:15:00.447238Z 80efe13 PR opened
🔒 Security Review ✅ Completed 2026-10-30T03:15:36.948730Z 80efe13 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in 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

Summary

  • Repin the install-whitaker action to shared-actions revision 5a99aed78ce68dcebd3052b75c31e6f173162b1e, identified as whitaker-installer 0.2.11.
  • Update INSTALL_PIN in tests/workflow_contracts/whitaker_contracts.py to match. Keep the cranelift: true input unchanged.
  • This pin aims to avoid cold Whitaker driver build failures caused by upstream Dylint cloning a Clippy master branch that no longer exists.

Validation

  • The repository diff confirms the action and contract-test pins match.
  • No test results or lint-lane status were supplied.

Walkthrough

Pin the CI workflow’s Install Whitaker step to revision 5a99aed78ce68dcebd3052b75c31e6f173162b1e. Update the workflow contract test to approve the same revision. The cranelift: true input remains unchanged.

Changes

Whitaker action pin

Layer / File(s) Summary
Update the action pin and contract
.github/workflows/ci.yml, tests/workflow_contracts/whitaker_contracts.py
The workflow uses the new Whitaker action revision. The contract test’s INSTALL_PIN matches it.

Possibly related issues

  • leynos/shared-actions#650 — The new consumer pin targets a revision associated with the Whitaker bootstrap failure described in this issue.
  • leynos/whitaker#530 — This change updates a downstream consumer to the newer installer revision, but does not provide the release evidence requested by the issue.

Possibly related PRs

Priority: Normal

Change: Bug fix

Merge Risk: Minimal · up to 80efe

The pin update is internally consistent and introduces no identified merge-blocking risk.

Pre-merge checks: Passed 14 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Developer Documentation Warning Update the developer guide before merging. The pull request changes the CI Whitaker provisioning tool from shared action pin 6dea5677... to 5a99aed7..., which selects whitaker-installer 0.2.11 a… Update docs/developers-guide.md in the Whitaker setup section. Record the approved shared action pin or its selected whitaker-installer version, explain that 0.2.11 uses a verified Clippy snapshot because Dylint 6.0.1 cannot clone the r…
Passed Passed checks: 14 passed
Check name Status Explanation
Title check Passed The title accurately describes the main change: repinning the Whitaker installation action to the specified commit and installer version. No GitHub issue number is required because the description doe…
Description check Passed The description directly explains the Whitaker action repin, the updated workflow contract, the build failure, and the validation gate. It is clearly related to the changeset.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
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.
Testing (Overall) Passed Pass the testing check. The existing workflow contract test loads the actual ci.yml and asserts the installer uses the exact approved full SHA through INSTALL_PIN. Its mutation case replaces the p…
User-Facing Documentation Passed Pass the documentation check. The diff changes only the CI Whitaker action pin and its workflow contract pin. It does not change a user-facing application interface or documented usage. The existing u…
Module-Level Documentation Passed The pull request changes a workflow YAML file and one existing Python module. tests/workflow_contracts/whitaker_contracts.py has the module docstring `"""Read and validate Statelet's binding Whitake…
Testing (Unit And Behavioural) Passed The change updates only the external Whitaker action pin and its workflow-contract expectation. Existing tests exercise the relevant boundary: whitaker_gate_test.py loads .github/workflows/ci.yml,…
Testing (Property / Proof) Passed PASS: The pull request changes one GitHub Actions SHA pin and the matching INSTALL_PIN constant. It does not introduce a new invariant over a range of inputs, states, orderings, or transitions. It i…
Testing (Compile-Time / Ui) Passed Pass this check because the pull request changes only a GitHub Actions pin in .github/workflows/ci.yml and the matching Python contract constant in tests/workflow_contracts/whitaker_contracts.py. …
Unit Architecture Passed Pass. The pull request changes only the pinned revision of the existing install-whitaker workflow action and the matching INSTALL_PIN test constant. It does not add or alter query units, command i…
Domain Architecture Passed The pull request changes only the GitHub Actions Whitaker pin and its workflow contract. It does not change domain logic, adapters, repositories, transport code, persistence code, or framework boundar…
Observability Passed Pass this check. The pull request changes only the pinned Whitaker GitHub Action revision and its workflow contract pin. It changes CI tool provisioning, not production application behaviour or a prod…
Full details: Title check

Explanation

The title accurately describes the main change: repinning the Whitaker installation action to the specified commit and installer version. No GitHub issue number is required because the description does not reference a GitHub issue in the required format.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files. (1 skipped: 1 unsupported.)

Full details: Testing (Overall)

Explanation

Pass the testing check. The existing workflow contract test loads the actual ci.yml and asserts the installer uses the exact approved full SHA through INSTALL_PIN. Its mutation case replaces the pin with an incorrect value and requires the contract to reject it. The PR updates INSTALL_PIN to match the changed workflow pin, so the test guards the introduced configuration behaviour. The test suite runs through make test-workflow-contracts. Do not require a test of the third-party Whitaker installer itself.

Full details: User-Facing Documentation

Explanation

Pass the documentation check. The diff changes only the CI Whitaker action pin and its workflow contract pin. It does not change a user-facing application interface or documented usage. The existing user guide already identifies Whitaker as a lint prerequisite and links to the developer installation guidance.

Full details: Module-Level Documentation

Explanation

The pull request changes a workflow YAML file and one existing Python module. tests/workflow_contracts/whitaker_contracts.py has the module docstring """Read and validate Statelet's binding Whitaker consumer contracts.""" in both the base and head revisions. The docstring states the module's purpose and function, and identifies its Whitaker consumer-contract relationship. The workflow file is not a module. No documentation failure is introduced.

Full details: Testing (Unit And Behavioural)

Explanation

The change updates only the external Whitaker action pin and its workflow-contract expectation. Existing tests exercise the relevant boundary: whitaker_gate_test.py loads .github/workflows/ci.yml, requires the exact full SHA, checks installer ordering and inputs, and rejects a wrong pin. The CI workflow then runs the pinned installer before make lint, while whitaker_failure_propagation_test.py covers the local Make failure path. No new unit test is required for this pin-only change.

Full details: Testing (Property / Proof)

Explanation

PASS: The pull request changes one GitHub Actions SHA pin and the matching INSTALL_PIN constant. It does not introduce a new invariant over a range of inputs, states, orderings, or transitions. It introduces no lemma or proof assumption. The existing Whitaker contract uses a small parameterized mutation table for relevant workflow failures, which fits the stated testing guidance better than a property test.

Full details: Testing (Compile-Time / Ui)

Explanation

Pass this check because the pull request changes only a GitHub Actions pin in .github/workflows/ci.yml and the matching Python contract constant in tests/workflow_contracts/whitaker_contracts.py. It introduces no Rust or TypeScript compile-time behaviour and no text, structured, or UI-adjacent output that requires snapshot coverage.

Full details: Unit Architecture

Explanation

Pass. The pull request changes only the pinned revision of the existing install-whitaker workflow action and the matching INSTALL_PIN test constant. It does not add or alter query units, command interfaces, dependency boundaries, fallible APIs, or side-effect handling. The existing installer remains an explicit workflow command before make lint, and cranelift: true remains unchanged.

Full details: Domain Architecture

Explanation

The pull request changes only the GitHub Actions Whitaker pin and its workflow contract. It does not change domain logic, adapters, repositories, transport code, persistence code, or framework boundaries. The workflow keeps the existing cranelift: true input, and the contract matches the new immutable pin.

Full details: Observability

Explanation

Pass this check. The pull request changes only the pinned Whitaker GitHub Action revision and its workflow contract pin. It changes CI tool provisioning, not production application behaviour or a production service boundary. The workflow retains named Install Whitaker and Lint steps; GitHub Actions captures their command output and failure status for diagnosis. No new production failure mode requires logs, metrics, tracing, or alerts.

Full details: Developer Documentation

Explanation

Update the developer guide before merging. The pull request changes the CI Whitaker provisioning tool from shared action pin 6dea5677... to 5a99aed7..., which selects whitaker-installer 0.2.11 and changes cold driver-build behaviour. docs/developers-guide.md:41-46 documents only the generic action and local prerequisites. It does not document the selected installer version or the reason for the required repin. No documentation files changed in the pull request.

Resolution

Update docs/developers-guide.md in the Whitaker setup section. Record the approved shared action pin or its selected whitaker-installer version, explain that 0.2.11 uses a verified Clippy snapshot because Dylint 6.0.1 cannot clone the removed master branch, and state the expected cache-restored driver rebuild. Keep any relevant historical execution record clearly marked as historical.

Pin the action, match the test,
Keep the Cranelift input at rest.
One revision guides the build,
The workflow’s contract is fulfilled.
Whitaker follows the chosen trail.

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

@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.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@leynos
leynos merged commit 9825bf7 into main Oct 30, 2026
6 checks passed
@leynos
leynos deleted the repin-install-whitaker-0-2-11 branch October 30, 2026 03:51
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