Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build-python-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/release-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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`)
Expand Down
43 changes: 43 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -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
7 changes: 6 additions & 1 deletion versions.env
Original file line number Diff line number Diff line change
@@ -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
Loading