fix: add missing scripts directory to git
- Remove scripts/ from .gitignore - Add build_and_test.sh for local testing - Add bump_version.sh for version updates (used by CI) - Add release.sh and upload_to_pypi.sh for publishing - Fixes CI error: ./scripts/bump_version.sh: No such file or directory
This commit is contained in:
87
scripts/build_and_test.sh
Executable file
87
scripts/build_and_test.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Manual build and test script for local testing
|
||||
|
||||
PACKAGE=${1:-"all"} # Default to all packages
|
||||
|
||||
echo "Building package: $PACKAGE"
|
||||
|
||||
# Ensure we're in a virtual environment
|
||||
if [ -z "$VIRTUAL_ENV" ]; then
|
||||
echo "Error: Please activate a virtual environment first"
|
||||
echo "Run: source .venv/bin/activate (or .venv/bin/activate.fish for fish shell)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install build tools
|
||||
uv pip install build twine delocate auditwheel scikit-build-core cmake pybind11 numpy
|
||||
|
||||
build_package() {
|
||||
local package_dir=$1
|
||||
local package_name=$(basename $package_dir)
|
||||
|
||||
echo "Building $package_name..."
|
||||
cd $package_dir
|
||||
|
||||
# Clean previous builds
|
||||
rm -rf dist/ build/ _skbuild/
|
||||
|
||||
# Build directly with pip wheel (avoids sdist issues)
|
||||
pip wheel . --no-deps -w dist
|
||||
|
||||
# Repair wheel for binary packages
|
||||
if [[ "$package_name" != "leann-core" ]] && [[ "$package_name" != "leann" ]]; then
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# For macOS
|
||||
for wheel in dist/*.whl; do
|
||||
if [[ -f "$wheel" ]]; then
|
||||
delocate-wheel -w dist_repaired -v "$wheel"
|
||||
fi
|
||||
done
|
||||
if [[ -d dist_repaired ]]; then
|
||||
rm -rf dist/*.whl
|
||||
mv dist_repaired/*.whl dist/
|
||||
rmdir dist_repaired
|
||||
fi
|
||||
else
|
||||
# For Linux
|
||||
for wheel in dist/*.whl; do
|
||||
if [[ -f "$wheel" ]]; then
|
||||
auditwheel repair "$wheel" -w dist_repaired
|
||||
fi
|
||||
done
|
||||
if [[ -d dist_repaired ]]; then
|
||||
rm -rf dist/*.whl
|
||||
mv dist_repaired/*.whl dist/
|
||||
rmdir dist_repaired
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Built wheels in $package_dir/dist/"
|
||||
ls -la dist/
|
||||
cd - > /dev/null
|
||||
}
|
||||
|
||||
# Build specific package or all
|
||||
if [ "$PACKAGE" == "diskann" ]; then
|
||||
build_package "packages/leann-backend-diskann"
|
||||
elif [ "$PACKAGE" == "hnsw" ]; then
|
||||
build_package "packages/leann-backend-hnsw"
|
||||
elif [ "$PACKAGE" == "core" ]; then
|
||||
build_package "packages/leann-core"
|
||||
elif [ "$PACKAGE" == "meta" ]; then
|
||||
build_package "packages/leann"
|
||||
elif [ "$PACKAGE" == "all" ]; then
|
||||
build_package "packages/leann-core"
|
||||
build_package "packages/leann-backend-hnsw"
|
||||
build_package "packages/leann-backend-diskann"
|
||||
build_package "packages/leann"
|
||||
else
|
||||
echo "Unknown package: $PACKAGE"
|
||||
echo "Usage: $0 [diskann|hnsw|core|meta|all]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\nBuild complete! Test with:"
|
||||
echo "uv pip install packages/*/dist/*.whl"
|
||||
Reference in New Issue
Block a user