On Sun, 12 Feb 2012 05:34:53 -0800, Jeroen De Dauw jeroendedauw@gmail.com wrote:
Hey,
I'm wondering about two things:
- When will we finally drop 5.2.x support?
- Can we have isolated components in core that require 5.3?
It's been one and a half years since the PHP guys dropped support for 5.2.x. What's still keeping us from doing so? Would dropping it in 1.20 work? That'll likely be in more then half a year from now, so over 2 years since PHP dropped support, which seems to be a very reasonable compatibility timespan (esp if you consider 5.3 will have been available for 3 years at that point). Personally I have not noticed the need for 5.2.x support in a while. 4 of my 6 last extensions require 5.3, and I only had a single person complain to me about this (which was over half a year ago IIRC). So it seems to me that people upgrading their wiki software have 5.3 already or have no problem with upgrading it.
My second question is about isolated utilities in core. With isolated I mean that although they might be using core, core does not use them. Can we at this point introduce such utilities that require 5.3, assuming there is good reason to have these utilities and that they cannot be made to work (sanely) with 5.2.x?
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. --
It would be lovely to drop 5.2 some day soon.
From what I can remember: - We have preg_replace_callback calls all over core which use callbacks in ways that make code harder to follow since it's the only way possible to implement them in 5.2. - Our MWTidy class has an entire extra MWTidyWrapper class [http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/parser/Tidy...], if we used 5.3 I would have NEVER wrote that code. I had to write that entire class just to work around the fact that we couldn't use closures. - Frankly, it would be nice to start using closures in hooks and extension callbacks. Instead of coming up with freakish function names and putting their names as callbacks. - I believe I've seen code that needed to use boilerplates in every subclass because we couldn't use LSB. - See r108194/r110124/r110126 and r109904/r109938, in continuing new code we've had to keep working around the fact that we can't use 5.3 features. - ;) It would be LOVELY to start using __DIR__.
((;) And the sooner we drop 5.2, the closer we get to one day being able to use 5.4 traits in RequestContext))