zed/crates/collab
Marshall Bowers 83ce783856
Respect version constraints when installing extensions (#10052)
This PR modifies the extension installation and update process to
respect version constraints (schema version and Wasm API version) to
ensure only compatible versions of extensions are able to be installed.

To achieve this there is a new `GET /extensions/updates` endpoint that
will return extension versions based on the provided constraints.

Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
2024-04-01 17:10:30 -04:00
..
k8s Enable Claude 3 models to be used via the Zed server if "language-models" feature flag is enabled for user (#10015) 2024-03-31 15:57:57 -06:00
migrations Add telemetry events for loading extensions (#9793) 2024-03-25 17:30:48 -04:00
migrations.sqlite Add telemetry events for loading extensions (#9793) 2024-03-25 17:30:48 -04:00
src Respect version constraints when installing extensions (#10052) 2024-04-01 17:10:30 -04:00
.env.toml Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
admin_api.conf Run postgrest as part of foreman 2023-09-13 12:32:15 -07:00
basic.conf Rename zed-server to collab 2022-04-09 08:30:42 -06:00
Cargo.toml Enable Claude 3 models to be used via the Zed server if "language-models" feature flag is enabled for user (#10015) 2024-03-31 15:57:57 -06:00
LICENSE-AGPL chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
README.md remoting (#9680) 2024-03-22 08:44:56 -06:00
seed.default.json Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00

Zed Server

This crate is what we run at https://collab.zed.dev.

It contains our back-end logic for collaboration, to which we connect from the Zed client via a websocket after authenticating via https://zed.dev, which is a separate repo running on Vercel.

Local Development

Detailed instructions on getting started are here.

Deployment

We run two instances of collab:

Both of these run on the Kubernetes cluster hosted in Digital Ocean.

Deployment is triggered by pushing to the collab-staging (or collab-production) tag in Github. The best way to do this is:

  • ./script/deploy-collab staging
  • ./script/deploy-collab production

You can tell what is currently deployed with ./script/what-is-deployed.

Database Migrations

To create a new migration:

./script/create-migration <name>

Migrations are run automatically on service start, so run foreman start again. The service will crash if the migrations fail.

When you create a new migration, you also need to update the SQLite schema that is used for testing.