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
|
/plugins/bin
|
||||||
/script/node_modules
|
/script/node_modules
|
||||||
/crates/theme/schemas/theme.json
|
/crates/theme/schemas/theme.json
|
||||||
/crates/collab/.admins.json
|
/crates/collab/seed.json
|
||||||
/assets/*licenses.md
|
/assets/*licenses.md
|
||||||
**/venv
|
**/venv
|
||||||
.build
|
.build
|
||||||
|
|
|
@ -6,7 +6,43 @@ It contains our back-end logic for collaboration, to which we connect from the Z
|
||||||
|
|
||||||
# Local Development
|
# 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
|
# Deployment
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,20 @@ OPTIONS
|
||||||
const { spawn, execFileSync } = require("child_process");
|
const { spawn, execFileSync } = require("child_process");
|
||||||
const assert = require("assert");
|
const assert = require("assert");
|
||||||
|
|
||||||
const users = require(
|
let users;
|
||||||
process.env.SEED_PATH || "../crates/collab/seed.default.json",
|
if (process.env.SEED_PATH) {
|
||||||
).admins;
|
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 RESOLUTION_REGEX = /(\d+) x (\d+)/;
|
||||||
const DIGIT_FLAG_REGEX = /^--?(\d+)$/;
|
const DIGIT_FLAG_REGEX = /^--?(\d+)$/;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue