Files
beads/scripts/update-winget.sh
Steve Yegge 5892a826fc feat(packaging): add Windows winget manifest (fixes #524)
Adds winget manifest files for publishing beads to Windows Package Manager:
- winget/SteveYegge.beads.yaml (version manifest)
- winget/SteveYegge.beads.installer.yaml (installer config)
- winget/SteveYegge.beads.locale.en-US.yaml (package metadata)
- scripts/update-winget.sh (helper script for updating manifests)

Once submitted to microsoft/winget-pkgs, users can install with:
  winget install SteveYegge.beads

The update-winget.sh script automates manifest updates for new releases.

Closes #524

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 03:38:31 -08:00

110 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
#
# Update winget manifest files for a new release
#
# Usage: ./scripts/update-winget.sh <version>
# Example: ./scripts/update-winget.sh 0.31.0
#
set -e
VERSION="${1:-}"
if [ -z "$VERSION" ]; then
echo "Usage: $0 <version>"
echo "Example: $0 0.31.0"
exit 1
fi
# Remove 'v' prefix if present
VERSION="${VERSION#v}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WINGET_DIR="$SCRIPT_DIR/../winget"
# Get SHA256 from release checksums
echo "Fetching SHA256 for v$VERSION..."
SHA256=$(curl -sL "https://github.com/steveyegge/beads/releases/download/v$VERSION/checksums.txt" | grep windows | awk '{print $1}')
if [ -z "$SHA256" ]; then
echo "Error: Could not find Windows checksum for v$VERSION"
echo "Make sure the release exists: https://github.com/steveyegge/beads/releases/tag/v$VERSION"
exit 1
fi
# Convert to uppercase for winget
SHA256=$(echo "$SHA256" | tr '[:lower:]' '[:upper:]')
echo "SHA256: $SHA256"
echo ""
echo "Updating manifest files..."
# Update version manifest
cat > "$WINGET_DIR/SteveYegge.beads.yaml" << EOF
# yaml-language-server: \$schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json
PackageIdentifier: SteveYegge.beads
PackageVersion: $VERSION
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.6.0
EOF
# Update installer manifest
cat > "$WINGET_DIR/SteveYegge.beads.installer.yaml" << EOF
# yaml-language-server: \$schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json
PackageIdentifier: SteveYegge.beads
PackageVersion: $VERSION
InstallerType: zip
NestedInstallerType: portable
NestedInstallerFiles:
- RelativeFilePath: bd.exe
PortableCommandAlias: bd
Installers:
- Architecture: x64
InstallerUrl: https://github.com/steveyegge/beads/releases/download/v$VERSION/beads_${VERSION}_windows_amd64.zip
InstallerSha256: $SHA256
ManifestType: installer
ManifestVersion: 1.6.0
EOF
# Update locale manifest
cat > "$WINGET_DIR/SteveYegge.beads.locale.en-US.yaml" << EOF
# yaml-language-server: \$schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json
PackageIdentifier: SteveYegge.beads
PackageVersion: $VERSION
PackageLocale: en-US
Publisher: Steve Yegge
PublisherUrl: https://github.com/steveyegge
PublisherSupportUrl: https://github.com/steveyegge/beads/issues
Author: Steve Yegge
PackageName: beads
PackageUrl: https://github.com/steveyegge/beads
License: MIT
LicenseUrl: https://github.com/steveyegge/beads/blob/main/LICENSE
Copyright: Copyright (c) 2024 Steve Yegge
ShortDescription: Distributed, git-backed graph issue tracker for AI agents
Description: |
beads (bd) is a distributed, git-backed graph issue tracker designed for AI-supervised coding workflows.
It provides a persistent, structured memory for coding agents, replacing messy markdown plans with a
dependency-aware graph that allows agents to handle long-horizon tasks without losing context.
Moniker: bd
Tags:
- issue-tracker
- ai
- coding-assistant
- git
- cli
- developer-tools
ReleaseNotesUrl: https://github.com/steveyegge/beads/releases/tag/v$VERSION
ManifestType: defaultLocale
ManifestVersion: 1.6.0
EOF
echo ""
echo "✓ Updated winget manifests for v$VERSION"
echo ""
echo "Next steps:"
echo "1. Commit these changes"
echo "2. Fork https://github.com/microsoft/winget-pkgs"
echo "3. Copy winget/*.yaml to manifests/s/SteveYegge/beads/$VERSION/"
echo "4. Submit PR to microsoft/winget-pkgs"