Combine sync15 and sync15-traits
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
sync15functionality canl be deleted or moved intosync-manager - Any remaining functionality could be moved into
sync15-traitsand put behind a feature flag that desktop doesn't enable. - We could consider renaming
sync15-traitsat that point, maybe tosync15-typesor maybe justsync15?
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