On Fri, Jul 19, 2013 at 11:44 AM, Jeroen De Dauw jeroendedauw@gmail.comwrote:
Hey,
What if you want to use wikibase 1.23 and MyAbominationExtension 1.5 that
requires an incompatible version of DataValues and MyAwesomeExtension 1.0 that requires an incompatible version of ValueView?
If you have releases of certain software that have requirements that cannot satisfied together, then you cannot install them together. That is a pretty inherent property of incompatible software.
Yes, but the only requirement right now is "Am I using the correct version of this extension with this version of MediaWiki?" and you're adding in a whole new set of incompatibilities. You're really not thinking of this from the perspective of the person using the software.
As a user, when I run into such a situation, what I want to know is which versions of the software I am interested in I can install together. That is, after being told the latest releases do not work together. Sounds like we need some kind of package management :) In case of the components created for Wikidata, we have been supporting Composer for a while now, which is a great fit to our needs.
"We" in this situation is Wikidata and not the developer community. In fact, there were a number of threads about composer with no consensus and a number of objections. So, what you're saying is that the Wikidata team has made a decision on behalf of the community?
I attempted to install Wikibase the other day and made a fun discovery.
Installing it properly requires the following (12) extensions:
That is somewhat inaccurate, and is misleading with regard to Wikibase installation. Nevertheless, the concerns you bring up are certainly relevant, and currently not really tackled well in the MediaWiki community. That is to bad, as it encourages people to inappropriately bundle things and throw re usability out of the window (plus causing a long list of other problems).
The solution to this isn't to sneak a requirement in without consensus....
Also, it's poor architecture to split things into a large number of small pieces in anticipation of reuse. It's better to split things apart when there's a need.
Something that's being sidestepped here is that extensions are being used as a means to avoid getting things reviewed for core. Quite a few of these extensions should just be core functionality or they shouldn't exist.
- Ryan