You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Writing systems shared between vernacular and analysis get out of sync #2770
In FLEx a writing system code has one CoreWritingSystemDefinition, and the vernacular and analysis lists share it. The CRDT stores a separate WritingSystem row for each (code, type). When FW Lite edits or creates a writing system whose code is in both lists, FwDataMiniLcmApi writes the shared FLEx definition from one row and leaves the other CRDT row behind. After a sync, CRDT and FwData disagree.
Editing the analysis abbreviation also changes the FLEx vernacular abbreviation. The CRDT vernacular row only catches up on the next sync.
If the vernacular and analysis rows get conflicting edits, the analysis value wins because the analysis list is synced last. The vernacular edit is lost.
Creating a code as analysis when it already exists as vernacular overwrites the shared abbreviation in FLEx. CreateWritingSystem only checks for duplicates in the same list, then calls GetOrSet on the shared manager.
FW Lite can write two shared fields: Abbreviation and Font. The FwData update proxy ignores Name and collation. Order is per list, so it isn't affected.
Low priority. #2762 adds skipped tests in WritingSystemSyncTests that reproduce all three cases. Un-skip them when fixing this.
Activity
Skip shared writing system sync tests until sillsdev#2770 is fixed
Add failing sync tests for writing systems shared between vernacular …