HasanAkgun_WMDE added a comment.

  We have this great comparison table thanks to @Michael:
  
  |                                       | Copy'n'Paste                        
                                                                                
                                                                                
                                                                                
                                                                                
          | Use existing directly                                               
                        | Extract to Library                                    
                                                                                
                                                                                
                       |
  | Coupling                              | Coupling to Wikibase by using the 
`WikibaseRepo::getTermsLanguages()` service as opposed to 
`WikibaseRepo::getLanguageFallbackChainFactory()` service.                      
                                                                                
                                                                                
                                  | Coupling to Wikibase by using the 
`WikibaseRepo::getLanguageFallbackChainFactory()` service | Coupling to 
Wikibase by using the `WikibaseRepo::getTermsLanguages()` service as opposed to 
`WikibaseRepo::getLanguageFallbackChainFactory()` service. But other uses for 
that library could, in principle, use other languages as the base. |
  | future modifications of fallback code | We will have to keep our "copy" of 
the code in sync with changes made to Wikibase Fallback that are also desired 
in other instances that are supposed to follow fallback behavior of Wikibase 
Terms. Though those changes are done by another team, and we have to 1) notice, 
2) understand and 3) redo them.  => multiple sources of truth for the identical 
behavior logic. | Will likely be done by another team, our behavior stays in 
sync automatically.              | Will be done by another team. Depending on 
the way it is implemented, we either have to make sure to update our dependency 
on the library (git submodule), or have it done automatically (wikimedia 
vendor)                                  |
  | future modifications of ES            | unaffected as fallback is 
encapsulated behind a ES service                                                
                                                                                
                                                                                
                                                                                
                    | unaffected as fallback is encapsulated behind a ES 
service                                  | unaffected as fallback is 
encapsulated behind a ES service                                                
                                                                                
                                                   |
  | onboarding                            | They will have to learn two (or 
more) possibly subtly diverging but very similar implementations.               
                                                                                
                                                                                
                                                                                
              | If needed, they'll learn one implementation in the context 
where it was developed.          | If needed, they'll learn one implementation 
in the encapsulated context of a library                                        
                                                                                
                                 |
  |
  
  In addition to this:
  
  - It's possible to eliminate coupling with Wikibase by extracting term 
languages to a new package. (Thanks for mentioning @noarave)
  - When we encapsulate this fallback by creating a service interface, we can 
use it directly immediately and we can wait until the language fallback is 
extracted to a new package, then we can update our service without any side 
effects.

TASK DETAIL
  https://phabricator.wikimedia.org/T331999

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: HasanAkgun_WMDE
Cc: noarave, Michael, Jakob_WMDE, Lucas_Werkmeister_WMDE, WMDE-leszek, 
karapayneWMDE, Manuel, Aklapper, ItamarWMDE, Themindcoder, Adamm71, Jersione, 
Hellket777, LisafBia6531, Astuthiodit_1, 786, Biggs657, Invadibot, maantietaja, 
Juan90264, Alter-paule, Beast1978, Un1tY, Akuckartz, Hook696, Kent7301, 
pdehaye, joker88john, CucyNoiD, Nandana, Gaboe420, Giuliamocci, Cpaulf30, Lahi, 
Gq86, Af420, Bsandipan, Andrawaag, GoranSMilovanovic, QZanden, 
YULdigitalpreservation, LawExplorer, Salgo60, Lewizho99, Maathavan, _jensen, 
rosalieper, Neuronton, Scott_WUaS, MisterSynergy, abian, Wikidata-bugs, aude, 
Lydia_Pintscher, Mbch331
_______________________________________________
Wikidata-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to