Skip to content

Windows distribution via winget #75

@jamescrosswell

Description

@jamescrosswell

Split out of #43 (Windows distribution), which now covers Scoop only. Scoop shipped via #74; this issue tracks the remaining winget half.

Goal

winget install mentaldesk.TuiCode

Status

The three manifests are drafted and pass winget validate (schema 1.6.0). They are not committed to the repo — once submitted, the canonical copy lives in microsoft/winget-pkgs and future releases bump it via wingetcreate update, exactly like the Homebrew formula lives in homebrew-tap (not here) and bump-tap.yml updates it there. The blocks below are the one-time bootstrap seed for the first submission.

Work

  1. Fork microsoft/winget-pkgs, drop the three files under manifests/m/mentaldesk/TuiCode/0.0.3/, open the PR (or wingetcreate submit <dir>).
  2. Expect a possible SmartScreen prompt (binaries are unsigned — signing tracked in Sign Windows release binaries via SignPath #70) and slightly heavier first-publisher review. Neither blocks acceptance.
  3. Add a wingetcreate update mentaldesk.TuiCode --version <v> --urls <x64> <arm64> --submit step on release: published, mirroring bump-tap.yml, so subsequent releases open the winget-pkgs PR automatically (it recomputes SHA256 from the release assets).

Manifests (bootstrap seed)

manifests/m/mentaldesk/TuiCode/0.0.3/mentaldesk.TuiCode.yaml
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json

PackageIdentifier: mentaldesk.TuiCode
PackageVersion: 0.0.3
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.6.0
manifests/m/mentaldesk/TuiCode/0.0.3/mentaldesk.TuiCode.installer.yaml
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json

PackageIdentifier: mentaldesk.TuiCode
PackageVersion: 0.0.3
InstallerType: zip
NestedInstallerType: portable
Installers:
  - Architecture: x64
    InstallerUrl: https://github.com/mentaldesk/TuiCode/releases/download/v0.0.3/tuicode-0.0.3-win-x64.zip
    InstallerSha256: 3218FDABD736142F127A1447A5B757ADE1634522A23EFDBD2E8E64B85562D853
    NestedInstallerFiles:
      - RelativeFilePath: TuiCode.exe
        PortableCommandAlias: tuicode
  - Architecture: arm64
    InstallerUrl: https://github.com/mentaldesk/TuiCode/releases/download/v0.0.3/tuicode-0.0.3-win-arm64.zip
    InstallerSha256: 54FCF748D03F3FD9881C6CBA5D009A25181B6D29DA9254E9B159A93B03FF1011
    NestedInstallerFiles:
      - RelativeFilePath: TuiCode.exe
        PortableCommandAlias: tuicode
ManifestType: installer
ManifestVersion: 1.6.0
manifests/m/mentaldesk/TuiCode/0.0.3/mentaldesk.TuiCode.locale.en-US.yaml
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json

PackageIdentifier: mentaldesk.TuiCode
PackageVersion: 0.0.3
PackageLocale: en-US
Publisher: mentaldesk
PublisherUrl: https://github.com/mentaldesk
PublisherSupportUrl: https://github.com/mentaldesk/TuiCode/issues
PackageName: TuiCode
PackageUrl: https://github.com/mentaldesk/TuiCode
License: MIT
LicenseUrl: https://github.com/mentaldesk/TuiCode/blob/main/LICENSE
Moniker: tuicode
ShortDescription: Minimalist terminal code editor for working over SSH
Tags:
  - terminal
  - tui
  - editor
  - cli
  - developer-tools
ManifestType: defaultLocale
ManifestVersion: 1.6.0

Resolved values

Field Value
SHA256 x64 3218FDABD736142F127A1447A5B757ADE1634522A23EFDBD2E8E64B85562D853
SHA256 arm64 54FCF748D03F3FD9881C6CBA5D009A25181B6D29DA9254E9B159A93B03FF1011
License MIT (LICENSE on main as of #71)
Short description Minimalist terminal code editor for working over SSH

These are for v0.0.3; regenerate the SHA256 pair from the .sha256 sidecars for any later version (wingetcreate does this automatically).

Notes

  • Dropped the redundant top-level Commands from the installer manifest — PortableCommandAlias: tuicode is what puts the command on PATH for a portable nested installer.
  • bin alias and PATH command verified via the Scoop install; the same TuiCode.exe-at-archive-root layout is what the winget RelativeFilePath: TuiCode.exe relies on.

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions