Antonio Scandurra
7bbd97cfb9
Send diagnostic summaries synchronously
2022-12-05 19:07:06 +01:00
Antonio Scandurra
5443d9cffe
Return project collaborators and connection IDs in a RoomGuard
2022-12-05 18:37:01 +01:00
Antonio Scandurra
be3fb1e985
Update sea-orm to fix bug on failure to commit transactions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-12-05 18:36:25 +01:00
Antonio Scandurra
b97c35a468
Remove project_id foreign key from room_participants
2022-12-05 15:16:06 +01:00
Antonio Scandurra
eec3df09be
Upgrade sea-orm
2022-12-05 14:56:01 +01:00
Antonio Scandurra
d3c411677a
Remove random pauses to prevent the database from deadlocking
2022-12-05 12:03:45 +01:00
Antonio Scandurra
d97a8364ad
Retry transactions if there's a serialization failure during commit
2022-12-05 10:49:53 +01:00
Antonio Scandurra
0ed731780a
Remove duplication between transaction
and room_transaction
2022-12-05 09:46:03 +01:00
Julia
11c1254e71
Merge pull request #1924 from zed-industries/simon-says-dont-move
...
Do not reorder tab opened by follower to end of item list
2022-12-04 13:00:07 -05:00
Kay Simmons
1cc3e4820a
working serialized writes with panics on failure. Everything seems to be working
2022-12-03 16:06:01 -08:00
Mikayla Maki
992b94eef3
Rebased to main
2022-12-03 16:06:01 -08:00
Kay Simmons
d20d21c6a2
Dock persistence working!
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-12-03 16:06:01 -08:00
Kay Simmons
c1f7902309
wip
2022-12-03 16:06:01 -08:00
Mikayla Maki
4798161118
Distributed database pattern built.
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:06:01 -08:00
Mikayla Maki
a5edac312e
Moved to workspaces crate... don't feel great about it
2022-12-03 16:05:26 -08:00
Mikayla Maki
3451a3c7fe
Rebase - Got Zed compiling and fixed a build error due to conflicting dependencies that cargo didn't catch :(
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:04:10 -08:00
Julia
4bc1d77535
Fix tab following order test to wait for file open to propagate
...
Now it can actually repro the original bug
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 16:09:37 -05:00
Antonio Scandurra
d96f524fb6
WIP: Manually rollback transactions to avoid spurious savepoint failure
...
TODO:
- Avoid unwrapping transaction after f(tx)
- Remove duplication between `transaction` and `room_transaction`
- Introduce random delay before and after committing a transaction
- Run lots of randomized tests
- Investigate diverging diagnostic summaries
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 20:36:50 +01:00
Antonio Scandurra
1c30767592
Remove stale Error
variant
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 19:20:51 +01:00
Antonio Scandurra
969c314315
Merge branch 'main' into reconnections-2
2022-12-02 19:09:33 +01:00
Antonio Scandurra
568de814aa
Delete empty rooms
2022-12-02 16:56:41 +01:00
Antonio Scandurra
27f6ae945d
Clear stale data on startup
...
This is a stopgap measure until we introduce reconnection support.
2022-12-02 16:30:00 +01:00
Antonio Scandurra
1b46b7a7d6
Move modules into collab
library as opposed to using the binary
...
This ensures that we can use collab's modules from the seed script
as well.
2022-12-02 14:37:52 +01:00
Antonio Scandurra
7502558631
Make all tests pass again after migration to sea-orm
2022-12-02 14:22:36 +01:00
Antonio Scandurra
48b6ee313f
Use i32 to represent Postgres INTEGER
types in Rust
2022-12-02 13:58:54 +01:00
Antonio Scandurra
dec5f37e4e
Finish porting remaining db methods to sea-orm
2022-12-02 13:58:23 +01:00
Julia
239a04ea5b
Add test that should have exercised tab reordering while following
...
Except it doesn't, it passes both with and without the prior commit.
Investigate further
2022-12-02 00:31:16 -05:00
Antonio Scandurra
585ac3e1be
WIP
2022-12-01 18:39:24 +01:00
Antonio Scandurra
29a4baf346
Replace i32 with u32 for database columns
...
We never expect to return signed integers and so we shouldn't use
a signed type. I think this was a limitation of sqlx.
2022-12-01 17:47:51 +01:00
Antonio Scandurra
cfdf0a57b8
Implement Database::update_project
2022-12-01 17:36:36 +01:00
Antonio Scandurra
944d6554de
Implement Database::unshare_project
2022-12-01 16:26:13 +01:00
Antonio Scandurra
e3ac67784a
Implement Database::project_guest_connection_ids
2022-12-01 16:23:29 +01:00
Antonio Scandurra
62624b81d8
Avoid using col_expr
whenever possible
...
...and use the more type-safe `::set`.
2022-12-01 16:17:27 +01:00
Antonio Scandurra
256e3e8e0f
Get basic calls working again with sea-orm
2022-12-01 16:17:24 +01:00
Antonio Scandurra
aebc6326a9
Implement Database::create_room
2022-12-01 15:22:20 +01:00
Antonio Scandurra
db1d93576f
Go back to a compiling state, panicking on unimplemented db methods
2022-12-01 15:13:57 +01:00
Antonio Scandurra
d2385bd6a0
Start using the new sea-orm backed database
2022-12-01 14:41:59 +01:00
Antonio Scandurra
19d14737bf
Implement signups using sea-orm
2022-12-01 11:58:07 +01:00
Antonio Scandurra
4f864a20a7
Implement invite codes using sea-orm
2022-12-01 11:10:51 +01:00
Antonio Scandurra
2375741bdf
Implement db2::Database::fuzzy_search_users
2022-12-01 10:09:53 +01:00
Max Brunsfeld
d70996bb99
collab 0.2.5
2022-11-30 14:10:10 -08:00
Antonio Scandurra
4c04d512db
Implement db2::Database::remove_contact
2022-11-30 17:39:17 +01:00
Antonio Scandurra
d1a44b889e
Implement contacts using sea-orm
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-30 17:36:25 +01:00
Antonio Scandurra
04d553d4d3
Implement db2::Database::get_user_metrics_id
2022-11-30 15:06:04 +01:00
Antonio Scandurra
2e24d128db
Implement access tokens using sea-orm
2022-11-30 14:47:03 +01:00
Antonio Scandurra
9e59056e7f
Implement db2::Database::get_user_by_github_account
2022-11-30 14:18:46 +01:00
Antonio Scandurra
d9a892a423
Make some db tests pass against the new sea-orm implementation
2022-11-30 12:13:16 +01:00
Joseph T. Lyons
3a1cd6ed3a
Merge pull request #1913 from zed-industries/Add-column-to-signups-for-added-to-mailing-list
...
Add "added_to_mailing_list" column on signups table
2022-11-29 19:30:11 -05:00
Antonio Scandurra
b7294887c7
WIP: move to a non-generic test database struct
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
Co-Authored-By: Julia Risley <julia@zed.dev>
2022-11-29 19:20:11 +01:00
Joseph Lyons
049c0f8ba4
Order invites by creation time
2022-11-29 12:57:51 -05:00
Antonio Scandurra
11a39226e8
Start on a new db2
module that uses SeaORM
2022-11-29 16:49:04 +01:00
Antonio Scandurra
ac24600a40
Start moving towards using sea-query to construct queries
2022-11-29 13:55:08 +01:00
Antonio Scandurra
d525cfd697
Increase probability of creating new files in randomized test
2022-11-29 11:02:14 +01:00
Joseph Lyons
4436ec48eb
Add "added_to_mailing_list" column on signups table
2022-11-29 02:13:13 -05:00
Antonio Scandurra
0a565c6bae
💄
2022-11-28 17:44:18 +01:00
Antonio Scandurra
cd0b663f62
Introduce per-room lock acquired before committing a transaction
2022-11-28 17:00:47 +01:00
Antonio Scandurra
b0e1d6bc7f
Fix integration test incorrectly assuming a certain ordering
2022-11-28 13:57:15 +01:00
Antonio Scandurra
ae11e4f798
Check the correct serialization failure code when retrying transaction
2022-11-28 13:56:03 +01:00
Antonio Scandurra
4c1b4953c1
Remove version from Room
...
We won't need it once we add the per-room lock.
2022-11-18 20:18:48 +01:00
Antonio Scandurra
c3d556d9bd
Don't take an Arc<Server>
in message handlers
2022-11-18 11:45:42 +01:00
Max Brunsfeld
5020c70a04
collab 0.2.4
2022-11-17 11:44:29 -08:00
Antonio Scandurra
44bb2ce024
Rename Store
to ConnectionPool
2022-11-17 19:03:59 +01:00
Antonio Scandurra
6c83be3f89
Remove obsolete code from Store
2022-11-17 18:46:39 +01:00
Antonio Scandurra
0a4517f97e
WIP: Introduce a db
field to Session
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-17 17:30:26 +01:00
Antonio Scandurra
c34a5f3177
Introduce a new Session
struct to server message handlers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-17 17:11:06 +01:00
Antonio Scandurra
4f39181c4c
Revert "Don't replace newer diagnostics with older ones"
...
This reverts commit 71eeeedc05
.
2022-11-17 16:57:40 +01:00
Antonio Scandurra
e7e45be6e1
Revert "Wait for previous UpdateFollowers
message ack before sending new ones"
...
This reverts commit fe93263ad4
.
2022-11-17 16:57:32 +01:00
Antonio Scandurra
8621c88a3c
Use int8 for scan_id
and inode
in Postgres
2022-11-17 16:56:43 +01:00
Antonio Scandurra
7dae21cb36
🎨
2022-11-17 15:35:18 +01:00
Antonio Scandurra
0f4598a243
Fix seed script
2022-11-17 15:34:35 +01:00
Antonio Scandurra
6415809b61
Fix errors in Postgres schema
2022-11-17 15:34:12 +01:00
Antonio Scandurra
fe93263ad4
Wait for previous UpdateFollowers
message ack before sending new ones
2022-11-17 14:12:00 +01:00
Antonio Scandurra
3b34d858b5
Remove unwrap from Server::share_project
2022-11-17 13:33:26 +01:00
Antonio Scandurra
71eeeedc05
Don't replace newer diagnostics with older ones
2022-11-17 12:21:51 +01:00
Antonio Scandurra
532a599239
Use Db::get_guest_connection_ids
in other db methods
2022-11-17 11:38:00 +01:00
Nathan Sobo
9eee22ff0a
Fix column name in query
2022-11-16 19:40:53 -07:00
Nathan Sobo
94fe93c6ee
Move unshare_project to db module
2022-11-16 18:28:45 -07:00
Nathan Sobo
e5f05c9f3b
Move leave_project from Store to db module
2022-11-16 17:45:47 -07:00
Nathan Sobo
bdb521cb6b
Fix typo in query
2022-11-16 16:52:05 -07:00
Joseph Lyons
c613c98e37
Move comment to correct location
2022-11-16 17:28:50 -05:00
Antonio Scandurra
adf43c87dd
Batch some of the new queries in Db
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-16 17:19:06 +01:00
Antonio Scandurra
faf265328e
Wait for acknowledgment before sending the next diagnostic summary
2022-11-16 16:03:01 +01:00
Antonio Scandurra
9bc57c0c61
Move Store::start_language_server
to Db
2022-11-16 15:48:26 +01:00
Antonio Scandurra
95369f92eb
Move Store::update_diagnostic_summary
to Db
2022-11-16 15:41:33 +01:00
Antonio Scandurra
117458f4f6
Send worktree updates after project metadata has been sent
2022-11-16 14:58:11 +01:00
Antonio Scandurra
eeb32fa888
Improve queries for composite primary keys
2022-11-16 11:07:39 +01:00
Antonio Scandurra
f9567ae116
Cascade deletes when project is deleted
2022-11-16 10:41:36 +01:00
Antonio Scandurra
c151c87e12
Correctly leave projects when leaving room
2022-11-16 10:36:48 +01:00
Antonio Scandurra
3190236396
Update worktree entry instead of erroring when it already exists
2022-11-16 08:57:19 +01:00
Joseph Lyons
c3cf056fc5
allow users to sign up multiple times without throwing a 500
2022-11-15 20:04:56 -05:00
Nathan Sobo
275f0ae492
collab 0.2.3
2022-11-15 15:45:04 -07:00
Nathan Sobo
fdf758e050
Once we email someone an invite, honor the invitation
...
Previously, we were waiting to decrement the invite_count until a user
confirmed their email address, which created weird situations where we would
email people only to have them get a 500 when trying to sign up. Now, we
decrement the invite_count upon sending the email and always honor the
invitation.
Co-Authored-By: Joseph Lyons <joseph@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-11-15 15:36:59 -07:00
Antonio Scandurra
0817f905a2
Fix syntax error in schema
2022-11-15 18:02:07 +01:00
Antonio Scandurra
ad67f5e4de
Always use the database to retrieve collaborators for a project
2022-11-15 17:49:37 +01:00
Antonio Scandurra
e9eadcaa6a
Move Store::update_worktree
to Db::update_worktree
2022-11-15 17:18:28 +01:00
Antonio Scandurra
4b1dcf2d55
Always use strings to represent paths over the wire
...
Previously, the protocol used a mix of strings and bytes without any consistency.
When we go to multiple platforms, we won't be able to mix encodings of paths anyway.
We don't know this is the right approach, but it at least makes things consistent
and easy to read in the database, on the wire, etc. Really, we should be using entry
ids etc to refer to entries on the wire anyway, but there's a chance this is the
wrong decision.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:46:17 +01:00
Antonio Scandurra
974ef967a3
Move Store::join_project
to Db::join_project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:37:51 +01:00
Antonio Scandurra
be523617c9
Start reworking join_project
to use the database
2022-11-15 11:44:26 +01:00
Antonio Scandurra
6cbf197226
Determine whether a contact is busy via the database
2022-11-15 10:41:21 +01:00
Antonio Scandurra
3e8fcb04f7
Finish implementing Db::update_project
2022-11-15 09:01:51 +01:00