We welcome contributions to Autobahn|Python! This guide explains how to get involved.
- GitHub Issues: Report bugs or request features at https://github.com/crossbario/autobahn-python/issues
- GitHub Discussions: Ask questions and discuss at https://github.com/crossbario/autobahn-python/discussions
- Mailing List: Join the Autobahn mailing list at https://groups.google.com/forum/#!forum/autobahnws
- Chat: Join us on the WAMP community channels
When reporting issues, please include:
- Python version (
python --version) - Autobahn version (
python -c "import autobahn; print(autobahn.__version__)") - Operating system and version
- Framework being used (Twisted or asyncio)
- Minimal code example reproducing the issue
- Full traceback if applicable
- Network configuration if relevant (proxy, firewall, etc.)
- Fork the repository on GitHub
- Create a feature branch from
master - Make your changes following the code style
- Add tests for new functionality
- Run the test suite to ensure nothing is broken
- Submit a pull request referencing any related issues
git clone https://github.com/crossbario/autobahn-python.git
cd autobahn-python
pip install -e .[dev,twisted,asyncio]# Run all tests
tox
# Run tests for specific Python version
tox -e py312
# Run specific test file
pytest autobahn/test/test_websocket.py- Follow PEP 8
- Use meaningful variable and function names
- Add docstrings for public APIs
- Keep lines under 100 characters
- Use type hints where appropriate
- Documentation uses reStructuredText
- Build docs locally:
cd docs && make html - View at
docs/_build/html/index.html
Autobahn|Python supports both Twisted and asyncio. When contributing:
- Test changes on both frameworks if applicable
- Use
txaiofor framework-agnostic code - Don't break compatibility with either framework
For WebSocket changes, run the Autobahn|Testsuite:
# See docs/websocket/conformance.rst for detailsBy contributing to Autobahn|Python, you agree that your contributions will be licensed under the MIT License.