As a Wikibase maintainer, I would like to see a proof of concept for storing shared Repo-Client logic inside WikibaseClient extension, as well as know the benefits and risks/challenges of this approach, so that I can determine and judge whether this is an appropriate mid-term solution or not.
There has been an idea suggested to move all logic shared between Repo and Client (currently and Lib and "data access") to Client.
This is not meant to be a permanent solution, but a pragmatic trick to simplify the complexity. Overall goal is to make Repo and Client completely independent from each other.
The shared logic would be put in the a dedicated section of Client, and there will be infrastructure (e.g. "structure test") disallowing Repo using any logic from client apart from the "shared" package.
The idea is pretty rough draft so far. In order for the team to be able to elaborate and reason about this idea in more detail, it would be good to have some more specific draft of the suggestion. This way the team could weigh the benefit and challenges/risks, and define a more detailed path forward
Acceptance criteria:
- Draft (free form - not the complete code implementation) of the proposed approach exists and is linked from this task
- List of benefits and challenges/risks for the proposed solution is created and linked from this task
Possible aproach
- One possible form of the first AC would be a Gerrit change, though a proof-of-concept one that wouldn’t be merged. In order to keep that change small, we would not move code outside of the lib/ directory or the \Wikibase\Lib namespace yet, only move the registration of that code from WikibaseLib to WikibaseClient.
- There could also be a draft of an ADR describing the intended solution (possibly coming together with the POC code change described above)
Timebox: 12 person hours for the team to distribute