Regenerating the interop wrapper now records itself in the manifest - #43
Merged
Conversation
Two steps that must always happen together are one step. build/regenerate-interop.ps1 runs TlbImp against the Release type library and rewrites the wrapper's SHA-256 and size in hmailserver/docs/third-party-binaries.json in place, keeping every other byte of the manifest as it was. Doing only the first half by hand failed the binary-provenance check twice on 21 August - after two different people had each done it correctly. Its staleness guard does not trust mtimes: git bumps them on every checkout and merge, and the first version of the guard refused a type library that was in fact current because yesterday's fast-forward had touched the IDL. It now asks git - uncommitted edits newer than the library, or a last commit newer than the library - and either answer of stale is final. It also prefers the intermediate .tlb MIDL just wrote over the staged copy, because build.ps1 suppresses the post-build event that does the staging. RELEASE.md now describes the pull-request flow master's ruleset requires - push the branch, gh pr create, gh pr merge --rebase - rather than the direct push the ruleset exists to refuse. The maintainer's bypass announces itself at push time; the docs say to treat that as a mistake to correct. ci.yml and the roadmap record the tested answer on the Code quality setting: coverage upload works with the setting configured and no languages, but the setting being on at all re-exposes the 1,482 stale findings of the scan switched off on purpose, so it stays off and the build artifact is the coverage record.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two steps that must always happen together are one step.
build/regenerate-interop.ps1 runs TlbImp against the Release type library
and rewrites the wrapper's SHA-256 and size in
hmailserver/docs/third-party-binaries.json in place, keeping every other
byte of the manifest as it was. Doing only the first half by hand failed
the binary-provenance check twice on 21 August - after two different
people had each done it correctly.
Its staleness guard does not trust mtimes: git bumps them on every
checkout and merge, and the first version of the guard refused a type
library that was in fact current because yesterday's fast-forward had
touched the IDL. It now asks git - uncommitted edits newer than the
library, or a last commit newer than the library - and either answer of
stale is final. It also prefers the intermediate .tlb MIDL just wrote
over the staged copy, because build.ps1 suppresses the post-build event
that does the staging.
RELEASE.md now describes the pull-request flow master's ruleset requires
direct push the ruleset exists to refuse. The maintainer's bypass
announces itself at push time; the docs say to treat that as a mistake
to correct.
ci.yml and the roadmap record the tested answer on the Code quality
setting: coverage upload works with the setting configured and no
languages, but the setting being on at all re-exposes the 1,482 stale
findings of the scan switched off on purpose, so it stays off and the
build artifact is the coverage record.