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