Commit dbf5d6f
authored
Rel v25.9.1 (crossbario#1675)
* remove manual AI policy & hooks (before moving to wamp-proto/wamp-ai.git submodule)
* moved to using wamp-proto/wamp-ai.git submodule; add audit file
* bump txaio
* enhance CI/CD workflows with txaio lessons learned:
- Fix GitHub Actions syntax: use proper context variables instead of bash syntax
- Improve conditional logic: use github.ref_type == 'tag' for more reliable tag detection
- Add release overwrite capability: delete existing releases before creating new ones
- Add RTD publishing: trigger Read the Docs builds on tag pushes
- Update development dependency: txaio>=25.9.2 for consistency
Minor workflow improvements based on patterns established in txaio modernization.
* cleanup justfile: remove setup-githooks recipe:
- The setup-githooks functionality is now provided by the .ai submodule which offers more comprehensive AI policy management and git hooks.
* improve github runners matrix for binary wheels building
* must remove expression: matrix.skip != 'true' at matrix level
* fix GitHub Actions runner availability paradox:
- Add comprehensive documentation about GitHub runner availability reality
- Apply 2-minute timeouts to unreliable runners (ubuntu-arm64, macos-12)
- Use continue-on-error to prevent infinite waits from blocking workflows
- Categorize runners: fast (ubuntu x86_64, macos ARM64, windows) vs slow
- Explain why GitHub prioritizes current hardware over legacy platforms
- This prevents workflows from waiting hours for ARM64 Linux or Intel macOS runners while still building these platforms when possible.
* skip arm64 (on linux) and amd64 (on macos) altogether - timeouts don't work for runner queues
* Modernize CI/CD: implement selective PyPI publishing and manylinux wheels:
- Configure pure Python wheels for Linux (maximum compatibility)
- Implement selective PyPI publishing (exclude Linux binary wheels)
- Switch to manylinux_2_34 for proper Linux binary wheel distribution
- Add comprehensive package release documentation
* Changes to wheels.yml:
- Linux job now builds pure Python wheels (AUTOBAHN_USE_NVX=0)
- macOS/Windows jobs build binary wheels with NVX acceleration
- Selective PyPI publishing: only macOS, Windows wheels + pure Python wheel
- Linux binary wheels excluded from PyPI but available from GitHub Releases
* Changes to wheels-docker.yml:
- Switch to quay.io/pypa/manylinux_2_34_x86_64 (PEP 600 compliant)
- Deactivate debian/rocky/ubuntu images (focus on standard manylinux)
- Build binary wheels WITH NVX acceleration for manylinux
- Expected output: autobahn-25.9.1-cp*-manylinux_2_34_x86_64.whl
* Package Release Strategy:
- **PyPI**: macOS/Windows binary + pure Python wheel + source dist
- **GitHub Releases**: All platform binary wheels + pure Python + source
- **Linux binary wheels**: Available from wheels-docker.yml → GitHub Releases
- **Pure Python fallback**: Maximum compatibility across all platforms
* Fix CI/CD workflow issues: justfile environment variables and manylinux setup
* 1. justfile AUTOBAHN_USE_NVX Override
- justfile was hardcoding AUTOBAHN_USE_NVX=1, ignoring environment variables
- Changed to: AUTOBAHN_USE_NVX=${AUTOBAHN_USE_NVX:-1} (respects existing setting)
- Now workflows can control NVX via environment variables
* 2. manylinux Container Environment
- Fixed Python path issues in manylinux containers (/opt/python/*/bin)
- Added proper PATH setup for all Python versions
- Ensured python3 symlink availability in /usr/local/bin
- Fixed tool installation and PATH persistence (uv, rust)
- Added comprehensive environment verification
* 3. Workflow Artifact Naming
- Renamed "pure-python-wheel" to "linux-wheels-no-nvx" (more accurate)
- Updated all download/upload steps to use consistent naming
- Fixed artifact listing and verification steps
* Key Changes
- **justfile**: Environment-aware NVX setting
- **wheels-docker.yml**: Proper manylinux container setup with Python path fixes
- **wheels.yml**: Consistent artifact naming and verification
- Build pure Python wheels on Linux (AUTOBAHN_USE_NVX=0)
- Build binary wheels with NVX on macOS/Windows (AUTOBAHN_USE_NVX=1)
- Build manylinux binary wheels with NVX in Docker containers
- Handle manylinux Python environment correctly
* Fix Rust PATH issues in manylinux workflow:
- The Rust installer requires sourcing ~/.cargo/env to set up the environment properly.
- Added source commands to ensure rustc and cargo are available in subsequent steps.
- Source ~/.cargo/env after Rust installation
- Add source command to verification and build steps
- Ensure PATH is properly set for all Rust tools
- This should fix the 'rustc: command not found' error in the manylinux workflow.
* Rename wheels-docker workflow to match filename
* Changed workflow name from 'Build Wheels (Docker Multi-Arch)' to 'wheels-docker' for consistency with the workflow filename. This makes it easier to identify workflows in the GitHub Actions UI.
* Add auditwheel support for proper manylinux wheel generation
* pyproject.toml:
- Added auditwheel>=5.0.0 to dev dependencies (Linux only)
- Platform-specific dependency ensures it only installs on Linux
* wheels-docker.yml:
- Added auditwheel repair step to convert linux_x86_64 → manylinux_2_34_x86_64
- Added auditwheel version verification in environment check
- Process converts all linux_x86_64 wheels to proper manylinux format
- Final wheels will have correct manylinux_2_34_x86_64 tags
* Expected Output: The workflow should now produce properly tagged manylinux wheels:
- autobahn-25.9.1-cp311-cp311-manylinux_2_34_x86_64.whl
- autobahn-25.9.1-cp312-cp312-manylinux_2_34_x86_64.whl
- autobahn-25.9.1-cp313-cp313-manylinux_2_34_x86_64.whl
- autobahn-25.9.1-cp314-cp314-manylinux_2_34_x86_64.whl
- autobahn-25.9.1-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl
* run unit tests for twisted & asyncio in workflow
* improve package metadata generation
* ignore wheelhouse/ dir
* ported twisted & asyncio unit test driver to just
* ruff formatting
* improve build-fbs recipe
* regen flatbuffers python bindings using flatc version 23.5.26
* improve flatbuffers gen workflow
* test build process is reproducible and up-to-date
* reorder wrokflow steps
* set GITHUB_TOKEN to avoid rate limits
* Add comprehensive coverage reporting for both Twisted and asyncio
* New Coverage Recipes - check-coverage-twisted:
- Runs Twisted trial tests with coverage
- Uses coverage parallel mode for combining later
- Covers txaio+Twisted code paths
* check-coverage-asyncio
- Runs asyncio pytest tests with coverage
- Uses coverage parallel mode for combining later
- Covers txaio+asyncio code paths
* check-coverage-combined
- Combines coverage data from both test runners
- Generates unified HTML and text reports
- Provides complete picture of both backend implementations
* Workflow Updates
- Updated main.yml to use check-coverage-combined
- Added coverage report artifact upload
- Deprecated old check-coverage recipe (marked as legacy)
- Updated check recipe to use combined coverage
- Complete code path coverage for dual-backend library
- Backend parity verification (Twisted vs asyncio)
- Identifies Twisted-only and asyncio-only code paths
- Real-world accuracy for txaio abstraction coverage
- Output: docs/_build/html/coverage-combined/index.html
* Add exact FlatBuffers compiler version management
* New justfile Recipe - install-flatc:
- Downloads FlatBuffers compiler v25.9.23 directly from GitHub releases
- Installs to /usr/local/bin/flatc with proper permissions
- Uses statically linked binary (no distro packaging dependencies)
- Provides version verification after installation
* Workflow Updates - build-schema job:
- Replaced apt install flatbuffers-compiler with exact version download
- Uses same v25.9.23 binary as local development
- Eliminates version drift between local dev and CI
- Ensures FlatBuffers verification tests pass consistently
- **Reproducible builds**: Same flatc version everywhere
- **No distro packaging lag**: Latest flatc immediately available
- **Consistent verification**: Schema regeneration tests will pass
- **Easy updates**: Change version in one place (FLATC_VERSION variable)
- Usage: Local: `just install-flatc`, CI: automatic in build-schema workflow
* ignore .coverage
* rebuild flatbuffers binary schema & wrappers using flatc v25.9.23
* Fix shell quoting error in wheels-docker.yml
* Fixed broken quote in echo statement1 parent 7dbac37 commit dbf5d6f
70 files changed
Lines changed: 1050 additions & 1387 deletions
File tree
- .ai
- .audit
- .gemini
- .githooks
- .github/workflows
- autobahn
- nvx
- wamp/gen/wamp
- proto
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments