chore: Bump collab (#5136)

* chore: bump collab

* chore: bump collab

* chore: bump collab

* chore: fix test

* chore: disable supabse test
This commit is contained in:
Nathan.fooo
2024-04-15 14:50:28 +08:00
committed by GitHub
parent e9e483291e
commit d758e62c1a
41 changed files with 633 additions and 232 deletions

View File

@ -3,7 +3,7 @@ use std::ops::{Deref, DerefMut};
use std::sync::Arc;
use anyhow::anyhow;
use collab::core::collab::{DocStateSource, MutexCollab};
use collab::core::collab::{DataSource, MutexCollab};
use collab::core::origin::{CollabClient, CollabOrigin};
use collab::preclude::Collab;
use collab_database::database::{
@ -222,7 +222,7 @@ where
let old_user_id = UserId::from(old_uid);
let old_folder = Folder::open(
old_user_id.clone(),
Arc::new(MutexCollab::from_collab(old_folder_collab)),
Arc::new(MutexCollab::new(old_folder_collab)),
None,
)
.map_err(|err| PersistenceError::InvalidData(err.to_string()))?;
@ -305,15 +305,10 @@ where
}
let origin = CollabOrigin::Client(CollabClient::new(new_uid, "phantom"));
let new_folder_collab = Collab::new_with_doc_state(
origin,
new_workspace_id,
DocStateSource::FromDisk,
vec![],
false,
)
.map_err(|err| PersistenceError::Internal(err.into()))?;
let mutex_collab = Arc::new(MutexCollab::from_collab(new_folder_collab));
let new_folder_collab =
Collab::new_with_source(origin, new_workspace_id, DataSource::Disk, vec![], false)
.map_err(|err| PersistenceError::Internal(err.into()))?;
let mutex_collab = Arc::new(MutexCollab::new(new_folder_collab));
let new_user_id = UserId::from(new_uid);
info!("migrated folder: {:?}", folder_data);
let _ = Folder::create(new_user_id, mutex_collab.clone(), None, folder_data);

View File

@ -265,11 +265,7 @@ async fn sync_folder(
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?
.doc_state;
(
MutexFolder::new(Folder::open(
uid,
Arc::new(MutexCollab::from_collab(collab)),
None,
)?),
MutexFolder::new(Folder::open(uid, Arc::new(MutexCollab::new(collab)), None)?),
doc_state,
)
};

View File

@ -2,6 +2,7 @@ use std::sync::Arc;
use collab::core::collab::MutexCollab;
use collab::core::origin::{CollabClient, CollabOrigin};
use collab::preclude::Collab;
use collab_document::document::Document;
use collab_document::document_data::default_document_data;
use collab_folder::{Folder, View};
@ -85,10 +86,16 @@ where
{
// If the document is not exist, we don't need to migrate it.
if load_collab(user_id, write_txn, &view.id).is_err() {
let collab = Arc::new(MutexCollab::new(origin.clone(), &view.id, vec![], false));
let collab = Arc::new(MutexCollab::new(Collab::new_with_origin(
origin.clone(),
&view.id,
vec![],
false,
)));
let document = Document::create_with_data(collab, default_document_data())?;
let encode = document
.get_collab()
.lock()
.encode_collab_v1(|_| Ok::<(), PersistenceError>(()))?;
write_txn.flush_doc_with(user_id, &view.id, &encode.doc_state, &encode.state_vector)?;
event!(

View File

@ -17,5 +17,5 @@ where
{
let collab = Collab::new(uid, object_id, "phantom", vec![], false);
collab.with_origin_transact_mut(|txn| collab_r_txn.load_doc_with_txn(uid, &object_id, txn))?;
Ok(Arc::new(MutexCollab::from_collab(collab)))
Ok(Arc::new(MutexCollab::new(collab)))
}

View File

@ -5,7 +5,7 @@ use crate::services::entities::UserPaths;
use crate::services::sqlite_sql::user_sql::select_user_profile;
use crate::user_manager::run_collab_data_migration;
use anyhow::anyhow;
use collab::core::collab::{DocStateSource, MutexCollab};
use collab::core::collab::{DataSource, MutexCollab};
use collab::core::origin::CollabOrigin;
use collab::core::transaction::DocTransactionExtension;
use collab::preclude::updates::decoder::Decode;
@ -465,10 +465,10 @@ where
W: CollabKVAction<'a>,
PersistenceError: From<W::Error>,
{
let collab = Collab::new_with_doc_state(
let collab = Collab::new_with_source(
CollabOrigin::Empty,
new_object_id,
DocStateSource::FromDocState(doc_state),
DataSource::DocStateV1(doc_state),
vec![],
false,
)?;
@ -503,7 +503,7 @@ where
let other_user_id = UserId::from(other_session.user_id);
let other_folder = Folder::open(
other_user_id,
Arc::new(MutexCollab::from_collab(other_folder_collab)),
Arc::new(MutexCollab::new(other_folder_collab)),
None,
)
.map_err(|err| PersistenceError::InvalidData(err.to_string()))?;

View File

@ -2,7 +2,7 @@ use std::sync::atomic::Ordering;
use std::sync::{Arc, Weak};
use anyhow::Context;
use collab::core::collab::{DocStateSource, MutexCollab};
use collab::core::collab::{DataSource, MutexCollab};
use collab_entity::reminder::Reminder;
use collab_entity::CollabType;
use collab_integrate::collab_builder::{AppFlowyCollabBuilder, CollabBuilderConfig};
@ -164,7 +164,7 @@ impl UserManager {
session.user_id,
&object_id,
collab_db,
DocStateSource::FromDocState(data),
DataSource::DocStateV1(data),
)
.await?;
MutexUserAwareness::new(UserAwareness::create(collab, None))
@ -177,7 +177,7 @@ impl UserManager {
session.user_id,
&object_id,
collab_db,
DocStateSource::FromDisk,
DataSource::Disk,
)
.await?;
MutexUserAwareness::new(UserAwareness::create(collab, None))
@ -210,7 +210,7 @@ impl UserManager {
uid: i64,
object_id: &str,
collab_db: Weak<CollabKVDB>,
doc_state: DocStateSource,
doc_state: DataSource,
) -> Result<Arc<MutexCollab>, FlowyError> {
let collab_builder = collab_builder.upgrade().ok_or(FlowyError::new(
ErrorCode::Internal,