Releases: Exa-Networks/exabgp
ExaBGP 'Never trust 0.0 code' release
ExaBGP 5.0.1
This is a bug fix release addressing issues introduced in 5.0.0.
🚨 Critical Fixes
Container ImportError Fix
- Fix: Container startup failure in 5.0.0 - The 5.0.0 Docker container (ghcr.io/exa-networks/exabgp:5.0.0) failed to start with ImportError: cannot import name 'get_root' from
'exabgp.version' - Added missing get_root() and get_zipapp() functions that were removed during 5.0.0 release but still required by application/version.py
- All exabgp commands (--help, version, etc.) now work correctly
RIB Stability Fixes
- Fix: RIB iterator crash in delete_cached_family() - Modified dictionary during iteration causing RuntimeError on configuration reload
- Fix: RIB iterator safety in cached_changes() - Prevented iterator corruption during concurrent access
- Fix: race condition in RIB updates() generator - Fixed missing/duplicate route updates when API flush commands arrive during peer sending
✨ Testing Improvements
- Added comprehensive RIB stress test suite (tests/unit/test_rib_stress.py) - 18 tests covering critical bugs, race conditions, edge cases, and performance
ExaBGP "Claude" release
Major code release
This is the first stable release of ExaBGP 5.0.
This release is based on the main branch, which has been widely used in production (with some recent changes). Development in main will lead to the creation of version 6.0.0, which already includes significant work to leverage modern Python asynchronous features as well as code annotations with mypy. As these changes are more likely to introduce potential issues, we are releasing 5.0 as a stable version for production use.
This release removes support for Python 3.7 and requires Python 3.8+.
"Nothing much" happened since the latest 4.2.22 release "but":
- 871 commits since 4.2.22
- 920 files changed, 88,481 insertions, 29,566 deletions
- 20+ contributors
- All major changes are documented in the CHANGELOG
🙏 Acknowledgments
Special thanks to:
- All contributors who submitted patches, bug reports, and feature requests
- The BGP community for protocol clarifications
- Early adopters who tested pre-release versions
- Everyone who contributed to documentation and examples
🐛 Known Issues
See the issue tracker for known issues.
Notable TODOs for future releases:
- OriginASN4Number extended community (Type 2,2)
- RouteTargetASN4Number extended community (Type 2,3)
- IP/Range/CIDR class API improvements
📄 License
ExaBGP is licensed under the BSD-3-Clause License.
🔗 Links
- Homepage: https://github.com/Exa-Networks/exabgp
- Documentation: https://github.com/Exa-Networks/exabgp/wiki
- PyPI: https://pypi.org/project/exabgp/
- Docker: https://github.com/Exa-Networks/exabgp/pkgs/container/exabgp
- Issues: https://github.com/Exa-Networks/exabgp/issues
- Discussions: https://github.com/Exa-Networks/exabgp/discussions
💬 Questions?
- GitHub Discussions: https://github.com/Exa-Networks/exabgp/discussions
- Bug Reports: https://github.com/Exa-Networks/exabgp/issues
Full Changelog: 4.2.22...5.0.0
👻 Ghost written by Claude (Anthropic AI)
ExaBGP 'Not a Zen Day' release
This release fixes an issue with doctopt introduced in 4.2.23.
The short option of the command line -1, -s and -x were not understood anymore.
ExaBGP 'No, It is him, Ludgi' Release
This release is a follow up to 4.2.23 removing some unused (or unnecessary vendored library) which broke following the backward incompatible changes introduced by python 3.13
ExaBGP 'It's me, Mar 10' Release
After nearly a year, an update to keep up with Python development.
- Fix: issue with code with python 3.13
- Fix: update doctopt to master
- Fix: workaround for deprecated asyncore
ExaBGP 'Iwama' release
Version 4.2.22
- Fix: route reload for offline neighbors #1126
patch: Malcolm Dodds - Fix: make sure we compare next-hop self and next-hop IP correctly (#1153)
reported: gitneep - Compatibility: remove "not-a-fragment" "!is-fragment" should be used instead
- Upgrade six to the latest version
And probably a bit more if you read the changelog.
ExaBGP 'fix regression' release
Fix an issue introduced with 4.2.20 : exabgp cli could not announce any routes
ExaBGP 'supreme facepalm' release
Version 4.2.20
- Fix: correctly filter routes announced by the API to the right peer #1005
- Feature: healthcheck neighbor filtering and path-information backport of #1098 and #1099
- Fix: backport #1101 fix parsing of FlowSpec TCPFlags with NS
- Fix: backport #1102 fix parsing of Fragment with IPv6 destinations/sources
- Fix: bug in CLI when failing to read data
ExaBGP '(no) confidence' release
Bug fix only release
- Feature: force PGP signing of tags
- Feature: backport ICMP types
- Fix: backport healthcheck setup_ips requiring a label
backport by: Steven Honson
ExaBGP 'election' release
This release only adds the ICMP experimental code.
It was created to provide a PGP signed tag as some organisations require it.