On Feb 16, the FamilySearch Integration PR was opened:
I decided to start a discussion here, rather than on github, as I don’t think we all have agreed on exactly what the criteria for the integration is, and wanted to make sure that @SourceAirbender (and others) understood our agreed upon expectations.
First, a lot of work has already been done so far! Almost 19k lines of code.
My first concern is that almost all of the code is in gramps/gui/fs/. I think this would make the functionality difficult to use from, say, gramps-web. I would think the code should be separated in the same manor as the rest of Gramps: lib for object definitions, gen for other code. This would be a large refactor, and probably will take quite a bit of time to separate the GTK gui parts from the business logic of the rest.
The PR requires database changes (we also have another PR with schema changes, so we’ll have to coordinate those changes). But the upgrade code should be standalone in the gramps/gen/db/upgrade code, as it may require more changes in the future.
The schema change adds a new table. But it might make more sense to add that info as a JSON field in the Person table. That also allows added similar fields to other tables in the future.
It might make sense to break the PR into three or more parts: the database API, the objects, the algorithms, and the GTK code. We need tests at all three levels.
I know @Nick-Hall created GEPS 046: FamilySearch Integration - Gramps (and a feature request from 2009 0003377: Connect and synchronize Gramps with the FamilySearch API. - Gramps - Bugtracker – Free Genealogy Software) but there is very little information there.
I also wonder how easily this will be to maintain over the years.