zed/crates/collab
Max Brunsfeld 6ebe599c98
Fix issues with extension API that come up when moving Svelte into an extension (#9611)
We're doing it. Svelte support is moving into an extension. This PR
fixes some issues that came up along the way.

Notes

* extensions need to be able to retrieve the path the `node` binary
installed by Zed
* previously we were silently swallowing any errors that occurred while
loading a grammar
* npm commands ran by extensions weren't run in the right directory
* Tree-sitter's WASM stdlib didn't support a C function (`strncmp`)
needed by the Svelte parser's external scanner
* the way that LSP installation status was reported was unnecessarily
complex

Release Notes:

- Removed built-in support for the Svelte and Gleam languages, because
full support for those languages is now available via extensions. These
extensions will be suggested for download when you open a `.svelte` or
`.gleam` file.

---------

Co-authored-by: Marshall <marshall@zed.dev>
2024-03-22 17:29:06 -07:00
..
k8s Assign OPENAI_API_KEY from a k8s secret in the collab deployment (#9703) 2024-03-22 08:36:52 -06:00
migrations remoting (#9680) 2024-03-22 08:44:56 -06:00
migrations.sqlite remoting (#9680) 2024-03-22 08:44:56 -06:00
src Fix issues with extension API that come up when moving Svelte into an extension (#9611) 2024-03-22 17:29:06 -07: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
basic.conf
Cargo.toml Make it (a tiny bit) easier to run your own collab (#9557) 2024-03-20 21:00:02 -06:00
LICENSE-AGPL
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.