Skip to content

Kernel: a dependency update needs no model review #32

Closed

Description

@don-petry

Part of the epic "Epic: nine gaps in the Kernel, found in review".

Why. A pull request of class dependency with green checks waits for a model review, and one is admitted. A dependency update is judged by the deterministic Lenses alone; people can still block it.

Done when

  • test_a_dependency_update_needs_no_model_review passes with @pending removed.
  • One function says which model Lenses are required for an item's class. It is used where the Kernel waits for reviews and where it reads gating threads, with a test and a mutant for each place.
  • A person's thread still gates a dependency update.
  • No document says not held yet beside this test.

Needs. The pull request that carries the pinned tests has merged. The simulator's world is always of class maintainer, so it will not exercise this rule; the tests must.

Design. §4.2, "Which Lenses are required is data".

Activity

  1. don-petry commented on Oct 15, 2026

    @don-petry
    ContributorAuthor

    Working ruling (Solution Architect, delegated). The Maintainer may overturn it in review.

    Any open thread from a model Lens gates a dependency update. Whether a model Lens is required decides only whether the Kernel waits for that Lens's review. It does not decide whether a Finding that Lens has already raised still counts.

    Otherwise an edge case converges with an unanswered Finding while the ruleset blocks the merge (the deadlock in L-08):

    1. Someone else pushes to the bot's branch.
    2. pr-review opens a thread.
    3. The bot recreates the branch and is the last pusher again.

    A pure dependency update is never reviewed, so it never has such threads and loses nothing.

    Criterion 2 is reworded: "One function says which model Lenses an item's class requires, and is used where the Kernel waits for reviews. A Finding a model Lens has raised gates whatever the class. Each has a test and a mutant."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions