zed/crates/zed2
Piotr Osiewicz 6da57cbc6e
Decouple workspace from call (#3380)
This PR decouples `call2` from `workspace2` in order to improve our
compile times.
Why pick such a small, innocent crate as `call`? It depends on
`live_kit_client`, which is not-so-innocent and is in fact stalling our
clean builds.
In this PR, `call2` depends on `workspace2`; workspace crate defines a
`CallHandler` trait for which the implementation resides in `call`; it
it then all tied together in `zed`, which passes a factory of `Box<dyn
CallHandler>` into workspace's `AppState`.
Clean debug build before this change: ~1m45s
Clean debug build after this change: ~1m25s

Clean release build before this change: ~6m30s
Clean release build after this change: ~4m30s

~Gonna follow up with release timings where I expect the change to be
more impactful (as this allows 2/3 of the infamous trio of
"project-workspace-editor" long pole to proceed quicker, without being
blocked on live-kit-client build script)~.
This should have little effect (if any) in incremental scenarios, where
live_kit_client is already built.
[release
timings.zip](https://github.com/zed-industries/zed/files/13431121/release.timings.zip)

Release Notes:
- N/A
2023-11-22 22:31:47 +01:00
..
contents Fix bundle script 2023-11-17 17:44:41 -08:00
resources WIP 2023-10-21 17:52:47 +02:00
src Decouple workspace from call (#3380) 2023-11-22 22:31:47 +01:00
build.rs Make the commit sha availabe in the app, via a global 2023-11-17 14:52:43 -08:00
Cargo.toml Merge remote-tracking branch 'origin/callback-handles' into search2 2023-11-21 00:40:20 +01:00