application-services icon indicating copy to clipboard operation
application-services copied to clipboard

Combine sync15 and sync15-traits

Open bendk opened this issue 3 years ago • 0 comments

Have both of these as separate crates adds extra complexity to the API. For example #5083 changed things so that sync15 re-exports some of the sync15-traits functions, this means that sync15 now has 2 error types Error and the re-exported SyncTraitsError.

The main functionality that sync15 adds over sync15-traits are standalone sync engines, which are only used on iOS and we want to replace that with SyncManager. The main reason that they are separate crates is for desktop. Desktop doesn't want to pull in all the dependencies of sync15 so it just depends on sync15-traits.

Once iOS uses SyncManager, we should consider take a pass at trying to consolidate this code:

  • At that point, a lot of of the sync15 functionality canl be deleted or moved into sync-manager
  • Any remaining functionality could be moved into sync15-traits and put behind a feature flag that desktop doesn't enable.
  • We could consider renaming sync15-traits at that point, maybe to sync15-types or maybe just sync15?

We could also do this work earlier, but it better to wait until we don't need to support standalone sync engines since that will make the task a lot easier.

┆Issue is synchronized with this Jira Task

bendk avatar Aug 09 '22 14:08 bendk