Skip to content

Commit dfaac7b

Browse files
authored
Vendored flatbuffers improvements new (#92)
* create new feature branch (this time from master tip! correcting wrongly branched vendored-flatbuffers-improvements) * Add flatbuffers re-export and setup_flatbuffers_import() helper - Re-export vendored flatbuffers as `zlmdb.flatbuffers` - Add setup_flatbuffers_import() function for downstream packages - Allows cfxdb and other packages to explicitly set up flatbuffers imports - Add both to __all__ for public API This enables downstream packages (e.g. cfxdb) with generated flatbuffers code to reliably use zlmdb's vendored flatbuffers runtime. Note: This work was completed with AI assistance (Claude Code). * Bump to v25.12.2, require Python 3.11+, add version sync check - Bump version to 25.12.2 - Require Python >= 3.11 (drop 3.9, 3.10 support) - Add "License :: OSI Approved :: MIT License" classifier - Update ruff target-version to py311 - Add check_autobahn_flatbuffers_version_in_sync() helper function to verify zlmdb and autobahn use the same flatbuffers version (important for data-at-rest/data-in-transit interoperability) Note: This work was completed with AI assistance (Claude Code). * Add flatbuffers.version() returning exact git describe version - Add _git_version.py with __git_version__ (e.g. "v25.9.23-2-g95053e6a") - Add version() function to _flatbuffers_vendor/__init__.py - Update hatch_build.py to capture git describe from deps/flatbuffers at build time and write to _git_version.py - Fix _version.py to have correct version "25.9.23" (not "latest") - Update check_autobahn_flatbuffers_version_in_sync() to use version() This enables: import zlmdb print(zlmdb.flatbuffers.version()) # "v25.9.23-2-g95053e6a" The git version is captured at build time from the deps/flatbuffers submodule, providing the definitive version for data-at-rest/data-in-transit interoperability checks with autobahn. Note: This work was completed with AI assistance (Claude Code). * avoid InvalidConfigError - license classifiers have been superseded by license expressions (see https://peps.python.org/pep-0639/) * expand test-import justfile recipe to test zlmdb.flatbuffers.version() * track FlatBuffers 25.9.23 release (not development) * fix: F541 [*] f-string without any placeholders * track FlatBuffers 25.9.23 release (not development) * parse flatbuffers version into version components tuple * expand just test-import recipe * apply just autoformat ruff formatting * Rename _flatbuffers_vendor to flatbuffers (match autobahn-python) - Rename src/zlmdb/_flatbuffers_vendor/ to src/zlmdb/flatbuffers/ - Update zlmdb/__init__.py imports from _flatbuffers_vendor to flatbuffers - Fix NameError: _lmdb_vendor not defined (use explicit import) - Update justfile update-flatbuffers recipe for new path - Replace old hand-patched reflection code with fresh upstream copy This aligns zlmdb's flatbuffers vendoring with autobahn-python's approach. Note: This work was completed with AI assistance (Claude Code). * build: remove legacy readthedocs.yml to activate .readthedocs.yaml * Bundle flatc compiler in zlmdb wheel (like grpcio-tools) - Add src/zlmdb/_flatc/ module with Python shim for bundled flatc - Build flatc from deps/flatbuffers during wheel build (hatch_build.py) - Generate reflection.bfbs during build for runtime schema introspection - Add console script: `flatc` command available after `pip install zlmdb` - Copy reflection.fbs from upstream for source schema access - Update pyproject.toml with flatc console script and sdist includes - Add .gitignore entries for build artifacts (flatc binary, reflection.bfbs) Users can now: - Run `flatc --version` after installing zlmdb - Use `from zlmdb._flatc import get_flatc_path, run_flatc` programmatically - Access reflection.fbs and reflection.bfbs at runtime for schema introspection Note: This work was completed with AI assistance (Claude Code). * Add test-bundled-flatc justfile recipe - Tests flatc console script via `flatc --version` - Tests Python API: get_flatc_path() and run_flatc() - Verifies reflection.fbs is accessible at runtime - Verifies reflection.bfbs is accessible at runtime Note: This work was completed with AI assistance (Claude Code). * Fix sdist to include all source files The hatchling `include` directive overrides default git-tracked file inclusion, causing the sdist to only contain flatbuffers sources while excluding: - src/zlmdb/ (Python sources) - lmdb-upstream/ (LMDB C sources) - lmdb-patches/ (patches) - build scripts Remove the `include` directive and rely on exclude-only approach. The exclude list removes build artifacts and large flatbuffers subdirectories (tests, samples, docs, language bindings) while keeping what's needed for building flatc from source. Note: This work was completed with AI assistance (Claude Code). * Use baseline x86-64 flags for flatc manylinux compatibility On Linux x86_64, pass -march=x86-64 -mtune=generic to cmake when building flatc. Without this, the compiler may use x86_64_v2+ instructions (SSE4.2, etc.) which auditwheel rejects as incompatible with manylinux. Fixes: auditwheel error "ELF file requires 'x86_64_v2' instruction set, not in 'x86_64'" during CI wheel builds. Note: This work was completed with AI assistance (Claude Code). * improved logging & march support for baseline compile flags for manylinux compatibility * Fix flatc baseline x86-64 flags via environment variables The previous approach using cmake -DCMAKE_C_FLAGS was not being applied reliably in CI. Changes: 1. Clean build directory before configuring to remove any cached CMakeCache.txt that might override our flags 2. Use CFLAGS/CXXFLAGS environment variables instead of cmake -D arguments - these take precedence and are more reliable 3. Pass the environment to both configure and build subprocess calls 4. Log the actual CFLAGS/CXXFLAGS being used for debugging This ensures flatc is built with baseline x86-64 instructions (-march=x86-64 -mtune=generic) so auditwheel doesn't reject it for depending on x86_64_v2 ISA extensions. Note: This work was completed with AI assistance (Claude Code). * Use CMAKE_*_FLAGS_INIT for baseline x86-64 flags The _INIT variants are applied BEFORE the project sets its own flags, and FlatBuffers appends rather than replaces. This ensures our baseline ISA flags (-march=x86-64 -mtune=generic) take effect. Previous approaches failed because: - CMAKE_*_FLAGS: FlatBuffers overwrites these - CFLAGS/CXXFLAGS env vars: Not always honored by cmake Also adds ISA verification logging after building flatc to confirm the correct instruction set was used (helps debug CI issues). Note: This work was completed with AI assistance (Claude Code). * Add static linking for libstdc++/libgcc in flatc build The x86_64_v2 instructions were coming from dynamically linked libstdc++/libgcc, not from our compiled code. Even with baseline ISA flags, linking against system C++ runtime that contains v2 instructions causes auditwheel to reject the wheel. Solution: Use -static-libgcc -static-libstdc++ via CMAKE_EXE_LINKER_FLAGS_INIT to statically link these libraries, eliminating all x86_64_v2 leakage from the system toolchain. Note: This work was completed with AI assistance (Claude Code). * Add FLATBUFFERS_CXX_FLAGS= and detailed manylinux comments Complete the cmake flags for manylinux-compatible flatc builds: - CMAKE_C_FLAGS_INIT: baseline x86-64 ISA (no SSE4.2, AVX, etc.) - CMAKE_CXX_FLAGS_INIT: baseline x86-64 ISA for C++ code - FLATBUFFERS_CXX_FLAGS=: clear FlatBuffers' own flags - CMAKE_EXE_LINKER_FLAGS: static link libstdc++/libgcc Result: - Portable x86-64 baseline ISA only - No accidental v2/v3 instructions - Static C++ runtime (no x86_64_v2 from system libstdc++) - Static GCC runtime - Dynamic glibc (required for manylinux) - auditwheel-safe manylinux wheel Note: This work was completed with AI assistance (Claude Code). * Add env vars alongside cmake args for manylinux ISA compliance Use belt-and-suspenders approach for baseline x86-64/arm64 flags: - Environment variables (CFLAGS, CXXFLAGS, LDFLAGS) via cmake_env - CMAKE_*_FLAGS_INIT (applied before project flags) - CMAKE_*_FLAGS (fallback) - FLATBUFFERS_CXX_FLAGS= (clear project additions) - CMAKE_EXE_LINKER_FLAGS_INIT and non-INIT for static linking Also add cmake command logging for debugging CI failures. Note: This work was completed with AI assistance (Claude Code). * Use manylinux_2_28 containers for Linux wheel builds Minimal change to fix auditwheel x86_64_v2 ISA compliance: wheels-docker.yml: - Switch from manylinux_2_34 to manylinux_2_28 (matches wheels-arm64.yml) - Container toolchain handles correct glibc/ISA requirements wheels.yml: - Remove Linux x86_64 wheel building (handled by wheels-docker.yml) - Keep Linux job for source distribution only - Keep macOS and Windows native wheel builds hatch_build.py: - Remove static linking hacks (no longer needed with container builds) - Add explanatory comment about manylinux container approach This is a less invasive fix than adding a container job to wheels.yml. Note: This work was completed with AI assistance (Claude Code). * Fix release.yml for manylinux_2_28 and add workflows README release.yml: - Update artifact name from manylinux_2_34 to manylinux_2_28 - Remove artifact_linux_wheels (Linux wheels now from wheels-docker.yml) - Add comments explaining artifact sources .github/workflows/README.md: - Document all workflows and their purposes - Map artifact producers to consumers - Include ASCII diagram of artifact flow - Detail platform coverage and Python versions - Explain why manylinux containers are used Note: This work was completed with AI assistance (Claude Code). * Increase ARM64 build timeout to 30 minutes CFFI compilation under QEMU ARM64 emulation is very slow. CPython builds were timing out at 15 minutes during the LMDB CFFI extension compilation step. Increased timeout from 15 to 30 minutes to accommodate the emulation overhead. Note: This work was completed with AI assistance (Claude Code).
1 parent fd287f4 commit dfaac7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2648
-3293
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- [ ] I did **not** use any AI-assistance tools to help create this pull request.
2+
- [x] I **did** use AI-assistance tools to *help* create this pull request.
3+
- [x] I have read, understood and followed the project's AI_POLICY.md when creating code, documentation etc. for this pull request.
4+
5+
Submitted by: @oberstet
6+
Date: 2025-12-11
7+
Related issue(s): #90
8+
Branch: oberstet:vendored-flatbuffers-improvements

.github/workflows/README.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# GitHub Actions Workflows
2+
3+
This document describes the CI/CD workflow architecture for zlmdb,
4+
including artifact production and consumption flow.
5+
6+
## Workflow Overview
7+
8+
| Workflow | Purpose | Trigger |
9+
|----------|---------|---------|
10+
| `main.yml` | Code quality, tests, documentation | Push, PR |
11+
| `wheels.yml` | macOS/Windows wheels + source dist | Push, PR, tags |
12+
| `wheels-docker.yml` | Linux x86_64 manylinux wheels | Push, PR, tags |
13+
| `wheels-arm64.yml` | Linux ARM64 manylinux wheels | Push, PR, tags |
14+
| `release.yml` | Collect artifacts, publish releases | workflow_run |
15+
16+
## Artifact Flow Diagram
17+
18+
```
19+
┌─────────────────────────────────────────────────────────────────────────────┐
20+
│ ARTIFACT PRODUCERS │
21+
├─────────────────────────────────────────────────────────────────────────────┤
22+
│ │
23+
│ main.yml │
24+
│ └── documentation (docs HTML) │
25+
│ │
26+
│ wheels.yml (native GitHub runners) │
27+
│ ├── wheels-macos-arm64 (macOS ARM64 wheels) │
28+
│ ├── wheels-windows-x86_64 (Windows x64 wheels) │
29+
│ └── source-distribution (*.tar.gz sdist) │
30+
│ │
31+
│ wheels-docker.yml (manylinux_2_28_x86_64 container) │
32+
│ └── artifacts-docker-manylinux_2_28_x86_64 (Linux x64 wheels) │
33+
│ │
34+
│ wheels-arm64.yml (manylinux_2_28_aarch64 container) │
35+
│ ├── artifacts-arm64-cpython-3.11-manylinux_2_28_aarch64 │
36+
│ ├── artifacts-arm64-cpython-3.12-manylinux_2_28_aarch64 │
37+
│ ├── artifacts-arm64-cpython-3.13-manylinux_2_28_aarch64 │
38+
│ ├── artifacts-arm64-cpython-3.14-manylinux_2_28_aarch64 │
39+
│ └── artifacts-arm64-pypy-3.11-manylinux_2_36_aarch64 │
40+
│ │
41+
└─────────────────────────────────────────────────────────────────────────────┘
42+
43+
44+
┌─────────────────────────────────────────────────────────────────────────────┐
45+
│ ARTIFACT CONSUMER │
46+
├─────────────────────────────────────────────────────────────────────────────┤
47+
│ │
48+
│ release.yml │
49+
│ ├── Downloads all artifacts from above workflows │
50+
│ ├── Creates GitHub Release (nightly or stable) │
51+
│ └── Publishes to PyPI (on tags only) │
52+
│ │
53+
└─────────────────────────────────────────────────────────────────────────────┘
54+
```
55+
56+
## Artifact Details
57+
58+
### 1. Artifact Producers (Upload)
59+
60+
| Workflow | Artifact Name | Contents | Platform |
61+
|----------|--------------|----------|----------|
62+
| **main.yml** | `documentation` | `docs/_build/html/` | N/A |
63+
| **wheels.yml** | `wheels-macos-arm64` | macOS ARM64 wheels | macOS arm64 |
64+
| **wheels.yml** | `wheels-windows-x86_64` | Windows x64 wheels | Windows x86_64 |
65+
| **wheels.yml** | `source-distribution` | `*.tar.gz` sdist | Linux (build host) |
66+
| **wheels-docker.yml** | `artifacts-docker-manylinux_2_28_x86_64` | manylinux x64 wheels | Linux x86_64 |
67+
| **wheels-arm64.yml** | `artifacts-arm64-cpython-3.11-manylinux_2_28_aarch64` | CPython 3.11 wheel | Linux aarch64 |
68+
| **wheels-arm64.yml** | `artifacts-arm64-cpython-3.12-manylinux_2_28_aarch64` | CPython 3.12 wheel | Linux aarch64 |
69+
| **wheels-arm64.yml** | `artifacts-arm64-cpython-3.13-manylinux_2_28_aarch64` | CPython 3.13 wheel | Linux aarch64 |
70+
| **wheels-arm64.yml** | `artifacts-arm64-cpython-3.14-manylinux_2_28_aarch64` | CPython 3.14 wheel | Linux aarch64 |
71+
| **wheels-arm64.yml** | `artifacts-arm64-pypy-3.11-manylinux_2_36_aarch64` | PyPy 3.11 wheel | Linux aarch64 |
72+
73+
### 2. Artifact Consumer (release.yml)
74+
75+
The `release.yml` workflow downloads artifacts using the `wamp-cicd` verified
76+
download action. It maps artifact names via the `check-workflows` job outputs:
77+
78+
| Output Variable | Source Workflow | Artifact Pattern |
79+
|-----------------|-----------------|------------------|
80+
| `artifact_macos_wheels` | wheels.yml | `wheels-macos-arm64` |
81+
| `artifact_windows_wheels` | wheels.yml | `wheels-windows-x86_64` |
82+
| `artifact_source_dist` | wheels.yml | `source-distribution` |
83+
| `artifact_manylinux_x86_64` | wheels-docker.yml | `artifacts-docker-manylinux_2_28_x86_64` |
84+
| `artifact_arm64_cp311` | wheels-arm64.yml | `artifacts-arm64-cpython-3.11-manylinux_2_28_aarch64` |
85+
| `artifact_arm64_cp312` | wheels-arm64.yml | `artifacts-arm64-cpython-3.12-manylinux_2_28_aarch64` |
86+
| `artifact_arm64_cp313` | wheels-arm64.yml | `artifacts-arm64-cpython-3.13-manylinux_2_28_aarch64` |
87+
| `artifact_arm64_cp314` | wheels-arm64.yml | `artifacts-arm64-cpython-3.14-manylinux_2_28_aarch64` |
88+
| `artifact_arm64_pypy311` | wheels-arm64.yml | `artifacts-arm64-pypy-3.11-manylinux_2_36_aarch64` |
89+
90+
## Platform Coverage
91+
92+
### Wheels Built
93+
94+
| Platform | Architecture | Python Versions | Manylinux Tag | Workflow |
95+
|----------|--------------|-----------------|---------------|----------|
96+
| Linux | x86_64 | 3.11, 3.12, 3.13, 3.14, PyPy 3.11 | manylinux_2_28 | wheels-docker.yml |
97+
| Linux | aarch64 | 3.11, 3.12, 3.13, 3.14 | manylinux_2_28 | wheels-arm64.yml |
98+
| Linux | aarch64 | PyPy 3.11 | manylinux_2_36 | wheels-arm64.yml |
99+
| macOS | arm64 | 3.11, 3.12, 3.13, 3.14, PyPy 3.11 | N/A | wheels.yml |
100+
| Windows | x86_64 | 3.11, 3.12, 3.13, 3.14 | N/A | wheels.yml |
101+
102+
### Why Manylinux Containers?
103+
104+
Linux wheels are built inside official PyPA manylinux containers to ensure:
105+
106+
1. **ABI Compatibility** - Correct glibc symbol versions for target platforms
107+
2. **ISA Compliance** - Baseline instruction set (no x86_64_v2+ on x86_64)
108+
3. **auditwheel Success** - Clean wheel repair without ISA warnings
109+
4. **Wide Compatibility** - Wheels work on older Linux distributions
110+
111+
The `manylinux_2_28` tag targets glibc 2.28+ (RHEL 8, Ubuntu 20.04+, Debian 11+).
112+
113+
## Release Process
114+
115+
1. **On every push/PR**: All wheel workflows run and upload artifacts
116+
2. **On workflow completion**: `release.yml` triggers via `workflow_run`
117+
3. **Nightly releases**: Created automatically from master branch
118+
4. **Stable releases**: Created when a `v*` tag is pushed, also publishes to PyPI
119+
120+
## Maintenance Notes
121+
122+
When updating Python versions or manylinux tags:
123+
124+
1. Update the matrix in the relevant workflow file
125+
2. Update artifact name patterns in `release.yml` `check-workflows` job
126+
3. Update this README to reflect changes
127+
4. Test with a PR before merging
128+
129+
---
130+
131+
*This documentation is maintained alongside the workflow files.*

.github/workflows/release.yml

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ jobs:
2323
is_tag: ${{ steps.check.outputs.is_tag }}
2424
tag_name: ${{ steps.check.outputs.tag_name }}
2525
# Artifact names with hash suffixes
26+
# NOTE: Linux x86_64 wheels come from wheels-docker.yml (artifact_manylinux_x86_64)
27+
# wheels.yml only produces macOS wheels, Windows wheels, and source distribution
2628
artifact_macos_wheels: ${{ steps.check.outputs.artifact_macos_wheels }}
2729
artifact_windows_wheels: ${{ steps.check.outputs.artifact_windows_wheels }}
28-
artifact_linux_wheels: ${{ steps.check.outputs.artifact_linux_wheels }}
2930
artifact_source_dist: ${{ steps.check.outputs.artifact_source_dist }}
3031
artifact_manylinux_x86_64: ${{ steps.check.outputs.artifact_manylinux_x86_64 }}
3132
artifact_arm64_cp311: ${{ steps.check.outputs.artifact_arm64_cp311 }}
@@ -131,15 +132,16 @@ jobs:
131132
}
132133
133134
// Query artifacts from wheels workflow
135+
// NOTE: Linux x86_64 wheels are built in wheels-docker.yml (manylinux container)
136+
// wheels.yml only produces: macOS wheels, Windows wheels, and source distribution
134137
const wheelsRunId = latestRuns['wheels']?.id;
135138
core.setOutput('artifact_macos_wheels', await findArtifact(wheelsRunId, 'wheels-macos-arm64'));
136139
core.setOutput('artifact_windows_wheels', await findArtifact(wheelsRunId, 'wheels-windows-x86_64'));
137-
core.setOutput('artifact_linux_wheels', await findArtifact(wheelsRunId, 'wheels-linux-x86_64'));
138140
core.setOutput('artifact_source_dist', await findArtifact(wheelsRunId, 'source-distribution'));
139141
140-
// Query artifacts from wheels-docker workflow
142+
// Query artifacts from wheels-docker workflow (Linux x86_64 manylinux wheels)
141143
const wheelsDockerRunId = latestRuns['wheels-docker']?.id;
142-
core.setOutput('artifact_manylinux_x86_64', await findArtifact(wheelsDockerRunId, 'artifacts-docker-manylinux_2_34_x86_64'));
144+
core.setOutput('artifact_manylinux_x86_64', await findArtifact(wheelsDockerRunId, 'artifacts-docker-manylinux_2_28_x86_64'));
143145
144146
// Query artifacts from wheels-arm64 workflow
145147
const wheelsArm64RunId = latestRuns['wheels-arm64']?.id;
@@ -183,15 +185,8 @@ jobs:
183185
with:
184186
submodules: recursive
185187

186-
- name: Download and verify Linux wheels (native builds)
187-
uses: wamp-proto/wamp-cicd/actions/download-artifact-verified@main
188-
with:
189-
name: ${{ needs.check-workflows.outputs.artifact_linux_wheels }}
190-
path: ${{ github.workspace }}/dist/
191-
run-id: ${{ needs.check-workflows.outputs.wheels_run_id }}
192-
github-token: ${{ secrets.GITHUB_TOKEN }}
193-
max-attempts: 5
194-
retry-delay: 30
188+
# NOTE: Linux x86_64 wheels come from wheels-docker.yml (manylinux container)
189+
# See "Download manylinux x86_64 wheels" step below
195190

196191
- name: Download and verify macOS wheels
197192
uses: wamp-proto/wamp-cicd/actions/download-artifact-verified@main
@@ -523,15 +518,8 @@ jobs:
523518
with:
524519
submodules: recursive
525520

526-
- name: Download and verify Linux wheels (native builds)
527-
uses: wamp-proto/wamp-cicd/actions/download-artifact-verified@main
528-
with:
529-
name: ${{ needs.check-workflows.outputs.artifact_linux_wheels }}
530-
path: ${{ github.workspace }}/dist/
531-
run-id: ${{ needs.check-workflows.outputs.wheels_run_id }}
532-
github-token: ${{ secrets.GITHUB_TOKEN }}
533-
max-attempts: 5
534-
retry-delay: 30
521+
# NOTE: Linux x86_64 wheels come from wheels-docker.yml (manylinux container)
522+
# See "Download manylinux x86_64 wheels" step below
535523

536524
- name: Download and verify macOS wheels
537525
uses: wamp-proto/wamp-cicd/actions/download-artifact-verified@main

.github/workflows/wheels-arm64.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ jobs:
122122
- name: Build ARM64 wheels with LMDB extension (with retry for QEMU flakiness)
123123
uses: nick-fields/retry@v3
124124
with:
125-
timeout_minutes: 15
125+
# CFFI compilation under QEMU ARM64 emulation is very slow
126+
# CPython builds can take 20+ minutes due to emulation overhead
127+
timeout_minutes: 30
126128
max_attempts: 3
127129
retry_on: error
128130
warning_on_retry: true

.github/workflows/wheels-docker.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@ jobs:
3939
fail-fast: false
4040
matrix:
4141
target:
42-
# manylinux_2_34 (glibc 2.34+) - PEP 600 compliant for modern Linux
42+
# manylinux_2_28 (glibc 2.28+) - PEP 600 compliant, wide compatibility
43+
# Matches wheels-arm64.yml which also uses manylinux_2_28
4344
# https://github.com/pypa/manylinux
44-
- name: "manylinux_2_34_x86_64"
45-
base_image: "quay.io/pypa/manylinux_2_34_x86_64"
45+
- name: "manylinux_2_28_x86_64"
46+
base_image: "quay.io/pypa/manylinux_2_28_x86_64"
4647

4748
steps:
4849
- name: Checkout code
@@ -151,9 +152,9 @@ jobs:
151152
command -v auditwheel >/dev/null || { echo "auditwheel missing, aborting"; exit 1; }
152153
mkdir -p wheelhouse
153154
154-
# Convert linux_x86_64 wheels to manylinux_2_34_x86_64 using auditwheel
155+
# Convert linux_x86_64 wheels to manylinux_2_28_x86_64 using auditwheel
155156
echo ""
156-
echo "==> Converting wheels to manylinux_2_34_x86_64 format..."
157+
echo "==> Converting wheels to manylinux_2_28_x86_64 format..."
157158
for wheel in dist/*.whl; do
158159
if [[ "$wheel" == *"linux_x86_64"* ]]; then
159160
echo "Converting: $(basename $wheel)"
@@ -278,7 +279,7 @@ jobs:
278279
echo "Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")" >> $BUILD_INFO
279280
echo "Base Image: ${{ matrix.target.base_image }}" >> $BUILD_INFO
280281
echo "Platform: linux/x86_64" >> $BUILD_INFO
281-
echo "Manylinux Tag: manylinux_2_34_x86_64" >> $BUILD_INFO
282+
echo "Manylinux Tag: manylinux_2_28_x86_64" >> $BUILD_INFO
282283
echo "Build Method: GitHub Actions + Docker container" >> $BUILD_INFO
283284
echo "LMDB: CFFI binary wheels with vendored LMDB sources" >> $BUILD_INFO
284285
echo "" >> $BUILD_INFO

0 commit comments

Comments
 (0)