Skip to content

chore(winget): move manifests to schema 1.12.0, automate submission - #46

Merged
jchable merged 1 commit into
devfrom
winget-schema-1.12
Aug 20, 2026
Merged

chore(winget): move manifests to schema 1.12.0, automate submission#46
jchable merged 1 commit into
devfrom
winget-schema-1.12

Conversation

@jchable

@jchable jchable commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Coderise.OKF4net is 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 pass winget validate unchanged 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 --version printing okf 0.1.0-alpha.1 for package version 0.2.0: OkfCli.CliVersion is a hand-maintained constant sitting next to <Version> in Directory.Build.props, and Version_prints_and_succeeds only asserted the okf prefix. The new Version_matches_the_build_version compares the two; it was confirmed red when the props version is changed and left drifting.

Automation

release.yml gains a winget-submit job (winget-releaser) that opens the update PR on each tag. It stays inert — skipping with a ::notice:: rather than failing the release — until a WINGET_TOKEN secret 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-changes clean.

🤖 Generated with Claude Code

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>
Copilot AI lite review requested due to automatic review settings August 20, 2026 12:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-submit job (gated on WINGET_TOKEN) to open microsoft/winget-pkgs update PRs on tags.
  • Add a test to ensure okf --version matches 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);
@jchable
jchable merged commit 3e0925d into dev Aug 20, 2026
6 checks passed
@jchable
jchable deleted the winget-schema-1.12 branch August 20, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants