Files
beads/scripts/check-versions.sh
Will Ness cece38af16 docs: update paths for claude-plugin subdirectory structure (GH#985) (#1007)
Update documentation and scripts to reflect the plugin move from
root level to claude-plugin/ subdirectory:

- Fix command links in docs/DAEMON.md, docs/SYNC.md, examples/
- Update plugin.json path references in RELEASING.md, AGENT_INSTRUCTIONS.md
- Update scripts/bump-version.sh and scripts/check-versions.sh
- Update skill documentation paths in claude-plugin/skills/beads/

The marketplace.json correctly stays at .claude-plugin/ (root level)
while plugin.json moved to claude-plugin/.claude-plugin/.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 22:49:29 -08:00

73 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Check that all version files are in sync
# Run this before committing version bumps
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# Get the canonical version from version.go
CANONICAL=$(grep 'Version = ' cmd/bd/version.go | sed 's/.*"\(.*\)".*/\1/')
if [ -z "$CANONICAL" ]; then
echo -e "${RED}❌ Could not read version from cmd/bd/version.go${NC}"
exit 1
fi
echo "Canonical version (from version.go): $CANONICAL"
echo ""
MISMATCH=0
check_version() {
local file=$1
local version=$2
local description=$3
if [ "$version" != "$CANONICAL" ]; then
echo -e "${RED}$description: $version (expected $CANONICAL)${NC}"
MISMATCH=1
else
echo -e "${GREEN}$description: $version${NC}"
fi
}
# Check all version files
check_version "integrations/beads-mcp/pyproject.toml" \
"$(grep '^version = ' integrations/beads-mcp/pyproject.toml 2>/dev/null | sed 's/.*"\(.*\)".*/\1/')" \
"MCP pyproject.toml"
check_version "integrations/beads-mcp/src/beads_mcp/__init__.py" \
"$(grep '__version__ = ' integrations/beads-mcp/src/beads_mcp/__init__.py 2>/dev/null | sed 's/.*"\(.*\)".*/\1/')" \
"MCP __init__.py"
check_version "claude-plugin/.claude-plugin/plugin.json" \
"$(jq -r '.version' claude-plugin/.claude-plugin/plugin.json 2>/dev/null)" \
"Claude plugin.json"
check_version ".claude-plugin/marketplace.json" \
"$(jq -r '.plugins[0].version' .claude-plugin/marketplace.json 2>/dev/null)" \
"Claude marketplace.json"
check_version "npm-package/package.json" \
"$(jq -r '.version' npm-package/package.json 2>/dev/null)" \
"npm package.json"
check_version "cmd/bd/templates/hooks/pre-commit" \
"$(grep '# bd-hooks-version:' cmd/bd/templates/hooks/pre-commit 2>/dev/null | sed 's/.*: //')" \
"Hook templates"
echo ""
if [ $MISMATCH -eq 1 ]; then
echo -e "${RED}❌ Version mismatch detected!${NC}"
echo ""
echo "Run: scripts/bump-version.sh $CANONICAL"
echo "Or manually update the mismatched files."
exit 1
else
echo -e "${GREEN}✓ All versions match: $CANONICAL${NC}"
fi