Skip to content

Rel v25.9.1#140

Merged
oberstet merged 9 commits intomasterfrom
rel_v25.9.1
Oct 4, 2025
Merged

Rel v25.9.1#140
oberstet merged 9 commits intomasterfrom
rel_v25.9.1

Conversation

@oberstet
Copy link
Contributor

@oberstet oberstet commented Oct 4, 2025

No description provided.

This comprehensive modernization update prepares autobahn-testsuite for the v25.10.1 release with the following key changes:

## Version and Packaging Modernization
- Update version from 0.8.2 to 25.10.1 (adopt calendar versioning)
- Add modern pyproject.toml with Python 2.7 support while maintaining exact dependency autobahn[twisted,accelerate]==0.10.9
- Update maintainer to "The WAMP/Autobahn/Crossbar.io OSS Project"

## Build Infrastructure Modernization
- Add justfile for build automation with uv package manager and Python 2.7 (cpy27)
- Modernize Docker to use pypy:2-7-bookworm base image
- Include recipes for install, build, test, docker-build, publish-pypi, and publish-docker

## Documentation Links Update
- Replace all autobahn.ws domain references with autobahn-testsuite.readthedocs.io
- Update URLs in setup.py, documentation, web templates, report generators, and static assets
- Ensure consistent documentation hosting migration to Read the Docs

## Files Modified
- Package metadata: _version.py, setup.py, pyproject.toml (new)
- Build infrastructure: justfile (new), Dockerfile
- Documentation: README.md, doc/usage.rst, examples/publicreports/README.md
- Web templates: HTML files in web/ and templates/ directories
- Report generation: fuzzing.py, testdb.py, testdata/data1.html
- Static assets: autobahn.min.js

This maintains full backward compatibility while modernizing the package for contemporary Python packaging standards and documentation hosting.
uv does not support Python 2.7, so we need to use the system python2 with virtualenv instead.

Changes:
- Use system python2 binary instead of uv for Python 2.7 support
- Add check-python2 recipe to verify python2 availability
- Use virtualenv to create Python 2.7 virtual environments
- Update all recipe references to use correct venv paths
- Provide clear error message if python2 is not installed

Users should install python2 with: sudo apt install -y python2
pyproject.toml is too modern for Python 2.7 - reverting to enhanced setup.py approach with proper system dependency management.

Changes:
- Remove pyproject.toml (not compatible with Python 2.7)
- Enhance setup.py with Python 2.7 classifiers
- Add install-system-deps recipe to install python2, pip2, and virtualenv
- Use get-pip.py bootstrap script for Python 2.7 pip installation
- Enhanced check-python2 to verify all dependencies
- Improved clean recipe to remove bootstrap files

New workflow:
1. just install-system-deps  # Install system python2, pip2, virtualenv
2. just build               # Create venv, install deps, build package
3. just test-install        # Test the installation
4. just publish-pypi        # Publish to PyPI

This provides proper Python 2.7 support with modern build automation while respecting the constraints of the legacy Python version.
The virtual environment paths need to be relative to the package directory when we cd into it.

Fixed all recipes that cd into autobahntestsuite/ to use ../{{VENV_DIR}}/{{VENV_NAME}}/bin/* instead of {{VENV_DIR}}/{{VENV_NAME}}/bin/*
Ubuntu 24.04+ no longer provides python2-dev package, which is required for building wsaccel (part of autobahn[twisted,accelerate]==0.10.9).

Changes:
- Enhanced install-system-deps to fallback to source build when python2-dev unavailable
- Added build-python2-from-source recipe to compile Python 2.7.18 from source
- Installs to /opt/python2.7 with proper headers for C extension compilation
- Creates symlinks for system-wide access (/usr/local/bin/python2)
- Configures shared libraries and ldconfig
- Added clean-all recipe to remove custom Python installation
- Includes all necessary build dependencies for compilation

This ensures wsaccel can be compiled from source when binary wheels aren't available for Python 2.7 on modern Ubuntu systems.
This commit completes the modernization of autobahn-testsuite with comprehensive CI/CD and documentation:

## GitHub Actions Workflow (.github/workflows/main.yml)
- Build Python package (sdist + wheel) using Python 2.7 on Ubuntu 20.04
- Build and test Docker image with proper versioning
- Generate GitHub releases on tag push with build artifacts
- Publish to PyPI on tag push using TWINE_PASSWORD secret
- Publish to Docker Hub on tag push with version and latest tags
- Build documentation using justfile automation
- Upload documentation artifacts

## Documentation Infrastructure
- Sphinx configuration with RTD theme (docs/conf.py, docs/index.rst)
- Read the Docs configuration (.readthedocs.yml)
- justfile recipes: docs, docs-clean, docs-serve
- Complete usage examples and installation instructions

## Build Infrastructure Enhancements
- docs building integrated into justfile (no Makefiles)
- docs-serve recipe for local development server
- update-copyright recipe for bulk header updates
- Enhanced clean recipe includes docs/_build/

## Company Name Updates
- Updated all copyright headers from 'Crossbar.io Technologies GmbH' to 'typedef int GmbH'
- Updated setup.py author field
- Updated documentation author/copyright fields
- Covers 174+ Python files across the entire codebase

This provides complete CI/CD automation for package building, testing, publishing, and documentation generation while maintaining Python 2.7 compatibility.
@oberstet oberstet merged commit 5c9f341 into master Oct 4, 2025
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant