global: snapshot

This commit is contained in:
nym21
2026-01-14 22:20:23 +01:00
parent 8a938c00f6
commit 467dfcc4b8
487 changed files with 17409 additions and 14029 deletions

1
scripts/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.tokens

8
scripts/js-docs.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
cd "$ROOT_DIR/modules/brk-client"
npx -y -p typedoc -p typedoc-plugin-markdown typedoc index.js --plugin typedoc-plugin-markdown --out docs --excludeNotDocumented

19
scripts/js-publish.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
VERSION="$1"
if [ -z "$VERSION" ]; then
echo "Usage: $0 <version>"
exit 1
fi
cd "$ROOT_DIR/modules/brk-client"
# Update version in package.json
sed -i '' 's/"version": "[^"]*"/"version": "'"$VERSION"'"/' package.json
echo "Updated package.json to $VERSION"
npm publish --access public

View File

@@ -1,40 +0,0 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
echo "=== Publishing all BRK packages ==="
# Get version from Cargo.toml
VERSION=$(grep 'package.version' "$ROOT_DIR/Cargo.toml" | sed 's/.*= *"//' | sed 's/".*//')
echo "Version: $VERSION"
# Update JS package.json version
sed -i '' 's/"version": "[^"]*"/"version": "'"$VERSION"'"/' "$ROOT_DIR/modules/brk-client/package.json"
# Update Python pyproject.toml version
sed -i '' 's/^version = "[^"]*"/version = "'"$VERSION"'"/' "$ROOT_DIR/packages/brk_client/pyproject.toml"
# 1. Publish Rust crates
echo ""
echo "=== Rust crates ==="
"$SCRIPT_DIR/publish.sh"
# 2. Publish JavaScript package
echo ""
echo "=== JavaScript package ==="
cd "$ROOT_DIR/modules/brk-client"
./scripts/docs.sh
npm publish --access public
# 3. Publish Python package
echo ""
echo "=== Python package ==="
cd "$ROOT_DIR/packages/brk_client"
uvx pydoc-markdown > docs/API.md
uv build
uv publish
echo ""
echo "=== Done! ==="

8
scripts/python-docs.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
cd "$ROOT_DIR/packages/brk_client"
uvx pydoc-markdown > DOCS.md

20
scripts/python-publish.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
VERSION="$1"
if [ -z "$VERSION" ]; then
echo "Usage: $0 <version>"
exit 1
fi
cd "$ROOT_DIR/packages/brk_client"
# Update version in pyproject.toml
sed -i '' 's/^version = "[^"]*"/version = "'"$VERSION"'"/' pyproject.toml
echo "Updated pyproject.toml to $VERSION"
uv build
uv publish

152
scripts/release.sh Executable file
View File

@@ -0,0 +1,152 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
echo "=== BRK Release ==="
echo ""
# Check if version argument provided
if [ -z "$1" ]; then
echo "Usage: $0 <version|bump>"
echo "Examples:"
echo " $0 0.1.0-alpha.3"
echo " $0 patch"
echo " $0 minor"
echo " $0 major"
exit 1
fi
RELEASE_ARG="$1"
echo "Release argument: $RELEASE_ARG"
echo ""
# Load tokens
if [ -f "$SCRIPT_DIR/.tokens" ]; then
source "$SCRIPT_DIR/.tokens"
fi
# ============================================================================
# 0. VERIFY TOKENS
# ============================================================================
echo "=== Verifying tokens ==="
echo ""
echo "--- npm ---"
npm whoami || { echo "npm not authenticated. Run: npm login"; exit 1; }
echo ""
echo "--- PyPI ---"
if [ -z "$UV_PUBLISH_TOKEN" ]; then
echo "UV_PUBLISH_TOKEN not set. Add it to scripts/.tokens"
exit 1
fi
echo "OK"
echo ""
# ============================================================================
# 1. TESTS
# ============================================================================
echo "=== Running tests ==="
echo ""
echo "--- Rust ---"
cd "$ROOT_DIR"
cargo test --workspace
echo ""
echo "--- JavaScript ---"
cd "$ROOT_DIR/modules/brk-client"
npm test
echo ""
echo "--- Python ---"
cd "$ROOT_DIR/packages/brk_client"
uv run pytest tests/ -s
echo ""
# ============================================================================
# 2. BUILD
# ============================================================================
echo "=== Building ==="
echo ""
echo "--- Rust ---"
cd "$ROOT_DIR"
cargo build --workspace --release
echo ""
echo "--- JavaScript ---"
cd "$ROOT_DIR/modules/brk-client"
# JS doesn't need build step, just verify it loads
node -e "import('./index.js')"
echo "OK"
echo ""
echo "--- Python ---"
cd "$ROOT_DIR/packages/brk_client"
uv build
echo ""
# ============================================================================
# 3. GENERATE DOCS
# ============================================================================
echo "=== Generating docs ==="
echo ""
echo "--- JavaScript ---"
"$SCRIPT_DIR/js-docs.sh"
echo ""
echo "--- Python ---"
"$SCRIPT_DIR/python-docs.sh"
echo ""
# ============================================================================
# 4. CARGO RELEASE (Rust crates)
# ============================================================================
echo "=== Rust release ==="
echo ""
cd "$ROOT_DIR"
# Version bump, commit, and tag (but don't publish yet)
cargo release "$RELEASE_ARG" --execute --no-publish --allow-dirty
# Publish crates with retry logic for rate limits
"$SCRIPT_DIR/rust-publish.sh"
# Extract actual version from Cargo.toml after release
VERSION=$(grep '^package.version' "$ROOT_DIR/Cargo.toml" | sed 's/.*= *"//' | sed 's/".*//')
echo ""
echo "Released Rust crates at version: $VERSION"
# ============================================================================
# 5. JAVASCRIPT PACKAGE
# ============================================================================
echo ""
echo "=== JavaScript package ==="
"$SCRIPT_DIR/js-publish.sh" "$VERSION"
echo ""
# ============================================================================
# 6. PYTHON PACKAGE
# ============================================================================
echo ""
echo "=== Python package ==="
"$SCRIPT_DIR/python-publish.sh" "$VERSION"
echo ""
# ============================================================================
# DONE
# ============================================================================
echo "=== Done! ==="
echo "Released v$VERSION"

View File

@@ -3,9 +3,9 @@ set -e
# Order determined by topological sort of dependency graph
CRATES=(
brk_alloc
brk_error
brk_logger
brk_traversable_derive
brk_types
brk_fetcher
brk_rpc
@@ -13,13 +13,14 @@ CRATES=(
brk_reader
brk_iterator
brk_store
brk_traversable_derive
brk_traversable
brk_grouper
brk_bencher
brk_indexer
brk_computer
brk_query
brk_binder
brk_bindgen
brk_mcp
brk_server
brk
@@ -34,7 +35,7 @@ echo "Working from: $(pwd)"
for crate in "${CRATES[@]}"; do
cd "$crate"
cargo publish --color=always 2>&1 | tee /tmp/publish_$$.log
cargo publish --allow-dirty --color=always 2>&1 | tee /tmp/publish_$$.log
if [ ${PIPESTATUS[0]} -ne 0 ]; then
if ! grep -q "already exists on" /tmp/publish_$$.log; then
rm -f /tmp/publish_$$.log