22 Commits

Author SHA1 Message Date
Rui Chen
66d1e63158 feat: update to use core tap for beads installation (#1261)
* feat: update to use core tap for beads installation

Signed-off-by: Rui Chen <rui@chenrui.dev>

* remove custom tap related code and refs

Signed-off-by: Rui Chen <rui@chenrui.dev>

---------

Signed-off-by: Rui Chen <rui@chenrui.dev>
2026-01-24 17:11:21 -08:00
emma
b5178e1895 fix(build): disable CGO for darwin builds in goreleaser
CGO cross-compilation for darwin from Linux CI runner fails without
osxcross. Since Dolt/federation features are now CGO-optional,
darwin builds can use CGO_ENABLED=0.

Users who need Dolt features on macOS can build from source with
CGO enabled.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 00:13:02 -08:00
Bob Cotton
c802f27fe5 feat: comprehensive NixOS support improvements (#1024)
* feat: comprehensive NixOS support improvements

This commit adds full NixOS support and automates Nix package maintenance:

## Static Linux Binaries for NixOS

Changes .goreleaser.yml to create static Linux binaries:
- Set CGO_ENABLED=0 for Linux amd64 and arm64 builds
- Remove cross-compiler dependencies (aarch64-linux-gnu-gcc)
- Simplifies build process while fixing NixOS compatibility

Static binaries work on all Linux distributions including NixOS, Alpine,
and musl-based distros without dynamic linker dependencies.

## Automated default.nix Version Management

Adds default.nix to the version bump workflow:
- Updates default.nix version field in bump-version.sh (new step 9)
- Adds default.nix to version verification checks
- Prevents version drift (was 5 releases behind: 0.42.0 vs 0.47.0)
- Updates README.md to remove glibc 2.32+ requirement

## Automated vendorHash Management

Creates scripts/update-nix-vendorhash.sh to automate vendorHash updates:
- Automatically detects correct hash by triggering Nix build error
- Extracts hash from error message and updates default.nix
- Verifies update with clean build
- Eliminates error-prone manual copy-paste workflow
- Works with local Nix OR Docker (uses nixos/nix image automatically)

Integrates vendorHash check into bump-version.sh:
- Detects when go.mod or go.sum have changed
- Prompts to run vendorHash update script interactively
- Catches synchronization issues at release time

## Documentation

Updates AGENTS.md with Nix package maintenance guide:
- Documents when and how to update vendorHash
- Recommends automated script as primary method
- Provides manual and alternative methods as fallback
- Notes Docker fallback for maintainers without Nix

## Impact

- NixOS users can now install via standard methods
- Nix package version stays synchronized automatically
- vendorHash updates work without Nix installed (via Docker)
- vendorHash updates are caught during release workflow
- All Linux users benefit from more portable binaries

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: address PR review feedback for NixOS support

Fixes three issues identified in PR review:

1. Replace undefined log_* functions in bump-version.sh with existing
   echo pattern (log_warning, log_info, log_success, log_error were
   called but not defined)

2. Update default.nix version from 0.42.0 to 0.47.0 to fix version
   drift with cmd/bd/version.go

3. Remove Nix Package Maintenance section from AGENTS.md per beads
   architecture (use bd prime for dynamic context, keep AGENTS.md
   minimal)

* fix: update versions to 0.47.1 after merge with main

- Update claude-plugin plugin.json to 0.47.1
- Update default.nix to 0.47.1
- Fixes version check failures after merging latest main branch

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:46:33 -08:00
Jordan Hubbard
8c04eb7e7f docs(install): mention FreeBSD support (#1010)
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-11 00:03:18 -08:00
Ariff Azman
2a579a539b feat: add native Android/Termux binary support (#887)
feat: added android support for running with termux

Adds GOOS=android arm64 build to goreleaser and platform detection in npm postinstall.

Tested by contributor on Termux where os.platform() returns 'android' and Linux binaries fail due to bionic vs glibc.
2026-01-05 20:06:25 -08:00
Ramiro Rivera
d6045ab297 Add Windows ARM64 build support (#834)
* feat(build): add Windows ARM64 build support

- .goreleaser.yml
- .github/workflows/release.yml
- winget/SteveYegge.beads.installer.yaml

Add Windows ARM64 (aarch64) build target to support modern Windows devices
like Surface Pro X and Snapdragon-based laptops.

Changes:
- Added bd-windows-arm64 build configuration with CGO cross-compiler
- Installed gcc-mingw-w64-aarch64 toolchain in CI release workflow
- Added ARM64 installer entry to WinGet manifest (placeholder SHA256)
- Updated release header to mention Windows ARM64 support

The npm package already supports ARM64 in its cpu array.

Fixes: #833

* fix(build): use CGO_ENABLED=0 for Windows ARM64

- Remove non-existent gcc-mingw-w64-aarch64 package from CI
- Use CGO_ENABLED=0 since ncruces/go-sqlite3 is WASM-based
- Remove unnecessary CC/CXX cross-compiler settings

Addresses review feedback from @steveyegge on PR #834.

* style: remove inconsistent inline comment from goreleaser config

Aligns with existing style where CGO_ENABLED entries have no inline comments.
2026-01-01 19:46:02 -08:00
Jordan Hubbard
aa2ea48bf2 feat: add FreeBSD release builds (#832)
* feat: add FreeBSD release builds

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* chore: allow manual release dispatch

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: stabilize release workflow on fork

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: clean zig download artifact

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: use valid zig target for freebsd arm

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: disable freebsd arm release build

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: switch freebsd build to pure go

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: skip release publishing on forks

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix: satisfy golangci-lint for release PR

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-01 10:51:51 -08:00
Steve Yegge
3c786f2333 feat: add Windows code signing infrastructure (bd-14v0)
Implements Authenticode signing for Windows binaries to reduce AV false positives.

Changes:
- Add scripts/sign-windows.sh for osslsigncode-based signing
- Update .goreleaser.yml with post-build signing hook
- Update release.yml to install osslsigncode and pass secrets
- Update docs/ANTIVIRUS.md with signing verification instructions
- Update scripts/README.md with signing script documentation

The signing is gracefully degraded - releases continue without signing
if the certificate secrets are not configured.

Required secrets for signing:
- WINDOWS_SIGNING_CERT_PFX_BASE64: base64-encoded PFX certificate
- WINDOWS_SIGNING_CERT_PASSWORD: certificate password

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:07:16 -08:00
matt wilkie
0423fc689f fix: Add commit and branch to bd version output (github #503)
- Update Makefile install target to extract and pass git commit/branch via ldflags
- Add -X main.Commit and -X main.Branch to all build configurations in .goreleaser.yml
- Create scripts/install.sh helper for explicit version control during installation
- Add comprehensive tests for commit/branch resolution and output formatting

Fixes github #503: 'bd version' now reports as-built commit hash and branch
information regardless of installation method (make install, go install, or
released binaries from goreleaser).
2025-12-13 10:04:01 +11:00
Troy Gaines
3570c958c7 Revert AMD64 back to original as gcc-x86_64-linux-gnu is not included on base install 2025-11-24 15:21:59 -06:00
Troy Gaines
f5af97e759 Add support for ARM Linux 2025-11-24 13:04:57 -06:00
Steve Yegge
d3de5519b2 Fix Windows SQLite support in releases
- Enable CGO in GoReleaser config
- Add MinGW cross-compiler for Windows builds
- Split builds per platform to configure correct CC
- Install cross-compilation toolchains in release workflow

Fixes #253

Amp-Thread-ID: https://ampcode.com/threads/T-8600ed89-42af-4785-b5dc-01ad37f1451d
Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 15:54:59 -08:00
Matteo Landi
64742cd574 Fix SQLite driver name mismatch causing "unknown driver" errors (#252)
* fix: Use correct SQLite driver name 'sqlite3' instead of 'sqlite'

The ncruces/go-sqlite3 driver registers as 'sqlite3', but doctor.go
and example code were using 'sqlite', causing 'unknown driver' errors.

This fix corrects all sql.Open() calls to use the proper driver name:
- cmd/bd/doctor.go: 6 instances fixed
- docs/EXTENDING.md: 2 documentation examples updated
- examples/bd-example-extension-go/: Fixed example code and README

Fixes #230

Amp-Thread-ID: https://ampcode.com/threads/T-1e8c5473-cb79-4457-be07-4517bfdb73f4
Co-authored-by: Amp <amp@ampcode.com>

* Revert CGO_ENABLED back to 0 for pure-Go SQLite driver

The ncruces/go-sqlite3 driver is pure-Go and doesn't require CGO.
The previous change to CGO_ENABLED=1 in commit f9771cd was an
attempted fix for #230, but the real issue was the driver name
mismatch ('sqlite' vs 'sqlite3'), which is now fixed.

Benefits of CGO_ENABLED=0:
- Simpler cross-compilation (no C toolchain required)
- Smaller binaries
- Faster builds
- Matches the intended design of the pure-Go driver

---------

Co-authored-by: Amp <amp@ampcode.com>
2025-11-07 14:19:14 -08:00
Steve Yegge
739786e949 feat: Separate Homebrew update workflow with PAT support 2025-11-05 20:38:47 -08:00
Steve Yegge
34ff0a1200 fix: Disable ARM64 builds for Linux/Windows (CGO cross-compile issues) 2025-11-05 20:25:00 -08:00
Steve Yegge
f9771cddd1 Fix SQLite driver missing on arm64 macOS builds
Enable CGO_ENABLED=1 in goreleaser config to ensure SQLite driver
is properly compiled and linked in all builds.

Fixes #230

Amp-Thread-ID: https://ampcode.com/threads/T-06ef71cb-d3e8-42bf-8876-b09814c2c09c
Co-authored-by: Amp <amp@ampcode.com>
2025-11-05 14:30:12 -08:00
Steve Yegge
37ed10c7be fix: Point GoReleaser homebrew tap to homebrew-beads repo
Was pushing to steveyegge/beads instead of steveyegge/homebrew-beads.
This caused Homebrew formula to be committed to wrong repo.
2025-11-05 00:13:48 -08:00
Steve Yegge
edf6008f63 Fix GoReleaser homebrew config: use 'directory' not 'folder' 2025-11-01 11:04:09 -07:00
Steve Yegge
0c9a6ab72a Configure GoReleaser to publish Homebrew formula in main repo 2025-11-01 10:42:07 -07:00
Steve Yegge
b0b9c37f6b Fix PyPI publish workflow to run independently of GoReleaser
- Add 'if: always()' to publish-pypi job so it runs even if goreleaser fails
- Remove 'go test' from .goreleaser.yml since CI already runs tests
- This ensures MCP server gets published even if binary release has issues
2025-10-24 22:38:42 -07:00
Steve Yegge
e009296f13 fix: Code review fixes for GoReleaser setup
- Change version.go constants to variables for ldflags to work
- Fix changelog regex to properly match feat(scope): and fix(scope):
- Enable windows/arm64 builds (pure Go, no CGO issues)
- Add concurrency guard to release workflow

Oracle review feedback implemented.
2025-10-23 19:20:07 -07:00
Steve Yegge
50eb9ce550 feat: Add GoReleaser workflow for cross-platform binary releases
- Add .goreleaser.yml for automated releases
- Add .github/workflows/release.yml triggered on version tags
- Build matrix: darwin/linux/windows for amd64/arm64
- Update install.sh to download from GitHub releases first
- Add install.sh symlink at root for convenience
- Update RELEASING.md with automation documentation

Closes #89 (vendorable executables as releases)
Implements bd-85

Amp-Thread-ID: https://ampcode.com/threads/T-02baad43-7e97-4710-bc60-777643d2eb77
Co-authored-by: Amp <amp@ampcode.com>
2025-10-23 19:02:12 -07:00