This directory contains utility scripts for development and CI/CD.
Run all CI checks locally before pushing to catch issues early.
./scripts/ci-local.shRelease-grade validation:
./scripts/ci-local.sh --release- Format check: Verifies code formatting with
cargo fmt - Clippy lint: Runs
cargo clippywith strict warnings (-D warnings) - Native build / tests / docs: Validates the Rust workspace
- WASM build: Builds the workspace for
wasm32-unknown-unknown - npm package validation: Builds and tests
@relateby/pattern,@relateby/graph, and@relateby/gram, then smoke-installs the public npm package surface - Python package validation: Builds, checks, and smoke-installs the combined
relateby-patternwheel - Cargo dry-runs: Included in
--releasemode
The release helpers resolve the current package roots dynamically. The canonical package paths are python/packages/relateby and typescript/packages/{pattern,graph,gram}.
0: All checks passed1: One or more checks failed
- Run this before every commit to avoid CI failures
- Use
--releasebefore cutting a tag - All output is logged to
/tmp/ci-check.logfor debugging
actwith Docker: For full workflow simulation using Docker containersactwithout Docker: Useact -P ubuntu-latest=-self-hostedto run workflows directly on your host (no Docker required)- See .github/workflows/README.md for more details on using
act
🔨 Running local CI checks...
Running Format check... ✓
Running Clippy lint... ✓
Running Native build... ✓
Checking WASM target... ✓
Running WASM build... ✓
Running Tests... ✓
==========================================
All checks passed!
Prepare a stable release from main:
./scripts/new-release.sh 0.2.0
./scripts/new-release.sh --push 0.2.0This script updates the release-managed versions, runs release validation, creates the release commit, and creates annotated tag v0.2.0.