Record schema: serialise with a version, and the additions R1b/R2 need

Open
#47 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
csharp
Domain
backend

Research direction

Start with the API section of the review report and the referenced RecordFileWriter.cs location, then trace RecordSchema, ToJsonSchema(), R1b, and the R2 partial-root resolution work. The issue bundles serialization, schema kinds, identity and path decisions, and an async adapter, so first clarify scope and design decisions with the maintainers. Done means these decisions and changes are implemented and documented; no specific tests are named.

Written by the indexing model from the issue text.

Description

textediting

From the review of PR sillsdev/SIL.TextEditing#147 (H:\work\gdr-design-20261102\reports\te-review-record-frame.md), API section. Do before or with R1b (SIL.TextEditing.Project).

  • RecordSchema is data but not serialisable: move ToJson/FromJson into the library with a version field (Q54': savable beside an export). ToJsonSchema() is one-way and loses Paragraphs, the ws default and rich vs reference.
  • Additive kinds: ordered vs unordered sequences (seq vs col); owned objects of several classes (class:); a read-only/computed: marker.
  • Identity: partial roots are index-only and a #field partial cannot carry a GUID (RecordFileWriter.cs:74); allow a GUID in root or guid: in field partials; R2 resolves partial roots against base. Decide outline-number paths (senses/1.2) here too.
  • INotationChecker is synchronous while ITextLanguageService is async: add an adapter that accepts only services that answer at once, documented.
Dominant language
C#
Stars
1
Forks
0
Avg merge
3h 55m
Merged PRs (30d)
36

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sillsdev/motif

All issues in sillsdev/motif

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.