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>
This commit is contained in:
109
scripts/update-winget.sh
Executable file
109
scripts/update-winget.sh
Executable file
@@ -0,0 +1,109 @@
|
||||
#!/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"
|
||||
43
winget/README.md
Normal file
43
winget/README.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Windows Package Manager (winget) Manifest
|
||||
|
||||
This directory contains the winget manifest files for publishing beads to the Windows Package Manager.
|
||||
|
||||
## Installation (once published)
|
||||
|
||||
```powershell
|
||||
winget install SteveYegge.beads
|
||||
```
|
||||
|
||||
## Manifest Files
|
||||
|
||||
- `SteveYegge.beads.yaml` - Version manifest (main file)
|
||||
- `SteveYegge.beads.installer.yaml` - Installer configuration
|
||||
- `SteveYegge.beads.locale.en-US.yaml` - Package description and metadata
|
||||
|
||||
## Submitting to winget-pkgs
|
||||
|
||||
1. Fork https://github.com/microsoft/winget-pkgs
|
||||
2. Create directory: `manifests/s/SteveYegge/beads/<version>/`
|
||||
3. Copy the three manifest files to that directory
|
||||
4. Submit a PR to microsoft/winget-pkgs
|
||||
|
||||
Or use the wingetcreate tool:
|
||||
```powershell
|
||||
wingetcreate update SteveYegge.beads --version <new-version> --urls <new-url> --submit
|
||||
```
|
||||
|
||||
## Updating for New Releases
|
||||
|
||||
When releasing a new version:
|
||||
|
||||
1. Update the version in all three manifest files
|
||||
2. Update the InstallerUrl in the installer manifest
|
||||
3. Update the InstallerSha256 (get from checksums.txt in the release)
|
||||
4. Update the ReleaseNotesUrl
|
||||
5. Submit PR to microsoft/winget-pkgs
|
||||
|
||||
### Getting the SHA256
|
||||
|
||||
```bash
|
||||
curl -sL https://github.com/steveyegge/beads/releases/download/v<VERSION>/checksums.txt | grep windows
|
||||
```
|
||||
14
winget/SteveYegge.beads.installer.yaml
Normal file
14
winget/SteveYegge.beads.installer.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json
|
||||
PackageIdentifier: SteveYegge.beads
|
||||
PackageVersion: 0.30.7
|
||||
InstallerType: zip
|
||||
NestedInstallerType: portable
|
||||
NestedInstallerFiles:
|
||||
- RelativeFilePath: bd.exe
|
||||
PortableCommandAlias: bd
|
||||
Installers:
|
||||
- Architecture: x64
|
||||
InstallerUrl: https://github.com/steveyegge/beads/releases/download/v0.30.7/beads_0.30.7_windows_amd64.zip
|
||||
InstallerSha256: 91A3D0799533DE8FA9AAB6415B8A57BDD542C59A21805FBF80A559A53F3CD02E
|
||||
ManifestType: installer
|
||||
ManifestVersion: 1.6.0
|
||||
29
winget/SteveYegge.beads.locale.en-US.yaml
Normal file
29
winget/SteveYegge.beads.locale.en-US.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json
|
||||
PackageIdentifier: SteveYegge.beads
|
||||
PackageVersion: 0.30.7
|
||||
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/v0.30.7
|
||||
ManifestType: defaultLocale
|
||||
ManifestVersion: 1.6.0
|
||||
6
winget/SteveYegge.beads.yaml
Normal file
6
winget/SteveYegge.beads.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json
|
||||
PackageIdentifier: SteveYegge.beads
|
||||
PackageVersion: 0.30.7
|
||||
DefaultLocale: en-US
|
||||
ManifestType: version
|
||||
ManifestVersion: 1.6.0
|
||||
Reference in New Issue
Block a user