Current Situation:
The Wikibase Suite team wants to cater for Wikibase Suite users' needs the best and most efficient way possible for all parts involved (users and in-house team). Since Wikibase Suite users have some very different needs to other Wikibase users, the functionalities we design and build for them will most likely not serve other wikibase users.
Our current system to add functionalities to our wikibase suite bundle is based on the mediawiki extension mechanism. This makes it very flexible for developers but also cumbersome for other types of users since:
- each one of the extensions needs to be managed on its own
- if we, from the team, want to add some configuration to make some of extension management easier for our users this code will be part of the bundle core, making the bundle less modularised. Furthermore, changing any of that config would mean making a full release (for the in-house team) and a full update (for the wikibase suite users)
Goal:
The Wikibase Suite team wants to offer a robust mechanism to add, remove, enable, disable and customise added functionalities optimising for:
- easy management for all added functionality from the user's side
- the mechanism needs to be easily and efficiently improved and maintained by the in-house team
- the in-house team can easily add new functionalities to the bundle
- any user can easily add their self-implemented functionalities to their wikibase suite installation. We would not give support for the functionality in this case but we would make it possible and document how to do it if wished.
Expected Output:
- Detailed description of the mechanism we want to use signed off by Engineering team and PM and UX:
- on a high level perspective
- from the engineering perspective
- Needed tickets (whether user stories, epics or other types) that represent the steps we need to take and implement
[optional] Notes:
- At this point we understand under "management of added functionalities" the ability to install, uninstall, enable, disable and, if needed, customise them.
[optional] Open Questions:
- for after we know more of what we want to build ==> assuming that we are creating something new and from scratch:
- where do we want to store the code? GitHub? GitLab? other?
- which technologies do we want to use? (ideally technologies among the skills of the current team)