Release Notes¶
This page provides a high-level overview of important changes in each release. For detailed technical changes, see the changelog.
25.12.2 (2025-12-15)¶
Release Type: Stable release
Source Build: master-202512150317
Highlights¶
This release synchronizes the CI/CD infrastructure and FlatBuffers vendoring between autobahn-python and zlmdb, ensuring consistent behavior for applications using both libraries (like Crossbar.io).
Key changes:
manylinux compatibility fix: Switched from manylinux_2_34 to manylinux_2_28 containers to avoid x86_64_v2 ISA requirements that caused auditwheel failures when bundling the flatc compiler.
FlatBuffers version sync: Added
check_zlmdb_flatbuffers_version_in_sync()function to verify autobahn and zlmdb use compatible FlatBuffers runtimes.Improved release workflow: Consolidated artifact download recipes with checksum verification for supply chain security.
Artifact Verification¶
All release artifacts include SHA256 checksums for integrity verification.
To verify a downloaded artifact:
# Download checksum file
curl -LO https://github.com/crossbario/autobahn-python/releases/download/master-202512150317/wheels-CHECKSUMS.sha256
# Verify a wheel (example)
openssl sha256 autobahn-25.12.2-cp311-cp311-manylinux_2_28_x86_64.whl
# Compare output with corresponding line in CHECKSUMS file
Release Links¶
Detailed Changes: See Changelog (25.12.2 section)
25.12.1 (2025-12-10)¶
Release Type: Stable release
Source Build: master-202512092131
WebSocket Conformance¶
Autobahn|Python passes 100% of the WebSocket conformance tests from the Autobahn|Testsuite.
Configuration: with-nvx (NVX acceleration)¶
Client Conformance
Testee |
Cases |
Status |
|---|---|---|
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
Server Conformance
Testee |
Cases |
Status |
|---|---|---|
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
Configuration: without-nvx (pure Python)¶
Client Conformance
Testee |
Cases |
Status |
|---|---|---|
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
Server Conformance
Testee |
Cases |
Status |
|---|---|---|
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
|
246 / 246 |
✅ |
Release Artifacts¶
Binary wheels are available for the following platforms:
Platform |
Python |
Arch |
Wheel |
|---|---|---|---|
Linux |
CPython 3.11 |
x86_64 |
|
Linux |
CPython 3.11 |
ARM64 |
|
Linux |
CPython 3.12 |
x86_64 |
|
Linux |
CPython 3.13 |
x86_64 |
|
Linux |
CPython 3.13 |
ARM64 |
|
Linux |
CPython 3.14 |
x86_64 |
|
Linux |
PyPy 3.11 |
x86_64 |
|
Linux |
PyPy 3.11 |
ARM64 |
|
macOS |
CPython 3.13 |
ARM64 |
|
macOS |
CPython 3.14 |
ARM64 |
|
macOS |
PyPy 3.11 |
ARM64 |
|
Windows |
CPython 3.11 |
x86_64 |
|
Windows |
CPython 3.12 |
x86_64 |
|
Windows |
CPython 3.13 |
x86_64 |
|
Windows |
CPython 3.14 |
x86_64 |
|
Windows |
PyPy 3.11 |
x86_64 |
|
Source distribution: autobahn-25.12.1.tar.gz
Artifact Verification¶
All release artifacts include SHA256 checksums for integrity verification.
To verify a downloaded artifact:
# Download checksum file
curl -LO https://github.com/crossbario/autobahn-python/releases/download/master-202512092131/CHECKSUMS.sha256
# Verify a wheel (example)
openssl sha256 autobahn-25.12.1-cp311-cp311-manylinux_2_28_x86_64.whl
# Compare output with corresponding line in CHECKSUMS.sha256
Release Links¶
Detailed Changes: See Changelog (25.12.1 section)
25.10.1 (2025-10-18)¶
Release Type: Stable release
Important Fixes
This maintenance release focuses on supply chain security, testing infrastructure improvements, and documentation enhancements.
Server Conformance Testing: Fixed critical bug where both with-nvx and without-nvx server conformance tests were testing against the same server configuration. Servers now properly restart between NVX configuration changes, ensuring accurate test results.
Supply Chain Security (Issue #1716): Added comprehensive source distribution integrity verification with cryptographic fingerprints and chain of custody verification throughout the release workflow.
Documentation Integration: WebSocket conformance reports and FlatBuffers schemas are now properly integrated into Read the Docs builds via GitHub Release artifacts.
Documentation Improvements
New justfile recipes for streamlined release artifact management
Improved pre-release checklist with artifact integration workflow
Enhanced WebSocket conformance documentation structure
Wheel Building
Fixed ARM64 wheel builds to eliminate duplicate wheels
Improved PyPI publishing to filter out non-package files
Upgrade Notes
No breaking changes. This is a drop-in replacement for 25.9.1.
Release Artifacts
Links
Detailed changes: changelog (25.10.1 section)
25.9.1 (2025-09-15)¶
Release Type: Feature release
Major New Features
NVX Native XOR Masking Acceleration (#1697): Up to 100x faster WebSocket frame masking/unmasking on supported CPUs through hardware-accelerated XOR operations. Automatically enabled on x86_64 CPUs with AVX2 support. Control via
AUTOBAHN_USE_NVXenvironment variable.ARM64 Wheel Building: Full ARM64 support via QEMU emulation for CPython 3.11, 3.13 and PyPy 3.11. Docker-based multi-arch wheel building system supporting both manylinux_2_17 and manylinux_2_28.
Modern Python Toolchain: Complete migration to modern build tools:
justfor task automation (replacing Make)uvfor fast Python package managementrufffor fast linting and formattingRemoved setuptools dependency - now using pure pyproject.toml-based builds
Deprecation Removals
Removed
twisted.internet.defer.returnValueusage throughout codebase (#1667, #1651)Replaced with native Python
returnstatements (Python 3.3+ syntax)Various deprecation warnings in tests cleaned up (#1647)
CI/CD Improvements
Symmetric release structure across all 3 release types (stable, nightly, development)
Early Exit Pattern prevents unnecessary workflow runs
FlatBuffers schema packaged as tarball in GitHub releases
GitHub Discussions support for automated release announcements
Platform Support
Full PyPy ARM64 support with proper PATH configuration
Platform-specific wheel building (manylinux_2_17 for older systems, manylinux_2_28 for newer)
Windows builds use MSVC attributes
Fixed auditwheel handling under QEMU emulation
Refactoring
LMDB & XBR code refactored and broken out to separate packages (#1664)
Removed unnecessary dependencies - plain Twisted utilities are sufficient (#1661)
Improved code organization and maintainability
AI Policy Announcement
New AI policy for AI-assisted contributions (#1663)
Upgrade Notes
Breaking Change: Minimum Twisted version may have changed - check your dependencies
Performance: NVX acceleration is automatically enabled on supported CPUs. Set
AUTOBAHN_USE_NVX=0to disable if neededBuild System: If you build from source, note the migration to modern tooling (just, uv, pyproject.toml)
Release Artifacts
Links
Detailed changes: changelog (25.9.1 section)
24.4.2 (2024-04-15)¶
Release Type: Bug fix release
Fixes
Ensure ID generator stays in range [1, 2^53] (#1637)
Release Artifacts
Links
Detailed changes: changelog (24.4.2 section)
Where to Get Help¶
If you encounter issues upgrading or have questions:
GitHub Issues - Bug reports and feature requests
GitHub Discussions - Community Q&A
Stack Overflow - Tag questions with
autobahnDocumentation - Full documentation on Read the Docs
See Also¶
changelog - Detailed technical changelog
Installation instructions - see README.md
GitHub Releases - Release artifacts and announcements
Release Workflow (for Maintainers)¶
This section documents the release process for maintainers.
Prerequisites¶
Before releasing, ensure you have:
Push access to the repository
PyPI credentials configured (or trusted publishing via GitHub Actions)
justanduvinstalled
Step 1: Draft the Release¶
Generate changelog and release note templates:
# Generate changelog entry from git history (for catching up)
just prepare-changelog <version>
# Generate release draft with templates for both files
just draft-release <version>
This will:
Add a changelog entry template to
docs/changelog.rstAdd a release entry template to
docs/release-notes.rstUpdate the version in
pyproject.toml
Step 2: Edit Changelog¶
Edit docs/changelog.rst and fill in the changelog details:
New: New features and capabilities
Fix: Bug fixes
Other: Breaking changes, deprecations, other notes
Step 3: Validate the Release¶
Ensure everything is in place:
just prepare-release <version>
This validates:
Changelog entry exists for this version
Release entry exists for this version
Version in
pyproject.tomlmatchesAll tests pass
Documentation builds successfully
Step 4: Disable Git Hooks (if needed)¶
git config core.hooksPath /dev/null
git config core.hooksPath
Step 5: Commit and Tag¶
git add docs/changelog.rst docs/release-notes.rst pyproject.toml
git commit -m "Release <version>"
git tag v<version>
git push && git push --tags
Step 6: Enable Git Hooks (if previously disabled)¶
git config core.hooksPath .ai/.githooks
git config core.hooksPath
Step 7: Automated Release¶
After pushing the tag:
GitHub Actions builds and tests the release
Wheels and source distributions are uploaded to GitHub Releases
PyPI publishing is triggered via trusted publishing (OIDC)
Read the Docs builds documentation for the tagged version
Manual PyPI Upload (if needed)¶
If automated publishing fails:
just download-github-release v<version>
just publish-pypi "" v<version>