Skip to content

Commit c5a59fc

Browse files
authored
feat: intel mac support (#5)
* feat: add Intel Mac (x86_64) support to CI/CD - Add x86_64-apple-darwin to CLI build matrix using macos-13 runner - Add Intel Mac to Python wheel build matrix - Update release notes to document Intel Mac binaries and wheels - Make pgvector download graceful when binary unavailable (404) Note: Intel Mac builds will initially skip pgvector extension until x86_64-apple-darwin binaries are added to pgvector_compiled repo. PostgreSQL core functionality works without it. Resolves macOS Intel installation issues with hindsight-api. * docs: add platform support requirements - pgvector is mandatory All supported platforms must include PostgreSQL, pgvector, and pgbouncer. Never ship platform support without all three components. * fix: make build fail if pgvector is unavailable Reverted graceful fallback. Build now fails with error if pgvector binary is not available for the target platform. pgvector is a mandatory component - builds must not succeed without it. * docs: clarify that builds must fail on missing components No graceful fallbacks - builds must fail if any required component (PostgreSQL, pgvector, pgbouncer) is missing. * chore: update pgvector to v0.18.237 with Intel Mac support Includes pgvector binary for x86_64-apple-darwin, unblocking Intel Mac builds. * fix: use macos-15-intel runner and remove pgbouncer changes - Change Intel Mac runner from macos-13 to macos-15-intel to match pgvector_compiled workflow - Update wheel platform tag to macosx_15_0_x86_64 - Revert all pgbouncer-related changes from build.rs - Remove pgbouncer build-dependencies from Cargo.toml This branch should only add Intel Mac support, not pgbouncer features. * feat: add Intel Mac to build-python-wheels workflow Add x86_64-apple-darwin to the build matrix in build-python-wheels.yml to ensure Intel Mac wheels are built in this workflow as well.
1 parent 44d03b2 commit c5a59fc

File tree

4 files changed

+67
-1
lines changed

4 files changed

+67
-1
lines changed

.github/workflows/build-python-wheels.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ jobs:
2828
wheel_platform: macosx_14_0_arm64
2929
rust_target: aarch64-apple-darwin
3030

31+
# macOS Intel
32+
- os: macos-15-intel
33+
platform: darwin-x86_64
34+
wheel_platform: macosx_15_0_x86_64
35+
rust_target: x86_64-apple-darwin
36+
3137
# Linux x86_64 glibc
3238
- os: ubuntu-22.04
3339
platform: linux-x86_64-gnu

.github/workflows/release-cli.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ jobs:
3131
- target: aarch64-apple-darwin
3232
os: macos-latest
3333
name: darwin-aarch64
34+
- target: x86_64-apple-darwin
35+
os: macos-15-intel
36+
name: darwin-x86_64
3437
- target: x86_64-pc-windows-msvc
3538
os: windows-latest
3639
name: windows-x86_64
@@ -118,6 +121,13 @@ jobs:
118121
cli_artifact: cli-darwin-aarch64
119122
cli_binary: pg0-darwin-aarch64
120123

124+
# macOS Intel - reuse darwin-x86_64 CLI
125+
- os: macos-15-intel
126+
platform: darwin-x86_64
127+
wheel_platform: macosx_15_0_x86_64
128+
cli_artifact: cli-darwin-x86_64
129+
cli_binary: pg0-darwin-x86_64
130+
121131
# Linux x86_64 glibc - reuse linux-x86_64-gnu CLI
122132
- os: ubuntu-22.04
123133
platform: linux-x86_64-gnu
@@ -259,6 +269,7 @@ jobs:
259269
260270
### CLI Binaries
261271
- `pg0-darwin-aarch64` - macOS Apple Silicon
272+
- `pg0-darwin-x86_64` - macOS Intel
262273
- `pg0-linux-x86_64-gnu` - Linux x86_64 for Debian/Ubuntu (glibc)
263274
- `pg0-linux-x86_64-musl` - Linux x86_64 for Alpine (musl, statically linked)
264275
- `pg0-linux-aarch64-gnu` - Linux ARM64 for Debian/Ubuntu (glibc)
@@ -273,6 +284,7 @@ jobs:
273284
274285
Pre-built wheels available for:
275286
- macOS Apple Silicon (`macosx_14_0_arm64`)
287+
- macOS Intel (`macosx_15_0_x86_64`)
276288
- Linux x86_64 glibc (`manylinux_2_35_x86_64`)
277289
- Linux ARM64 glibc (`manylinux_2_35_aarch64`)
278290
- Windows x64 (`win_amd64`)

CLAUDE.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Claude Code Development Guidelines
2+
3+
## Platform Support Requirements
4+
5+
### Mandatory Components for All Platforms
6+
7+
**CRITICAL:** All supported platforms MUST include the following components:
8+
9+
1. **PostgreSQL** - Core database (required)
10+
2. **pgvector** - Vector similarity search extension (required)
11+
3. **pgbouncer** - Connection pooling (required)
12+
13+
### Platform Support Policy
14+
15+
- **Never suggest or ship** platform support without all three components
16+
- If a component is missing for a platform (e.g., pgvector not compiled for that platform):
17+
- DO NOT suggest shipping without it
18+
- DO NOT present it as an optional component
19+
- The platform is NOT supported until all components are available
20+
21+
### Adding New Platform Support
22+
23+
When adding support for a new platform (e.g., `x86_64-apple-darwin`):
24+
25+
1. Ensure PostgreSQL binaries exist for the platform
26+
2. Ensure pgvector compiled binaries exist for the platform
27+
3. Ensure pgbouncer compiled binaries exist for the platform
28+
4. Add the platform to CI/CD workflows
29+
5. Test the complete build with all three components
30+
31+
### Current Platform Support
32+
33+
All platforms in `build.rs` and `.github/workflows/release-cli.yml` must have:
34+
- PostgreSQL from `theseus-rs/postgresql-binaries`
35+
- pgvector from `nicoloboschi/pgvector_compiled`
36+
- pgbouncer from `nicoloboschi/pgbouncer_compiled`
37+
38+
## Build Requirements
39+
40+
- **All builds must succeed with all three components bundled**
41+
- **Build MUST FAIL if any component is missing** for supported platforms
42+
- No graceful fallbacks - missing components = build failure
43+
- This ensures platforms are only released when fully functional

versions.env

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
PG_VERSION=18.1.0
22
PGVECTOR_VERSION=0.8.1
3-
PGVECTOR_COMPILED_TAG=v0.18.209
3+
PGVECTOR_COMPILED_TAG=v0.18.237
44
PGVECTOR_COMPILED_REPO=nicoloboschi/pgvector_compiled
5+
6+
# PgBouncer for connection pooling
7+
PGBOUNCER_VERSION=1.23.1
8+
PGBOUNCER_COMPILED_TAG=v1.23.1
9+
PGBOUNCER_COMPILED_REPO=nicoloboschi/pgbouncer_compiled

0 commit comments

Comments
 (0)