Open da1nerd opened 5 years ago
Let's change from using terminology of USFM 2 & USFM 3 to using USFM with & without alignments.
Since this will require changes to tS and tC, what should we do for older project support? We could:
@PhotoNomad0 tS is actually only generating usfm 2.
I just thought of a complication.
the tc and ts data is fundamentally differently in how it's organized. tS is prone to merge conflicts so we had a whole ui in the app to handle that. tC resolved that by timestamping everything so this was never an issue. but because of this difference we cannot actually support importing a whole project from tS to tC and vice versa. The best we can do is import some of the data out of the project. The biggest problem is with importing tS projects into tC. it will not be possible to maintain any of the tS metadata during that process without encountering eventual merge conflicts and corrupting the project. so we cannot do anything like moving a project from tS->tC->tS to do that would either require a) a complete overhaul of the tS project structure or b) add support to tC to handle merge conflicts :sweat:.
With all that in mind I'm back at my previous idea which was to simply add support for importing/exporting usfm and support merging that usfm with existing projects.
@neutrinog I thought tC supported merged conflicts. am I missing something ? @benjore @PhotoNomad0 @cckozie
@mannycolon I was not aware of that. Do you know how that works?
@RoyalSix Hey could talk a little bit about how we handle merged conflicts. I remember you worked on that feature.
@neutrinog tC does handle merged conflicts
After extensive discussion we have decided on the below solution. The tC issue for this at https://github.com/unfoldingWord-dev/translationCore/issues/5958
For both tools the following rules should be followed:
@neutrinog Under this scenario, what would the (flowchart) workflow look like for someone who wants to go back and forth between tS and tC on a daily basis?
@jag3773
So two different repositories will be regularly used.
OK, not ideal, but that should work. Thanks!
UPDATE: See new specification in this comment below.
Use case: translationCore and translationStudio need to be able to open and edit each other's projects.
Requirements
Proposal/Progress
TLTR; content changes will be shared through the top level usfm file.
.apps/translationStudio
./[lang]_[resource]_[book]_book.usfm
. For exampleen_ult_rut_book.usfm
generator
block in the manifest file for imported projects. e.g. projects exported/uploaded from tS will have a generator name ofts-desktop
, and projects exported/uploaded from tC will have a generator name oftc-desktop
.Here is a sample top level structure. This is what tC is currently using except for the extra
rut.usfm
file that it doesn't appear to use anyway. Note: in the case of tS projects therut
dir may not exist.Implementation
When importing a project into tC or tS the application should parse the top level usfm file and then just update the target translation with the data.
Final Remarks
The "bible burrito" is a new specification being developed that will replace both the ResourceContainer spec and the project formats in use with tC and tS. The proposal above is a temporary solution until the bible burrito can be completed and properly implemented.