Commit 467581c
authored
Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules between autobahn-python and zlmdb (#1822)
* add feature branch audit file
* Add FlatBuffers/flatc bundling support and smoke tests
Add shared flatc infrastructure from wamp-cicd:
- Bump .cicd submodule to include new scripts/flatc/ files
- Add src/autobahn/_flatc/ module with get_flatc_path() and run_flatc()
- Add scripts/smoke_test.py and scripts/smoke_test_flatc.py
- Add justfile recipes: test-smoke, test-wheel-install, test-sdist-install
This syncs autobahn-python with zlmdb's FlatBuffers bundling approach,
using shared code from wamp-cicd/scripts/flatc/ for DRY.
Note: This work was completed with AI assistance (Claude Code).
* Add complete FlatBuffers vendoring with bundled flatc compiler
- hatch_build.py: Add _build_flatc(), _generate_reflection_bfbs(),
and _update_flatbuffers_git_version() methods for wheel builds
- pyproject.toml: Add flatc console script entry point
- flatbuffers/__init__.py: Add version() function and _git_version import
- flatbuffers/_git_version.py: Git version tracking file
- flatbuffers/reflection.fbs: Copy reflection schema for runtime access
- scripts/update_flatbuffers.sh: External script for updating vendored flatbuffers
- justfile: Simplify update-flatbuffers recipe, add test-bundled-flatc
- .gitignore: Exclude flatc binary and reflection.bfbs build artifacts
The wheel now includes:
- Bundled flatc compiler built from deps/flatbuffers
- reflection.bfbs generated during build
- Git version tracking for vendored runtime
Tested: wheel install, sdist install, smoke tests all pass
Note: This work was completed with AI assistance (Claude Code).
* Fix manylinux ISA compatibility: use manylinux_2_28 instead of manylinux_2_34
The manylinux_2_34 container uses a toolchain that defaults to x86_64_v2
ISA level (SSE4.2, POPCNT), which causes auditwheel to fail with:
ValueError: Cannot repair the wheel, because required library "flatc"
could not be located. x86_64_v2 (ISA level) is not compatible with
manylinux platform tag's (x86_64) requirement.
The manylinux_2_28 container uses baseline x86_64 ISA which is compatible
with all manylinux platform tags.
This matches zlmdb which already uses manylinux_2_28 successfully.
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 can take 20+ minutes due to emulation overhead.
This matches zlmdb which already uses 30 minute timeouts.
Note: This work was completed with AI assistance (Claude Code).
* Increase ARM64 build timeout to 60 minutes
CFFI and flatc compilation under QEMU ARM64 emulation is very slow.
Builds can take 45+ minutes due to emulation overhead.
Note: This work was completed with AI assistance (Claude Code).
* Update release.yml to use manylinux_2_28 artifact names
The wheels-docker workflow was changed to use manylinux_2_28 instead of
manylinux_2_34 for ISA compatibility. The release workflow must use the
matching artifact names.
Note: This work was completed with AI assistance (Claude Code).
* Add workflows README, WAMP .bfbs generation, and version sync check
1. Add .github/workflows/README.md documenting the CI/CD architecture,
artifact flow, and platform coverage (adapted from zlmdb)
2. Add _generate_wamp_bfbs() to hatch_build.py to compile wamp.bfbs
from the WAMP FlatBuffers schemas during wheel build. This binary
schema file enables runtime schema introspection for WAMP messages.
3. Add check_zlmdb_flatbuffers_version_in_sync() to autobahn/__init__.py
This is the reciprocal of zlmdb.check_autobahn_flatbuffers_version_in_sync()
and verifies both libraries use the same vendored FlatBuffers runtime
for reliable data-in-transit/data-at-rest interoperability.
4. Add wamp.bfbs to .gitignore as it's a build artifact
Note: This work was completed with AI assistance (Claude Code).
* Rename install-flatc to install-flatc-system with warning, add version check
1. Rename `install-flatc` to `install-flatc-system` with prominent warning
explaining that users normally DON'T need this since autobahn bundles
flatc in wheels. Adds interactive confirmation prompt.
2. Enhance smoke_test_flatc.py to verify flatc binary version matches
the vendored FlatBuffers runtime version. This ensures consistency
between the compiler and runtime library.
Note: This work was completed with AI assistance (Claude Code).1 parent 60f226c commit 467581c
18 files changed
Lines changed: 1793 additions & 67 deletions
File tree
- .audit
- .github/workflows
- scripts
- src/autobahn
- _flatc
- flatbuffers
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| |||
813 | 813 | | |
814 | 814 | | |
815 | 815 | | |
816 | | - | |
| 816 | + | |
817 | 817 | | |
818 | 818 | | |
819 | | - | |
| 819 | + | |
820 | 820 | | |
821 | 821 | | |
822 | | - | |
| 822 | + | |
823 | 823 | | |
824 | 824 | | |
825 | 825 | | |
826 | | - | |
| 826 | + | |
827 | 827 | | |
828 | 828 | | |
829 | | - | |
| 829 | + | |
830 | 830 | | |
831 | 831 | | |
832 | 832 | | |
| |||
1642 | 1642 | | |
1643 | 1643 | | |
1644 | 1644 | | |
1645 | | - | |
| 1645 | + | |
1646 | 1646 | | |
1647 | 1647 | | |
1648 | | - | |
| 1648 | + | |
1649 | 1649 | | |
1650 | 1650 | | |
1651 | | - | |
| 1651 | + | |
1652 | 1652 | | |
1653 | 1653 | | |
1654 | 1654 | | |
1655 | | - | |
| 1655 | + | |
1656 | 1656 | | |
1657 | 1657 | | |
1658 | | - | |
| 1658 | + | |
1659 | 1659 | | |
1660 | 1660 | | |
1661 | 1661 | | |
| |||
2262 | 2262 | | |
2263 | 2263 | | |
2264 | 2264 | | |
2265 | | - | |
| 2265 | + | |
2266 | 2266 | | |
2267 | 2267 | | |
2268 | | - | |
| 2268 | + | |
2269 | 2269 | | |
2270 | 2270 | | |
2271 | | - | |
| 2271 | + | |
2272 | 2272 | | |
2273 | 2273 | | |
2274 | 2274 | | |
2275 | | - | |
| 2275 | + | |
2276 | 2276 | | |
2277 | 2277 | | |
2278 | | - | |
| 2278 | + | |
2279 | 2279 | | |
2280 | 2280 | | |
2281 | 2281 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
134 | 136 | | |
135 | 137 | | |
136 | 138 | | |
| |||
153 | 155 | | |
154 | 156 | | |
155 | 157 | | |
156 | | - | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
157 | 161 | | |
158 | 162 | | |
159 | 163 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
49 | 53 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
| 54 | + | |
| 55 | + | |
64 | 56 | | |
65 | 57 | | |
66 | 58 | | |
| |||
197 | 189 | | |
198 | 190 | | |
199 | 191 | | |
200 | | - | |
| 192 | + | |
201 | 193 | | |
202 | | - | |
| 194 | + | |
203 | 195 | | |
204 | 196 | | |
205 | 197 | | |
206 | | - | |
207 | | - | |
208 | 198 | | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | 199 | | |
217 | 200 | | |
218 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
48 | 57 | | |
49 | 58 | | |
50 | 59 | | |
| |||
0 commit comments