Skip to content

RelayResolver.register(always_on=) changed meaning in 0.7.0 without a rename, and relay_locked is not importable #54

Description

@dcj

Follow-up from #50, filed so the decision is recorded rather than to reverse it.

RelayResolver is exported from the package root. In 0.7.0 its register(..., always_on=) parameter widened from "relay-behavior is always-on, or explicit always-on: true" to the full locked bit, which now includes non-controllable. The name was kept deliberately, and the reasoning in #50 is sound: SPAN commissions this flag as alwaysOn and publishes relay-controllable as its inverse, so the name is the hardware's rather than a subset of the new meaning.

The residual risk is a producer that drives RelayResolver directly and computes the flag itself the old way (relay_behavior == "always-on"). It re-unlocks a circuit whose $settable the emitter has already omitted from the published description, restoring exactly the inconsistency #49 removed, silently.

Two things would close it, either or both:

  • Export manifest_physics.relay_locked from the package root. The new docstrings point producers at it as the single supported derivation, but it is the one name in that module not re-exported (CircuitPhysics and ManifestPhysicsView are), so a caller following the docstring has to reach into a submodule.
  • Rename the parameter to locked=, keeping always_on as a deprecated keyword alias for one release.

Activity

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