Skip to content

Complete ordinary-PR Dylint parity and cold/warm measurement through Bosn → act2 #1643

Description

@zackees

The adopted Linux local gate runs the two Ubuntu jobs from ci-minimal.yml, and accurately declares that limited scope. It does not run the independent PR-triggered dylint.yml workflow. A successful declared local gate therefore does not establish complete ordinary-PR Dylint parity. The first migration remains tracked in #1635; this is the focused Dylint proof and measurement follow-up to the broader rollout in #1639.

Evidence: ci/local_gate.py selects workflow ci-minimal.yml, job linux, with required check and python-facade-tests. dylint.yml independently runs on PRs and requires its policy, Dylint execution, and aggregator. Ordinary PR execution checks the entire Linux workspace; dispatch/full selection adds platform-specific cross-target passes. Preserve those event-dependent choices rather than measuring dispatch as if it were an ordinary PR.

Implement a separate source- and definition-bound local Dylint proof through Bosn → pinned act2, executing the unchanged existing workflow with the real PR context. Cover policy checks, shrink-only baselines, all lint libraries, all targets/features selected by the existing command, observed boundary evidence, and the final required Dylint status. Add no new GitHub workflow. Do not turn incomplete or skipped execution into a passing proof.

Measure complete cold, fresh-engine warm, changed-source warm, and identical-input attestation reuse separately, including checkout, setup, compiler, cache restore/save and aggregation overhead. Record exact source/tree, workflow closure, actual runtime/tool/target identity, executed steps, cache writer provenance and payload handoff. Ancestor reuse must preserve invalidation for changes. Retain remote checks until source-bound proof trust is validated; release validation always executes freshly.

Activity

  1. zackees commented on Oct 4, 2026

    @zackees
    MemberAuthor

    Implementation checkpoint: feat/local-dylint-pr-parity at 7c54f5a32aae2eff41be71478763b5243131fd5e, based on default branch f2dca463. The existing local gate now runs its Ubuntu pair and then the entire existing dylint.yml with PR/minimal context and no job selector. No workflow was added or edited. Dylint acceptance requires policy/dylint/gate exactly once with completed success and completed-success evidence for the named policy, library and workspace steps. Dispatch/full, job-filtered, missing, skipped and duplicate evidence is rejected.

    The first actual replay at d45e4146 completed all three Ubuntu graph jobs successfully (verify, check, python-facade-tests), but exposed a verifier error: the selected Linux job also includes its prerequisite. The outer gate correctly failed before Dylint; it produced no passing attestation. The count was corrected to require the actual three-job graph, with a missing-verifier regression. The actual terminal record reproduces rejection by the old selection and acceptance by the dependency-aware selection.

    31 focused helper/fractional/status tests, configured C901/RUF100 and formatting passed. The same primary reviewer approved both the implementation and correction. A fresh complete gate is currently running at 7c54f5a3; no complete Dylint pass, PR merge, runtime adoption or speedup is claimed yet. Concurrent correctness runs will not be presented as controlled cold/warm performance evidence.

  2. zackees commented on Oct 4, 2026

    @zackees
    MemberAuthor

    PR #1646 now includes the complete ordinary-PR Dylint workflow in the existing local gate, with no job filter. The updated-main source tree 11880321d07c88b62fe67844f2fbd1c628d3ded9 passed the original complete declared gate in 851 seconds, with every selected Ubuntu verifier/check/Python job and the independent Dylint workflow accepted. This was concurrent correctness validation, not a controlled cold/warm speed comparison.

    The remote branch independently merged the same main commit. Its tree and parents exactly matched the tested local merge. The normal checker reused the verified 3,370-input lane in under one second and issued fresh tree/parent-bound proof. A normal merge preserved the remote update; final head c95e9f8e1aec61c68ae09f226b0203fb6ac5d554 was pushed without force and passes explicit PR-context Local-Gate verification. This is positive unchanged-input proof reuse, not physical cache-handoff proof.

    The PR is still awaiting its latest remaining remote checks and normal landing. Keep this issue open for controlled Dylint/whole-workflow measurements, ancestor physical payload reuse, PR-to-main payload/attestation publication, a second fresh-checkout consumer, changed-input invalidation, and release fresh execution.

  3. zackees commented on Oct 4, 2026

    @zackees
    MemberAuthor

    PR #1646 merged normally as 35f1b2292cf41153adf900e32745f42cb5e3cd64 after every latest check completed successfully (with the existing conditional skips). The actual merged tree exactly matches the complete 851-second local-gate proof and the checker-issued unchanged-input reuse proof, 11880321d07c88b62fe67844f2fbd1c628d3ded9. Both independent Ubuntu and ordinary-PR Dylint workflow selections are now part of the declared local gate. No workflow files were added and existing coverage selection was preserved.

    Keep #1643 open: this lands parity, not the remaining controlled cold/warm Dylint measurements, ancestor physical payload reuse, PR-to-main payload publication, second fresh-checkout consumer and release non-reuse validation. Unchanged-input local proof reuse completed in under one second, but the overlapping 851-second correctness run is not a controlled workflow speedup comparison.

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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions