Skip to content

Prepare winget publishing for stable releases - #106

Merged
Subhransu-De merged 1 commit into
mainfrom
feat/winget-publish
Oct 25, 2026
Merged

Subhransu-De merged 1 commit into
mainfrom
feat/winget-publish

Conversation

@Subhransu-De

Copy link
Copy Markdown
Owner

What changed

  • Setup sets UninstallDisplayName=ControlFreak, so Apps & Features and winget list show ControlFreak instead of ControlFreak version <version>. The version stays in its own column. The AppId, and so the winget ProductCode ControlFreak.Windows.x64_is1, is unchanged.
  • release.yml gets a winget job that runs after a stable release is published. It downloads Komac 2.17.1, checks its SHA-256 like the existing Hawk and Inno Setup downloads, and runs komac update SubhransuDe.ControlFreak --submit to open the winget-pkgs PR.
    • The job has read-only repository access. The WINGET_TOKEN secret is passed only to the Komac step.
    • Prereleases are skipped. Without the secret, the job records a notice and does nothing else, so releases behave as before until the token is added.
    • The release job now exposes its tag as an output for this job.
  • CONTRIBUTING.md describes the job, the token it needs and how to retry it. CHANGELOG.md records the display-name change.

Komac is called directly instead of through vedantmgoyal9/winget-releaser, which installs cargo-bins/cargo-binstall@main and an unpinned Komac internally. That would bypass the repository's SHA pinning.

The job opens nothing until SubhransuDe.ControlFreak exists in winget-pkgs. The first version (0.1.0) will be submitted by hand.

Checks

  • make check (formatting, Clippy, tests, and release build)
  • User-visible changes are documented
  • actionlint, typos and gitleaks on the staged changes pass.
  • The draft 0.1.0 manifests were tested on a GitHub-hosted Windows Server 2025 runner with winget 1.11, in run 40128978748 and run 40129126022:
    • winget install --custom "/CLIENTS=codex" configures Codex.
    • The alpha.2 → 0.1.0 upgrade keeps the client entry, and the Apps & Features values match the manifest.
    • Reinstalling while the server runs returns exit code 7, which the manifest maps to winget's "application is currently running" message.
    • winget uninstall removes the app and keeps client entries, as documented.

Not verified

  • The winget job has not run, because that needs a stable release, the secret and an existing winget package.
  • The new display name takes effect with the next release build. CI's installer lifecycle test compiles it, but nothing asserts the registry value.
  • On the runner, setup only ran after SmartScreen and the attachment prompt were turned off. winget marks downloads as coming from the internet, so users of the unsigned installer should expect the SmartScreen warning that docs/install.md already mentions.

Generated with claude-opus-5-5

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-25T06:03:12.733672Z 4e1a3a5 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge, with no actionable issues found.

Summary

This PR prepares automatic winget submissions after stable releases.

  • Stable releases open a winget package update after GitHub publishing.
  • Windows app listings show ControlFreak as the app name.

No actionable issues were found. Subhransu-De states that the first winget package will be submitted by hand; that prerequisite is intentional.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Build and verify release] --> B[Publish GitHub release]
  B --> C{Stable version?}
  C -->|No| D[Skip winget job]
  C -->|Yes| E{Token configured?}
  E -->|No| F[Record notice]
  E -->|Yes| G[Download Komac and check checksum]
  G --> H[Submit winget update]
Loading

Reviews (1) · Last reviewed commit: "Prepare winget publishing for stable rel..." · Reviewed by Greptile

@Subhransu-De
Subhransu-De merged commit 9894ad2 into main Oct 25, 2026
8 checks passed
@Subhransu-De
Subhransu-De deleted the feat/winget-publish branch October 25, 2026 06:35
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.

1 participant