Michael Daly wrote:
I noticed a minor item with respect to the use of Tidy on Windows machines.
Windows binaries for PHP usually include Tidy by default. Unlike other OS versions, the Windows users don't take an active role in including or excluding Tidy.
In DefaultSettings.php for version 1.12 (looking ahead a bit), I noticed that the global for internal Tidy is set by testing for the inclusion of the internal Tidy extension in PHP. Parser.php will perform a check on whether internal Tidy is available and selects that in preference to external Tidy. Hence, if LocalSettings.php is set to use Tidy, it gets internal Tidy by default.
If the admin doesn't realize that internal Tidy is in PHP and/or prefers to use external Tidy (for whatever reason), he will be surprised that external is not used unless he explicitly resets the internal Tidy flag to false.
Personally, I find this a "surprising" default setting. I would expect the internal Tidy flag to be false by default.
I haven't put this in as a bug, since I'd prefer to see if others think this is not an issue.
PS - since internal Tidy has been knackered in Parser.php from 1.7 to 1.11 inclusive (it only had PHP4 functions), I assume that internal Tidy is not something most developers/admins think much about. Hence this change in Parser.php for 1.12 might not have been thought out in terms of all OSes being used.
I only really considered Windows when I made this change, so I'm not sure why you think it's anti-Windows. Is there some problem with php_tidy.dll that I don't know about? I've been using without any problems.
The internal tidy works out of the box on Windows. The external tidy will typically need configuration of $wgTidyBin. Why do you think it's more surprising to use the reliable internal tidy than to ignore it and fail due to a missing external tidy?
-- Tim Starling