Main changes
* Compatible with Indexify CLI and SDK 0.2.42
* Change: Images built by the SDK are not allocated to executors by a version anymore but by an image hash representing the content of the image. Better diagnostic error message provided to help troubleshoot.
* Feature: The executor now starts functions in sub-processes to support different function versions.
* Feature: Graph invocations now run on the same version of the graph until completion. This prevents impacting running invocations during a graph deployment.
* Feature: Graph now accept a list of tags that is displayed on the UI.
* Feature: SDK defaults to JSON logging unless started with the --dev flag
* Feature: Server can now be configured to expose open-telemetry traces.
* Fix: Various reducer function edge cases were addressed.
What's Changed
* chore(dead code): remove unused invocation_finished on scheduler TaskCreationResult by seriousben in https://github.com/tensorlakeai/indexify/pull/1078
* fix(server): Stop continuing reducing if a reducer parent failed by seriousben in https://github.com/tensorlakeai/indexify/pull/1080
* feat(sdk): improved dict function output and positional arguments support by seriousben in https://github.com/tensorlakeai/indexify/pull/1084
* Remove not used file indexify/executor/image_dependency_installer.py by eabatalov in https://github.com/tensorlakeai/indexify/pull/1082
* feat(sdk): structured logging for the executor by seriousben in https://github.com/tensorlakeai/indexify/pull/1086
* Preparing release 0.2.39 by seriousben in https://github.com/tensorlakeai/indexify/pull/1087
* feat: include an optional list of tags when deploying a compute graph by miguelhrocha in https://github.com/tensorlakeai/indexify/pull/1083
* Preparing release 0.2.40 by miguelhrocha in https://github.com/tensorlakeai/indexify/pull/1088
* feat(tracing): open-telemetry traces by seriousben in https://github.com/tensorlakeai/indexify/pull/1039
* test(sdk): add coverage for returning a list mapping to args/kwargs by seriousben in https://github.com/tensorlakeai/indexify/pull/1089
* Image build fixes by j3m7 in https://github.com/tensorlakeai/indexify/pull/1091
* fix(server): make image_uri optional by seriousben in https://github.com/tensorlakeai/indexify/pull/1094
* feat(ui): exposing SDK version on graph cards by seriousben in https://github.com/tensorlakeai/indexify/pull/1095
* feat: ensure invocations stay on the same graph version until completion by seriousben in https://github.com/tensorlakeai/indexify/pull/1093
* fix(sdk): stop end nodes becoming routers on validation by seriousben in https://github.com/tensorlakeai/indexify/pull/1096
* Add tests for function cold and warm start durations by eabatalov in https://github.com/tensorlakeai/indexify/pull/1097
* Update cold start duration test threshold to 2 sec by eabatalov in https://github.com/tensorlakeai/indexify/pull/1099
* Implement Function Executor in a separate process by eabatalov in https://github.com/tensorlakeai/indexify/pull/1098
* Host Executor uses Functions Executor processes to run customer functions by eabatalov in https://github.com/tensorlakeai/indexify/pull/1102
* fix(server): make graph versioning backward compatible by falling back on compute graph for latest by seriousben in https://github.com/tensorlakeai/indexify/pull/1101
* Calculate and embed image hash by j3m7 in https://github.com/tensorlakeai/indexify/pull/1103
* Refactor: address style comments from previous Function Executor PR by eabatalov in https://github.com/tensorlakeai/indexify/pull/1104
* Build Indexify python-sdk using `make build` in GH Actions by eabatalov in https://github.com/tensorlakeai/indexify/pull/1105
* feat(server): allocate by image hash instead of version by seriousben in https://github.com/tensorlakeai/indexify/pull/1106
* Move everything related to fetching tasks from server into its own class by eabatalov in https://github.com/tensorlakeai/indexify/pull/1107
* Terminate Indexify processes in the end of GH Action test runs by eabatalov in https://github.com/tensorlakeai/indexify/pull/1108
* fix(server): fix support for unversioned code download by seriousben in https://github.com/tensorlakeai/indexify/pull/1109
* preparing release server=0.2.13 sdk=0.2.41 by seriousben in https://github.com/tensorlakeai/indexify/pull/1110
* fix(sdk): fix to support python 3.10 by seriousben in https://github.com/tensorlakeai/indexify/pull/1111
* chore(CI): testing releasing building on PRs by seriousben in https://github.com/tensorlakeai/indexify/pull/1114
**Full Changelog**: https://github.com/tensorlakeai/indexify/compare/v0.2.12...v0.2.13