mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-24 02:46:43 +00:00
Update documentation and handling to use a crates/collab/seed.json
(#10874)
Updates `collab` to accept a `seed.json` file that allows you to override the defaults. Updated the `README` in collab to just have directions inside instead of redirecting the developer to the website. Release Notes: - N/A Co-authored-by: Max <max@zed.dev>
This commit is contained in:
parent
ae3c641bbe
commit
efcd31c254
3 changed files with 52 additions and 5 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -6,7 +6,7 @@
|
|||
/plugins/bin
|
||||
/script/node_modules
|
||||
/crates/theme/schemas/theme.json
|
||||
/crates/collab/.admins.json
|
||||
/crates/collab/seed.json
|
||||
/assets/*licenses.md
|
||||
**/venv
|
||||
.build
|
||||
|
|
|
@ -6,7 +6,43 @@ It contains our back-end logic for collaboration, to which we connect from the Z
|
|||
|
||||
# Local Development
|
||||
|
||||
Detailed instructions on getting started are [here](https://zed.dev/docs/local-collaboration).
|
||||
## Database setup
|
||||
|
||||
Before you can run the collab server locally, you'll need to set up a zed Postgres database.
|
||||
|
||||
```
|
||||
script/bootstrap
|
||||
```
|
||||
|
||||
This script will set up the `zed` Postgres database, and populate it with some users. It requires internet access, because it fetches some users from the GitHub API.
|
||||
|
||||
The script will create several _admin_ users, who you'll sign in as by default when developing locally. The GitHub logins for the default users are specified in the `seed.default.json` file.
|
||||
|
||||
To use a different set of admin users, create `crates/collab/seed.json`.
|
||||
|
||||
```json
|
||||
{
|
||||
"admins": ["yourgithubhere"],
|
||||
"channels": ["zed"],
|
||||
"number_of_users": 20
|
||||
}
|
||||
```
|
||||
|
||||
## Testing collaborative features locally
|
||||
|
||||
In one terminal, run Zed's collaboration server and the livekit dev server:
|
||||
|
||||
```
|
||||
foreman start
|
||||
```
|
||||
|
||||
In a second terminal, run two or more instances of Zed.
|
||||
|
||||
```
|
||||
script/zed-local -2
|
||||
```
|
||||
|
||||
This script starts one to four instances of Zed, depending on the `-2`, `-3` or `-4` flags. Each instance will be connected to the local `collab` server, signed in as a different user from `seed.json` or `seed.default.json`.
|
||||
|
||||
# Deployment
|
||||
|
||||
|
|
|
@ -20,9 +20,20 @@ OPTIONS
|
|||
const { spawn, execFileSync } = require("child_process");
|
||||
const assert = require("assert");
|
||||
|
||||
const users = require(
|
||||
process.env.SEED_PATH || "../crates/collab/seed.default.json",
|
||||
).admins;
|
||||
let users;
|
||||
if (process.env.SEED_PATH) {
|
||||
users = require(process.env.SEED_PATH).admins;
|
||||
} else {
|
||||
users = require("../crates/collab/seed.default.json").admins;
|
||||
try {
|
||||
const defaultUsers = users;
|
||||
const customUsers = require("../crates/collab/seed.json").admins;
|
||||
assert(customUsers.length > 0);
|
||||
users = customUsers.concat(
|
||||
defaultUsers.filter((user) => !customUsers.includes(user)),
|
||||
);
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
const RESOLUTION_REGEX = /(\d+) x (\d+)/;
|
||||
const DIGIT_FLAG_REGEX = /^--?(\d+)$/;
|
||||
|
|
Loading…
Reference in a new issue