alaa_wmde added a comment.

  I finally got the time to pay attention to this task. I'm apparently too late 
to the party, for which I deeply apologize, esp. to @Pablo-WMDE and 
@Matthias_Geisler_WMDE who did ping me before in person to have a look, which I 
failed to do //for reasons//
  
  **tl;dr** Our goal is to not not create a delay for bridge hike on this 
technical matter as well as maximize the outcome of the discussions started 
here about sharing components in the future across hikes. So let's copy-paste 
and modify the component for the hike for now, and in-parallel put this/new 
task in Trailblazing-Exploration board to research and experiment with sharing 
components across projects.
  
  ----
  
  After reading all the comments, I will follow up on this from where 
@Pablo-WMDE has left it, with much appreciated effort to collect feedback and 
clarify the ambiguous with @Charlie_WMDE and @Hanna_Petruschat_WMDE. The 
conclusions, as far as the appear to the reader, are:
  
  1. "primaryprogressive" button component introduced in termbox was meant to 
be(have) exactly the same as OOUI per UX requirement.
  2. It easy to reason about making that button component a shared component, 
where shared here can be as far as sharing one and only code base for that 
component.
  3. However, in bridge case, the button need to appear inside a dialog header, 
in which the previously developed component in termbox has no account (nor had 
the requirement) for the extra special styling (no-corners) as OOUI button has 
when placed inside a dialog header.
  
  From engineering side, options I can see are one of two:
  
  1. **[cheapest for the moment, my recommendation]** do not share the 
component yet. Either start from scratch, or copy-paste the component from 
termbox into bridge and modify it in bridge as necessary. Even if that means 
the only modifier addition for border-less version.
  2. **[not that cheap initially, might be cheaper for future]** extract 
termbox component into a shared one, and add the modifier for the border-less 
in that version. That component now has its own stable interface for the 
outside world, in which adding the border-less version is viewed as just 
another feature to serve another user.
  
  Option 2 seems to have much higher initial cost and decision making efforts 
for the following reasons:
  
  1. it seems there's yet no official/reliable place out there for sharing vue 
components. This means we will have to figure out where to host these 
components, how to build, test and release them for use by external users on 
our own.
  2. we are still not that confident of whether that shared component would 
stand the test of time, in terms of its requirements and use-cases from UX 
side. It appears to be the same at the moment, but it is still quite simple so 
far. The risks here are:
    - more requirements to be added in the future to serve different needs, 
making the component over-complex
    - other projects creating their own components as the simple component 
cannot serve them enough, rendering this shared component redundant before it 
has proven to be useful for multiple users
  
  both risks mentioned in 2 are quite small .. though their impact on lost 
effort due to high initial cost of setting up things for it can be big.
  
  For bridge hike, option 1 is recommended for now as it:
  
  - has low cost atm following the simplest "reusing" technique, a.k.a 
copy-paste, of the existing component from termbox, and customizing it for its 
needs in the simplest way possible
  - postpones decisions such as: what that first shared component should do to 
serve different needs, how to be designed to do so, and how to do it 
technically (build/test/release), to a point in time when we are more confident 
about investing the initial costs having bigger decision to back it up such as: 
building a style-guide and conforming to it all future/past designs (which I 
feel we might want to do it at some point, but needs a little more discussions 
and alignment)
  - avoids overloading bridge hike with dealing and figuring out such technical 
matters, which sounds more appropriate to be addressed separately outside of 
its scope, in a trailblazing dedicated to look into it

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

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

To: Matthias_Geisler_WMDE, alaa_wmde
Cc: alaa_wmde, Hanna_Petruschat_WMDE, Lucas_Werkmeister_WMDE, Lydia_Pintscher, 
Charlie_WMDE, Jakob_WMDE, Michael, Aklapper, Pablo-WMDE, Hook696, Daryl-TTMG, 
RomaAmorRoma, 0010318400, E.S.A-Sheild, darthmon_wmde, Meekrab2012, 
joker88john, DannyS712, CucyNoiD, Nandana, NebulousIris, Gaboe420, Versusxo, 
Majesticalreaper22, Giuliamocci, Adrian1985, Cpaulf30, Lahi, Gq86, Af420, 
Darkminds3113, Bsandipan, Lordiis, GoranSMilovanovic, Adik2382, Th3d3v1ls, 
Ramalepe, Liugev6, QZanden, LawExplorer, WSH1906, Lewizho99, Maathavan, 
_jensen, rosalieper, Wikidata-bugs, aude, Mbch331
_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to