Skip to content
This repository has been archived by the owner on Aug 30, 2022. It is now read-only.

v0.7.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@rsaffi rsaffi released this 25 Mar 14:28
· 1126 commits to master since this release
8d291e8

On this release we archived the Python code under the legacy folder and shifted the development to Rust.
This release has many breaking changes from the previous versions.
More details will be made available through the updated README.md of the repository.

  • PB-584 Update the manifest Cargo.toml with description, license, keywords, repository URL and project homepage (#343) [Ricardo Saffi Marques]
  • PB-584 Add LICENSE file at the root of the repository prior to release v0.7.0 (#342) [Ricardo Saffi Marques]
  • Update Cargo.lock for release. [Ricardo Saffi Marques]
  • Update versions and authors (#335) [Corentin Henry]
  • Remove the rustfmt config file (#341) [Corentin Henry]
  • Remove nix files (#337) [Corentin Henry]
  • Remove caddy (#338) [Robert Steiner]
  • Nix-shell: install rust-analyzer (#336) [Corentin Henry]
  • Re-use the CHANGELOG file from the legacy codebase. [little-dude]
  • Rewrite xain-fl in Rust. [little-dude]
  • Merge pull request #64 from xainag/optional-metric-store. [Corentin Henry]
  • In docker, compile with influx_metrics [little-dude]
  • Silence "unused variable" warning from rustc. [little-dude]
  • Add CI jobs for the influx_metrics feature. [little-dude]
  • Introduce the influx_metrics feature. [little-dude]
  • Disable metrics when running locally. [little-dude]
  • Make the metric store optional. [little-dude]
  • Move the metric store to xain_fl::common. [little-dude]
  • Merge pull request #68 from xainag/ci-build-all-features. [Corentin Henry]
  • Fix build for the telemetry feature. [little-dude]
  • Ci: add matrix to tests various --features flags. [little-dude]
  • Merge pull request #67 from xainag/example-fixes. [Corentin Henry]
  • Sdk: participant should exit when a heartbeat fails. [little-dude]
  • Sdk: crash instead of calling sys.exit when participant errors out. [little-dude]
  • Fix exit condition in dummy example. [little-dude]
  • Merge pull request #65 from xainag/less-verbose-logging. [Corentin Henry]
  • Make logging more finely configurable. [little-dude]
  • Merge pull request #66 from xainag/fix-crash. [Corentin Henry]
  • Fix crash after training finishes. [little-dude]
  • Merge pull request #63 from xainag/misc. [Corentin Henry]
  • Log an error when a heartbeat is rejected. [little-dude]
  • Use more reasonable values in docker-release-aggregator.toml. [little-dude]
  • Sdk: make the heartbeat frequency configurable. [little-dude]
  • Simplify match statement. [little-dude]
  • Nix: add some cargo tools. [little-dude]
  • Merge pull request #61 from xainag/refactor. [Corentin Henry]
  • Refactor: simplify RPC code by using the ServiceHandle. [little-dude]
  • Merge pull request #52 from xainag/PB-490-protocol-tests. [Corentin Henry]
  • Fix protocol test: by default expect two rounds. [little-dude]
  • Document the protocol tests. [little-dude]
  • Remove ignore. [Robert Steiner]
  • Remove unused function. [Robert Steiner]
  • Fix typo. [Robert Steiner]
  • Clean up. [Robert Steiner]
  • Add full training test case. [Robert Steiner]
  • Clean up tests. [Robert Steiner]
  • Add end_training and end_aggregation tests. [Robert Steiner]
  • Add endtraining test. [Robert Steiner]
  • Remove comments. [Robert Steiner]
  • Add start training tests. [Robert Steiner]
  • Add heartbeat test. [Robert Steiner]
  • Fix tests. [Robert Steiner]
  • Add heartbeat tests. [Robert Steiner]
  • PB-490 Add protocol tests. [Robert Steiner]
  • Merge pull request #59 from xainag/opentelemetry. [Corentin Henry]
  • Integrate with opentelemetry and jaeger. [little-dude]
  • Get rid of log and env_logger dependencies. [little-dude]
  • Small refactoring. [little-dude]
  • Configure a custom Subscriber for the aggregator. [little-dude]
  • Split AggregatorService::poll_rpc_requests() [little-dude]
  • Implement Display for RPC requests. [little-dude]
  • Switch to tracing for logging. [little-dude]
  • Update README. [little-dude]
  • Merge pull request #56 from xainag/PB-491-test-python-ffi. [Corentin Henry]
  • Add reset, get_global_weights and aggregate tests. [Robert Steiner]
  • Add add_weights and aggregate test. [Robert Steiner]
  • Add python setup in rust-test. [Robert Steiner]
  • Add more tests. [Robert Steiner]
  • Add load test. [Robert Steiner]
  • Update README. [little-dude]
  • Add instructions to run the examples. [little-dude]
  • Remove more dependencies. [little-dude]
  • Remove unused dependency. [little-dude]
  • Bump dependencies. [little-dude]
  • Merge pull request #54 from xainag/simplify_rpc_client. [Corentin Henry]
  • Simplify the RPC implementation. [little-dude]
  • Install docker-compose. [little-dude]
  • Merge pull request #53 from xainag/error-handling. [Corentin Henry]
  • Aggregator: properly handle CTRL+C. [little-dude]
  • Aggregator: when a task finishes cancel the other ones. [little-dude]
  • Rename channels to reflect whether they are senders or receivers. [little-dude]
  • Improve error handling in the py_aggregator module. [little-dude]
  • Add anyhow and thiserror dependencies for error handling. [little-dude]
  • Merge pull request #49 from xainag/fix-clippy-warnings. [Corentin Henry]
  • Update ci. [Robert Debug]
  • Fix clippy warnings. [Robert Debug]
  • Deny warnings when compiling rust code. [little-dude]
  • Do not run CI for PRs. [little-dude]
  • Configure python CI (#50) [Robert Steiner]
  • Remove dummy aggregator. [little-dude]
  • Cleanup the keras_house_prices example. [little-dude]
  • Add vscode workspace settings to gitignore. [Robert Debug]
  • Clean up write metrics. [Robert Steiner]
  • Merge pull request #37 from xainag/benchmarks. [Corentin Henry]
  • Delete dummy tensorflow example. [little-dude]
  • Cleanup the keras benchmark. [little-dude]
  • Optimize dummy example. [little-dude]
  • Fix data_handlers. [little-dude]
  • Beef up the .dockerignore to speed up docker. [little-dude]
  • Port keras example from the benchmarks repo. [little-dude]
  • Remove junk files. [little-dude]
  • Beef up the .dockerignore to speed up docker. [little-dude]
  • Merge pull request #44 from xainag/add_metric_queue. [Corentin Henry]
  • Remove tests. [Robert Steiner]
  • Fix config. [Robert Steiner]
  • Add metric queue. [Robert Steiner]
  • Merge pull request #41 from xainag/valgrind. [Robert Steiner]
  • Remove valgrind in dev. [Robert Steiner]
  • Clean up. [Robert Steiner]
  • Fix rebase. [Robert Steiner]
  • Add valgrind. [Robert Debug]
  • Merge pull request #43 from xainag/memory-leak. [Corentin Henry]
  • Fix python memory leak. [little-dude]
  • Fix warning about unused import. [little-dude]
  • Configure logging for the weighted average python aggregator. [little-dude]
  • In the tf.py example just pretend to train. [little-dude]
  • Make participant logging less noisy. [little-dude]
  • Merge pull request #38 from xainag/add_rendez_vous_tests. [Robert Steiner]
  • Fmt. [Robert Steiner]
  • Clean up tests. [Robert Steiner]
  • Add rendez_vous tests. [Robert Steiner]
  • Rustfmt. [little-dude]
  • Fix CI. [little-dude]
  • Set working directory in CI. [little-dude]
  • Fix typo in github workflow file. [little-dude]
  • Add CI for rust. [little-dude]
  • Document how to run release builds. [little-dude]
  • Update images. [little-dude]
  • Add top level .gitignore. [little-dude]
  • Move the rust code into its own directory. [little-dude]
  • Add instructions for profiling. [little-dude]
  • TEST CONFIG. [little-dude]
  • Add instructions to run the tf example. [little-dude]
  • Sdk: handle start training rejections. [little-dude]
  • Fix shebang for nixos. [little-dude]
  • Tweak the log levels. [little-dude]
  • Use different tags for debug/release docker images. [little-dude]
  • Require more participants for release builds. [little-dude]
  • Docker: add release build and move configs out of docker dir. [little-dude]
  • Fix metric store tests. [Robert Steiner]
  • Merge pull request #32 from xainag/add-more-metrics. [Robert Steiner]
  • Delete old dashboard. [Robert Steiner]
  • Replace String with &'static str. [Robert Steiner]
  • Add more metrics. [Robert Steiner]
  • Add run participant script. [Robert Steiner]
  • Use real aggregator in docker. [little-dude]
  • Log why a start training request is rejected. [little-dude]
  • Train on smaller models (1M) [little-dude]
  • Fix py_aggregator memory leak. [little-dude]
  • Fix Dockerfile. [little-dude]
  • More profiling tools. [little-dude]
  • Nix: add gperftools dependency to debug aggregator memory leak. [little-dude]
  • Merge pull request #33 from xainag/aggregators. [Corentin Henry]
  • Add tensorflow example. [little-dude]
  • Make the sdk more generic. [little-dude]
  • Formatting and pylint fixes. [little-dude]
  • Add real aggregators. [little-dude]
  • Merge pull request #34 from xainag/docker-stats. [Robert Steiner]
  • Update caddyfile. [Robert Steiner]
  • Remove alertmanager. [Robert Steiner]
  • Remove alert manager. [Robert Steiner]
  • Add docker stats. [Robert Debug]
  • Repo cleanup. [little-dude]
  • Make the python aggregator configurable. [little-dude]
  • Fix aggregator port. [Robert Steiner]
  • Add numpy. [Robert Steiner]
  • Merge pull request #30 from xainag/collect_metrics. [Robert Steiner]
  • Remove clone impl. [Robert Steiner]
  • Collect Metrics. [Robert Steiner]
  • Fix ports in config files. [little-dude]
  • Sdk: various fixes. [little-dude]
  • Some more logging. [little-dude]
  • Wait for end aggregation message from the aggregator to enter finish state. [little-dude]
  • Don't panic upon un-expected end aggregation message from the aggregator. [little-dude]
  • Handle protocol events after polling the aggregation future. [little-dude]
  • Move DummyParticipant out of sdk package. [little-dude]
  • Working full round. [little-dude]
  • Working upload. [little-dude]
  • Python run black. [little-dude]
  • Some renaming. [little-dude]
  • Nix: fix build. [little-dude]
  • Basic upload handling. [little-dude]
  • Delete outdated examples. [little-dude]
  • Implement downloading weights. [little-dude]
  • Merge pull request #16 from xainag/metrics_store. [Robert Steiner]
  • Applied review changes. [Robert Steiner]
  • Add metrics store tests. [Robert Steiner]
  • Add metric store. [Robert Debug]
  • WIP. [Robert Debug]
  • Call poll. [Robert Debug]
  • Add metric store. [Robert Debug]
  • Fix RequestStream and RequestReceiver. [little-dude]
  • Merge pull request #25 from xainag/expose-rest-api. [Robert Steiner]
  • Fix docker build. [Robert Steiner]
  • Expose REST API. [Robert Debug]
  • Nix: move back to lorri. [little-dude]
  • Client: implement start_training. [little-dude]
  • Show milliseconds in log timestamps. [little-dude]
  • Remove docstring. [little-dude]
  • Fix build. [little-dude]
  • Start client implementation + minor fixes. [little-dude]
  • Quick & dirty json serialization. [little-dude]
  • Fix undeclared module. [Robert Debug]
  • Improve settings error handling. [Robert Debug]
  • Better logging for the python client. [little-dude]
  • Fix coordinator api paths. [little-dude]
  • Copy Participant abstract class from xain-sdk. [little-dude]
  • Rough http client. [little-dude]
  • Make timeout configurable. [little-dude]
  • Update config files. [little-dude]
  • Nix: do not re-install the python client in the shell hook. [little-dude]
  • More logging in the protocol. [little-dude]
  • Move settings to their own module. [little-dude]
  • Merge pull request #23 from xainag/error-handling-improvement. [Robert Steiner]
  • Replace match with ? [Robert Steiner]
  • Small improvements. [Robert Steiner]
  • Create package for a python client. [little-dude]
  • Start the HTTP server in both service. [little-dude]
  • Fix path in .dockerignore. [little-dude]
  • Create a docker directory. [little-dude]
  • Use specific config files for docker. [little-dude]
  • Merge pull request #22 from xainag/docker-bin-config. [Corentin Henry]
  • Add bin configs in docker-compose. [Robert Steiner]
  • Fix coordinator config file. [little-dude]
  • Add config files. [little-dude]
  • Merge pull request #19 from xainag/docker. [Corentin Henry]
  • Update docker files. [Robert Debug]
  • Update readme. [Robert Steiner]
  • Update bin section Cargo (used for cargo vendor) [Robert Steiner]
  • Add new line. [Robert Steiner]
  • Small improvements. [Robert Steiner]
  • Add dockerignore. [Robert Steiner]
  • Add docker file. [Robert Steiner]
  • Implement http layer for the coordinator. [little-dude]
  • Bump dependencies. [little-dude]
  • Implement http api for the aggregator. [little-dude]
  • Merge pull request #20 from xainag/repo-setup. [Corentin Henry]
  • Add new line. [Robert Steiner]
  • Update gitignore, add rust toolchain. [Robert Steiner]
  • Implement AggregatorServiceHandle. [little-dude]
  • Small cleanup. [little-dude]
  • Very rough implementation of aggregation. [little-dude]
  • Rename rpc aggregator method: reset->aggregate. [little-dude]
  • Add Protocol.waiting_for_aggregation. [little-dude]
  • Add logging. [little-dude]
  • Use stubborn-io. [little-dude]
  • Split the aggregator out of the coordinator. [little-dude]
  • Dummy aggregator::main() implementation. [little-dude]
  • Start implementing the AggregatorService future. [little-dude]
  • Document the RPC module. [little-dude]
  • Implement spawn_rpc() [little-dude]
  • Documentation, comments and logging for AggregatorService. [little-dude]
  • More rpc work. [little-dude]
  • Add commented out code. [little-dude]
  • Rework crate structure. [little-dude]
  • Update README. [little-dude]
  • Implement AggregatorTarpcServiceHandle. [little-dude]
  • Add diagram of envisioned architecture. [little-dude]
  • More py_aggregator work. [little-dude]
  • Move PyAggregator to crate::aggregator. [little-dude]
  • Start playing around with pyo3. [little-dude]
  • Bump dependencies. [little-dude]
  • Split examples and binaries. [little-dude]
  • Clippy + rustfmt. [little-dude]
  • First steps with the aggregator service: rpc. [little-dude]
  • Update sequence diagram. [little-dude]
  • Add a "common" module. [little-dude]
  • More logs and use reasonable values for example. [little-dude]
  • Require T: Debug. [little-dude]
  • Add readme. [little-dude]
  • Quick & dirty client implementation. [little-dude]
  • Start working on an example and fixing issues. [little-dude]
  • Rename state_machine into protocol + various cleanups. [little-dude]
  • Add sanity checks for counters. [little-dude]
  • Add new() methods. [little-dude]
  • Simplify state machine. [little-dude]
  • Implement start training and end training. [little-dude]
  • Get rid of the StateMachinEventHandler trait. [little-dude]
  • Implement selection. [little-dude]
  • Add coordinator handle. [little-dude]
  • Remove unused imports. [little-dude]
  • State machine cleanups. [little-dude]
  • Impl StateMachineHandler for CoordinatorService. [little-dude]
  • Get rid of the Client wrapper. [little-dude]
  • Initial commit. [little-dude]
  • Archive the legacy code. [little-dude]