Prepare SignPath code-signing readiness for winTerm 1.1.3 - #21
Merged
Conversation
- Add CODE_SIGNING_POLICY.md with the SignPath attribution sentence, roles, manual-approval requirement, build provenance, artifact ownership boundaries, and the honest current unsigned status; link it and the status from the README code signing section. - Add .github/CODEOWNERS covering workflows, release/build/packaging scripts, version and branding metadata, and policy documents. - Extend CONTRIBUTING.md with the external-contribution review policy for CI, workflows, build scripts, packaging, dependency downloads, and signing configuration. - Make PRIVACY.md wording version-neutral and point SUPPORT.md at the latest official Release instead of a hard-coded stable version. - Add docs/signing/signpath-readiness.md separating completed, externally verified, manual, and blocked items, including the upstream-fork-visibility application blocker and the published-1.1.3 binary metadata gap.
- Update winterm-shim.rc so winTerm.exe and winterm-shim.exe carry ProductVersion/FileVersion 1.1.3 from the canonical version metadata, and make verify-version.ps1 fail on any future shim version-resource drift. - Broaden the release-notes signing disclosure guard so an existing 'not Authenticode-signed' section is recognized; the narrower match previously appended a duplicate Signing section to the published v1.1.3 Release body. - Ensure every generated Release body links the Code signing policy and the Privacy policy, and add the Policies section to the 1.1.3 release notes source; update test-release-workflow.ps1 boundaries accordingly.
HelloThisWorld
marked this pull request as ready for review
July 28, 2026 13:41
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.
Summary
Prepare the repository for a SignPath Foundation OSS code-signing application: add the canonical code signing policy and readiness audit, protect release surfaces with CODEOWNERS and an explicit external-review policy, align shim binary version metadata with the canonical version, and fix the release-notes generator bug that duplicated the Signing section on the published v1.1.3 Release.
No runtime behavior, terminal behavior, UI interaction, or data format changes. No version bump, tag, or release is created.
Related issues
None.
Detailed changes
CODE_SIGNING_POLICY.md(new, canonical): exact SignPath attribution sentence, Authors/Committers/Reviewers/Approvers, manual-approval requirement, build provenance, artifact ownership boundaries (winTerm-owned vs modified upstream vs third-party), privacy and install/uninstall links, and the honest current status (latest release unsigned, no certificate issued).README.md: links the canonical policy and states the current unsigned status in the existing Code signing policy section.CONTRIBUTING.md: external contributions require maintainer review explicitly covering CI, workflows, build/packaging scripts, dependency downloads, and signing configuration..github/CODEOWNERS(new): covers.github/,scripts/winterm/,build/,packaging/, version/branding metadata, and policy documents. Effective only once branch protection requires code-owner review (server-side, tracked as a manual prerequisite).PRIVACY.md: version-neutral wording ("Current winTerm releases", "a future release") replacing "winTerm 1.0"; all statements preserved and still validated bytest-privacy.ps1.SUPPORT.md: current Stable defined by the latest official Release link instead of a hard-coded 1.0.2.src/winterm-tools/winterm-shim/winterm-shim.rc: FILEVERSION/PRODUCTVERSION 1,1,3,0 and display versions 1.1.3, matchingsrc/winterm/Branding/version.json. The published v1.1.3 assets still contain the older 1.0.0/1.0.8.0 shim metadata (released assets are immutable); the next release picks this up.scripts/winterm/verify-version.ps1: new assertions fail the pipeline on any future shim version-resource drift (numeric and display versions plus ProductName).scripts/winterm/generate-release-artifacts.ps1: the unsigned-disclosure guard now recognizes "not Authenticode-signed" (the narrow match caused the duplicate## Signingsection on the v1.1.3 Release body), and every generated Release body now carries Code signing policy and Privacy policy links.scripts/winterm/test-release-workflow.ps1: disclosure boundaries updated to the new generator text plus the policy-link requirements.docs/releases/1.1.3.md: adds the Policies links section.docs/signing/signpath-readiness.md(new): SignPath checklist split into completed / verified externally / known gaps / manual prerequisites / blocked, including the high-priority upstream-fork-visibility application blocker (repository is not a GitHub-visible fork of microsoft/terminal).The published v1.1.3 GitHub Release body was separately corrected through the GitHub API (duplicate Signing section removed, Policies links added); its tag and assets are untouched.
Validation performed
.\scripts\winterm\test.ps1 -Suite Smoke— passed (exit 0) on Windows 11 x64, Windows PowerShell; includes script syntax, version consistency (with the new shim assertions), branding, release-workflow boundaries, shell/workspace/pane static checks, and privacy validation..\scripts\winterm\verify-version.ps1— passed..\scripts\winterm\test-privacy.ps1— passed..rcversion resource, and CI validation covers the rest.Checklist
winterm.exe, and Microsoft Terminal coexistence remain isolated.