Releases: blazefl/blazefl
v2.0.3
What's Changed
- chore(deps): bump psutil from 7.1.0 to 7.1.3 by @dependabot[bot] in #112
- chore(deps): bump ruff from 0.14.0 to 0.14.3 by @dependabot[bot] in #113
- fix: delay torch.multiprocessing import to prevent semaphore leak warning by @kitsuyaazuma in #114
- chore: v2.0.3 by @kitsuyaazuma in #115
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
- chore(deps): bump sphinx from 8.1.3 to 8.2.3 by @dependabot[bot] in #81
- chore(deps): bump types-tqdm from 4.67.0.20250516 to 4.67.0.20250809 by @dependabot[bot] in #80
- chore(deps): bump types-psutil from 7.0.0.20250601 to 7.0.0.20250801 by @dependabot[bot] in #82
- chore(deps): bump torch from 2.7.1 to 2.8.0 by @dependabot[bot] in #83
- chore(deps): bump ruff from 0.8.2 to 0.12.8 by @dependabot[bot] in #84
- chore(deps): bump pytest from 8.3.4 to 8.4.1 by @dependabot[bot] in #88
- chore(deps): bump ruff from 0.12.8 to 0.12.10 by @dependabot[bot] in #87
- chore(deps): bump types-psutil from 7.0.0.20250801 to 7.0.0.20250822 by @dependabot[bot] in #86
- chore(deps): bump sphinx-book-theme from 1.1.3 to 1.1.4 by @dependabot[bot] in #89
- chore(deps): bump mypy from 1.13.0 to 1.17.1 by @dependabot[bot] in #85
- chore(deps): bump ruff from 0.12.10 to 0.12.11 by @dependabot[bot] in #90
- chore(deps): bump sphinx-autobuild from 2024.10.3 to 2025.8.25 by @dependabot[bot] in #91
- chore(deps): bump pre-commit from 4.2.0 to 4.3.0 by @dependabot[bot] in #93
- chore(deps): bump numpy from 2.3.1 to 2.3.2 by @dependabot[bot] in #92
- chore(deps): bump pytest from 8.4.1 to 8.4.2 by @dependabot[bot] in #94
- chore(deps): bump ruff from 0.12.11 to 0.12.12 by @dependabot[bot] in #95
- chore(deps): bump ruff from 0.12.12 to 0.13.0 by @dependabot[bot] in #98
- chore(deps): bump numpy from 2.3.2 to 2.3.3 by @dependabot[bot] in #97
- chore(deps): bump mypy from 1.17.1 to 1.18.2 by @dependabot[bot] in #99
- chore(deps): bump psutil from 7.0.0 to 7.1.0 by @dependabot[bot] in #101
- chore(deps): bump ruff from 0.13.0 to 0.13.1 by @dependabot[bot] in #100
- chore(deps): bump ruff from 0.13.1 to 0.14.0 by @dependabot[bot] in #105
- chore(deps): bump types-psutil from 7.0.0.20250822 to 7.0.0.20251001 by @dependabot[bot] in #103
- chore: officially support free-threaded python by @kitsuyaazuma in #106
- chore: v2.0.2 by @kitsuyaazuma in #107
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
- chore: update urls after repository transfer by @kitsuyaazuma in #77
- refactor: use strenum for ipc mode by @kitsuyaazuma in #78
- refactor: use structured hydra config by @kitsuyaazuma in #79
Full Changelog: v2.0.0...v2.0.1
v2.0.0
This is a major release of BlazeFL that introduces significant architectural changes and powerful new features. The framework has been redesigned from the ground up to enhance performance, extensibility, and reproducibility. Due to the extensive nature of these updates, this version includes numerous breaking changes.
🚀 What's New
- Multiple Execution Modes: BlazeFL now officially supports three distinct execution modes to fit various simulation needs: single-threaded, multi-threaded (experimental), and multi-process.
- High-Performance IPC: The multi-process mode now features a
shared_memoryoption for inter-process communication (IPC), offering significantly faster performance than the default storage-based mode by avoiding disk I/O. - Enhanced Reproducibility: A new generator-based reproducibility strategy has been introduced, providing isolated random number generators (
RNGSuite) for robust and consistent results in parallel environments. - Structured & Type-Safe by Design: The framework's core APIs now leverage Protocols and Dataclasses to ensure type safety, making your federated learning workflows more readable, maintainable, and less error-prone.
💥 Breaking Changes
This release fundamentally refactors the core components of BlazeFL. Key breaking changes include:
- Modular Architecture: The core logic has been reorganized into
blazefl.coreandblazefl.contribmodules. Key components likeBaseServerHandler,BaseClientTrainer, andPartitionedDatasethave been redefined as Protocols for greater flexibility. - Standardized Communication: Communication between the server and clients now uses strongly-typed
dataclasses(e.g.,FedAvgUplinkPackage,FedAvgDownlinkPackage) instead of generic structures. - Redesigned Trainer APIs:
ProcessPoolClientTrainerhas been updated to support multiple IPC modes (storage,shared_memory). The worker method signature has been modified to accommodate this.ThreadPoolClientTrainerhas been introduced as a new, experimental option for lightweight parallelism.
- New Reproducibility System: The recommended approach for ensuring reproducibility is now the generator-based strategy. The previous global seeding method is still available but is not guaranteed to work reliably in multi-threaded scenarios.
📖 Getting Started with v2.0.0
Given the significant API changes, we strongly recommend all users to review the updated documentation and examples to understand the new architecture and features.
- Read the new README: The README.md has been thoroughly updated to explain the new concepts, including detailed diagrams for each execution mode and the new reproducibility strategies.
- Check out the examples: The quickstart-fedavg and step-by-step-dsfl examples have been updated to reflect the new API and best practices.
What's Changed
- chore(deps): bump torch from 2.7.0 to 2.7.1 by @dependabot[bot] in #47
- chore(deps): bump numpy from 2.2.6 to 2.3.1 by @dependabot[bot] in #63
- revert: "chore(deps): bump numpy from 2.2.6 to 2.3.1" by @kitsuyaazuma in #64
- revert: "chore(deps): bump torch from 2.7.0 to 2.7.1" by @kitsuyaazuma in #65
- feat: v2.0.0a by @kitsuyaazuma in #51
- feat: move tqdm to optional dependencies by @kitsuyaazuma in #67
- chore(deps): bump torch from 2.7.0 to 2.7.1 by @dependabot[bot] in #68
- chore(deps): bump numpy from 2.2.6 to 2.3.1 by @dependabot[bot] in #69
- feat: use generator instead of global seed for better reproducibility by @kitsuyaazuma in #70
- feat: move numpy to optional dependencies by @kitsuyaazuma in #71
- chore: update dsfl example with improved reproducibility by @kitsuyaazuma in #72
- feat: use enum for model selector by @kitsuyaazuma in #73
- docs: include optional packages by @kitsuyaazuma in #74
- feat: implement zero-copy return from workers via shm by @kitsuyaazuma in #75
- docs: add comprehensive guide on reproducibility by @kitsuyaazuma in #76
Full Changelog: v1.1.0...v2.0.0
v1.1.0
What's Changed
- feat: use workspace for quickstart-fedavg example by @kitsuyaazuma in #43
- feat: use workspace for step-by-step-dsfl example by @kitsuyaazuma in #45
Full Changelog: v1.0.2...v1.1.0
v1.0.2
What's Changed
- chore: update account name by @kitsuyaazuma in #36
- chore(deps): bump types-tqdm from 4.67.0.20241119 to 4.67.0.20250417 by @dependabot in #37
- chore(deps): bump numpy from 2.2.0 to 2.2.5 by @dependabot in #38
- chore(deps): bump torch from 2.5.1 to 2.7.0 by @dependabot in #39
- chore(deps): bump numpy from 2.2.5 to 2.2.6 by @dependabot in #40
- chore(deps): bump types-tqdm from 4.67.0.20250417 to 4.67.0.20250516 by @dependabot in #41
- feat: generate stub automatically by @kitsuyaazuma in #42
New Contributors
- @dependabot made their first contribution in #37
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- Upgrade BlazeFL Package Version for Examples by @kitsuya0828 in #34
- Use Context Manager to Ensure Proper Cleanup of Spawned Processes by @kitsuya0828 in #35
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
- Add Step-by-Step Tutorial by @kitsuya0828 in #31
- Take device as an argument in each client process by @kitsuya0828 in #33
Full Changelog: v0.1.2...v1.0.0
v0.1.2
What's Changed
- Add Generic Type Support for ServerHandler by @kitsuya0828 in #30
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
- Fix Version Already Used Error by @kitsuya0828 in #29
Full Changelog: v0.1.0...v0.1.1