On Fri, Jul 19, 2013 at 11:44 AM, Jeroen De Dauw <jeroendedauw(a)gmail.com>wrote;wrote:
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