diff --git a/.github/workflows/build-python-wheels.yml b/.github/workflows/build-python-wheels.yml index 1cd8be6..fa33bf4 100644 --- a/.github/workflows/build-python-wheels.yml +++ b/.github/workflows/build-python-wheels.yml @@ -28,6 +28,12 @@ jobs: wheel_platform: macosx_14_0_arm64 rust_target: aarch64-apple-darwin + # macOS Intel + - os: macos-15-intel + platform: darwin-x86_64 + wheel_platform: macosx_15_0_x86_64 + rust_target: x86_64-apple-darwin + # Linux x86_64 glibc - os: ubuntu-22.04 platform: linux-x86_64-gnu diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index 7dd5799..51fe87b 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -31,6 +31,9 @@ jobs: - target: aarch64-apple-darwin os: macos-latest name: darwin-aarch64 + - target: x86_64-apple-darwin + os: macos-15-intel + name: darwin-x86_64 - target: x86_64-pc-windows-msvc os: windows-latest name: windows-x86_64 @@ -118,6 +121,13 @@ jobs: cli_artifact: cli-darwin-aarch64 cli_binary: pg0-darwin-aarch64 + # macOS Intel - reuse darwin-x86_64 CLI + - os: macos-15-intel + platform: darwin-x86_64 + wheel_platform: macosx_15_0_x86_64 + cli_artifact: cli-darwin-x86_64 + cli_binary: pg0-darwin-x86_64 + # Linux x86_64 glibc - reuse linux-x86_64-gnu CLI - os: ubuntu-22.04 platform: linux-x86_64-gnu @@ -259,6 +269,7 @@ jobs: ### CLI Binaries - `pg0-darwin-aarch64` - macOS Apple Silicon + - `pg0-darwin-x86_64` - macOS Intel - `pg0-linux-x86_64-gnu` - Linux x86_64 for Debian/Ubuntu (glibc) - `pg0-linux-x86_64-musl` - Linux x86_64 for Alpine (musl, statically linked) - `pg0-linux-aarch64-gnu` - Linux ARM64 for Debian/Ubuntu (glibc) @@ -273,6 +284,7 @@ jobs: Pre-built wheels available for: - macOS Apple Silicon (`macosx_14_0_arm64`) + - macOS Intel (`macosx_15_0_x86_64`) - Linux x86_64 glibc (`manylinux_2_35_x86_64`) - Linux ARM64 glibc (`manylinux_2_35_aarch64`) - Windows x64 (`win_amd64`) diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..c50afbf --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,43 @@ +# Claude Code Development Guidelines + +## Platform Support Requirements + +### Mandatory Components for All Platforms + +**CRITICAL:** All supported platforms MUST include the following components: + +1. **PostgreSQL** - Core database (required) +2. **pgvector** - Vector similarity search extension (required) +3. **pgbouncer** - Connection pooling (required) + +### Platform Support Policy + +- **Never suggest or ship** platform support without all three components +- If a component is missing for a platform (e.g., pgvector not compiled for that platform): + - DO NOT suggest shipping without it + - DO NOT present it as an optional component + - The platform is NOT supported until all components are available + +### Adding New Platform Support + +When adding support for a new platform (e.g., `x86_64-apple-darwin`): + +1. Ensure PostgreSQL binaries exist for the platform +2. Ensure pgvector compiled binaries exist for the platform +3. Ensure pgbouncer compiled binaries exist for the platform +4. Add the platform to CI/CD workflows +5. Test the complete build with all three components + +### Current Platform Support + +All platforms in `build.rs` and `.github/workflows/release-cli.yml` must have: +- PostgreSQL from `theseus-rs/postgresql-binaries` +- pgvector from `nicoloboschi/pgvector_compiled` +- pgbouncer from `nicoloboschi/pgbouncer_compiled` + +## Build Requirements + +- **All builds must succeed with all three components bundled** +- **Build MUST FAIL if any component is missing** for supported platforms +- No graceful fallbacks - missing components = build failure +- This ensures platforms are only released when fully functional diff --git a/versions.env b/versions.env index 09408a6..f8a1cd7 100644 --- a/versions.env +++ b/versions.env @@ -1,4 +1,9 @@ PG_VERSION=18.1.0 PGVECTOR_VERSION=0.8.1 -PGVECTOR_COMPILED_TAG=v0.18.209 +PGVECTOR_COMPILED_TAG=v0.18.237 PGVECTOR_COMPILED_REPO=nicoloboschi/pgvector_compiled + +# PgBouncer for connection pooling +PGBOUNCER_VERSION=1.23.1 +PGBOUNCER_COMPILED_TAG=v1.23.1 +PGBOUNCER_COMPILED_REPO=nicoloboschi/pgbouncer_compiled