chore(winget): move manifests to schema 1.12.0, automate submission - #46
Merged
Conversation
winget-pkgs' automated reviewer flags schema 1.6.0 as deprecated, and those three unresolved flags are what blocked the first submission (microsoft/winget-pkgs#409311) from merging despite a green pipeline and moderator approval. Bump the three templates to 1.12.0 (schema URL + ManifestVersion); the generated manifests still pass `winget validate` unchanged otherwise. The package description also stopped advertising OKF v0.1. Add a `winget-submit` job that opens the update PR by itself on each tag via winget-releaser. It stays inert -- skipping with a notice rather than failing the release -- until a WINGET_TOKEN secret exists, since the action also requires the package to be published already. Guard the version drift that the same PR exposed: the 0.2.0 package shipped a binary printing `okf 0.1.0-alpha.1`, because OkfCli.CliVersion is maintained by hand next to <Version> in Directory.Build.props and the existing test only asserted the "okf " prefix. The new test compares the two and was confirmed to go red when they disagree. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the WinGet packaging pipeline and metadata to align with current manifest schema expectations and automates opening WinGet update PRs on release tags, while adding a regression test to prevent CLI --version drift.
Changes:
- Bump WinGet manifest templates from schema/ManifestVersion 1.6.0 to 1.12.0 and update locale description to OKF v0.2.
- Add a GitHub Actions
winget-submitjob (gated onWINGET_TOKEN) to openmicrosoft/winget-pkgsupdate PRs on tags. - Add a test to ensure
okf --versionmatches the build/package version source of truth.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/OKF4net.Tests/CliTests.cs | Adds a version drift test for okf --version vs the build version. |
| packaging/winget/templates/Coderise.OKF4net.yaml.in | Updates schema URL and ManifestVersion to 1.12.0 (version manifest). |
| packaging/winget/templates/Coderise.OKF4net.locale.en-US.yaml.in | Updates schema/ManifestVersion to 1.12.0 and refreshes description to OKF v0.2. |
| packaging/winget/templates/Coderise.OKF4net.installer.yaml.in | Updates schema URL and ManifestVersion to 1.12.0 (installer manifest). |
| packaging/winget/README.md | Documents the new schema and automated submission flow. |
| CHANGELOG.md | Records schema bump, automation, and the new version drift guard. |
| .github/workflows/release.yml | Adds a gated winget-submit job using winget-releaser on tag releases. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+67
to
+73
| var props = File.ReadAllText(Path.Combine(TestPaths.RepoRoot(), "Directory.Build.props")); | ||
| var declared = Regex.Match(props, @"<Version>\s*([^<\s]+)\s*</Version>"); | ||
| Assert.True(declared.Success, "no <Version> element in Directory.Build.props"); | ||
|
|
||
| var r = Run("--version"); | ||
| Assert.Equal(0, r.Code); | ||
| Assert.StartsWith($"okf {declared.Groups[1].Value} ", r.Out); |
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.
Coderise.OKF4netis now published on winget (winget-pkgs#409311 merged on 2026-08-20), and the update to 0.5.0 is in review (winget-pkgs#421329). This branch is the fallout on our side.What blocked the first submission
Not the validation — that was green and moderator-approved for three weeks. The merge bot refused with
All comments must be resolved: three unresolved Copilot threads flagging manifest schema 1.6.0 as deprecated. Templates now target 1.12.0 (schema URL +ManifestVersion); manifests generated from them passwinget validateunchanged otherwise, verified against the real 0.5.0 release URLs and hashes. The package description also stopped advertising OKF v0.1.What manual validation exposed
The moderator's session showed
okf --versionprintingokf 0.1.0-alpha.1for package version 0.2.0:OkfCli.CliVersionis a hand-maintained constant sitting next to<Version>inDirectory.Build.props, andVersion_prints_and_succeedsonly asserted theokfprefix. The newVersion_matches_the_build_versioncompares the two; it was confirmed red when the props version is changed and left drifting.Automation
release.ymlgains awinget-submitjob (winget-releaser) that opens the update PR on each tag. It stays inert — skipping with a::notice::rather than failing the release — until aWINGET_TOKENsecret exists, which matters because the action also errors out on a package with no published version. Both branches of the gate step were executed locally.Full suite green (913),
dotnet format --verify-no-changesclean.🤖 Generated with Claude Code