Skip to content

Session Handoff [python-contract]: Python Gate Behavior Edge Cases on Develop, Promotion #1943 Ready #1945

Description

@ptr727

This round settled #1936's behavior-changing edge cases with the maintainer's decision on each item. The work landed on develop in #1942 and #1944. Promotion #1943 is ready but not merged.

Next steps, in priority order

Re-read each issue and pull request rather than trusting these summaries.

  1. Merge promotion Promote develop to main: Settle the Python Gate's Behavior-Changing Edge Cases #1943 and release. It meets every Merge Gate item except the maintainer's go-ahead. Its head at handoff was 29a9690a, so re-read it before merging. Done looks like: main carries Settle the Python Gate's Behavior-Changing Edge Cases From #1936 #1942 and Pluralize the Audit's Extra-Caller Finding for Several Jobs #1944, Decide the Python Directory Gate's Behavior-Changing Edge Cases #1936 is closed, and a release is dispatched if the maintainer wants one.
  2. PlexCleaner adopts the gate. This is unchanged from earlier links. It is first in the adoption order the maintainer set on Gate Every Repository's Python on Its Code, Not on Its Config #1800, and it happens in PlexCleaner's own session. Bump the validator pin to the release carrying Settle the Python Gate's Behavior-Changing Edge Cases From #1936 #1942 or later, and pass python-directories: RegressionTests on both callers. RegressionTests/ needs a tests/ suite and a mypy config first. The root-config fallback from Settle the Python Gate's Behavior-Changing Edge Cases From #1936 #1942 means its mypy config can live at the root. Done looks like: CI is green and the (python.directories.declared) driftNote is deleted.
  3. Python Build Profile's Pyright Rule Disagrees With the Gate's Mypy-Only Acceptance #1941, the build profile's pyright rule versus the gate. It waits on the maintainer's decision.
  4. Remaining deferred edge cases: Read a with: Input Past a Deeper-Indented Comment in the Audit #1916 and Count a setup.cfg [mypy] Section as a Declared Directory's Type Checker #1915, then configure.sh Resolves a Registry Entry by Name Rather Than by owner/repo Identity #1894 and Three Test Harnesses Build a Stand-In PATH With an Empty Fallback When PATH Is Unset #1862.

External blockers

Internal dependencies

State

Re-derive each of these at resume.

The parked decision queue

One open issue carries decision: #1941. It was presented to the maintainer at handoff.

What the last round did

What not to repeat

  • Waving off a user-visible message as "cosmetic". The local reviewer called the singular grammar with two jobs cosmetic. Copilot then raised it on the promotion PR, which cost a whole feature, develop, and promotion cycle. Fix a wrong message string when the local pass sees it.
  • A pin grep that ignores which file mypy loads. The first pin check grepped python_version in all four config files and every section. Two review rounds went to scoping it to the one file mypy loads, then to configparser's : form. Mirror the tool's own lookup order and syntax from the start.
  • A mutant hidden by a coincident finding. The first flow-mapping selftest case used a registry naming Tools, so the misread still produced a finding and a mutant removing the check survived. Choose fixtures where the defect is the only possible source of the expected result.

New learnings

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

    handoffA link in the session handoff chain, one open issue per track

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions