X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FDefaultSettings.php;h=5b3684b3364f679f13e929db6408ab87b6c45931;hb=a30bc4f7e0b8a2d310217741dc41f76129c26019;hp=49503594eee37b1c3bff4a3bac49d40d7f453e43;hpb=3bb9384aeefa055a6ef1a6446ad49ee1017389f1;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 49503594ee..5b3684b336 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -585,10 +585,9 @@ $wgLockManagers = []; * Requires PHP's Exif extension: http://www.php.net/manual/en/ref.exif.php * * @note FOR WINDOWS USERS: - * To enable Exif functions, add the following lines to the "Windows + * To enable Exif functions, add the following line to the "Windows * extensions" section of php.ini: * @code{.ini} - * extension=extensions/php_mbstring.dll * extension=extensions/php_exif.dll * @endcode */ @@ -981,6 +980,27 @@ $wgCustomConvertCommand = false; */ $wgJpegTran = '/usr/bin/jpegtran'; +/** + * At default setting of 'yuv420', JPEG thumbnails will use 4:2:0 chroma + * subsampling to reduce file size, at the cost of possible color fringing + * at sharp edges. + * + * See https://en.wikipedia.org/wiki/Chroma_subsampling + * + * Supported values: + * false - use scaling system's default (same as pre-1.27 behavior) + * 'yuv444' - luma and chroma at same resolution + * 'yuv422' - chroma at 1/2 resolution horizontally, full vertically + * 'yuv420' - chroma at 1/2 resolution in both dimensions + * + * This setting is currently supported only for the ImageMagick backend; + * others may default to 4:2:0 or 4:4:4 or maintaining the source file's + * sampling in the thumbnail. + * + * @since 1.27 + */ +$wgJpegPixelFormat = 'yuv420'; + /** * Some tests and extensions use exiv2 to manipulate the Exif metadata in some * image formats. @@ -2170,7 +2190,7 @@ $wgLanguageConverterCacheType = CACHE_ANYTHING; * given, giving a callable function which will generate a suitable cache object. */ $wgObjectCaches = [ - CACHE_NONE => [ 'class' => 'EmptyBagOStuff' ], + CACHE_NONE => [ 'class' => 'EmptyBagOStuff', 'reportDupes' => false ], CACHE_DB => [ 'class' => 'SqlBagOStuff', 'loggroup' => 'SQLBagOStuff' ], CACHE_ANYTHING => [ 'factory' => 'ObjectCache::newAnything' ], @@ -2190,12 +2210,12 @@ $wgObjectCaches = [ 'loggroup' => 'SQLBagOStuff' ], - 'apc' => [ 'class' => 'APCBagOStuff' ], - 'xcache' => [ 'class' => 'XCacheBagOStuff' ], - 'wincache' => [ 'class' => 'WinCacheBagOStuff' ], + 'apc' => [ 'class' => 'APCBagOStuff', 'reportDupes' => false ], + 'xcache' => [ 'class' => 'XCacheBagOStuff', 'reportDupes' => false ], + 'wincache' => [ 'class' => 'WinCacheBagOStuff', 'reportDupes' => false ], 'memcached-php' => [ 'class' => 'MemcachedPhpBagOStuff', 'loggroup' => 'memcached' ], 'memcached-pecl' => [ 'class' => 'MemcachedPeclBagOStuff', 'loggroup' => 'memcached' ], - 'hash' => [ 'class' => 'HashBagOStuff' ], + 'hash' => [ 'class' => 'HashBagOStuff', 'reportDupes' => false ], ]; /** @@ -2224,27 +2244,24 @@ $wgMainWANCache = false; * * The format is an associative array where the key is a cache identifier, and * the value is an associative array of parameters. The "cacheId" parameter is - * a cache identifier from $wgObjectCaches. The "relayerConfig" parameter is an - * array used to construct an EventRelayer object. The "pool" parameter is a - * string that is used as a PubSub channel prefix. The "loggroup" parameter - * controls where log events are sent. + * a cache identifier from $wgObjectCaches. The "channels" parameter is a map of + * actions ('purge') to PubSub channels defined in $wgEventRelayerConfig. + * The "loggroup" parameter controls where log events are sent. * * @since 1.26 */ $wgWANObjectCaches = [ CACHE_NONE => [ - 'class' => 'WANObjectCache', - 'cacheId' => CACHE_NONE, - 'pool' => 'mediawiki-main-none', - 'relayerConfig' => [ 'class' => 'EventRelayerNull' ] + 'class' => 'WANObjectCache', + 'cacheId' => CACHE_NONE, + 'channels' => [] ] /* Example of a simple single data-center cache: - 'memcached-php' => array( - 'class' => 'WANObjectCache', - 'cacheId' => 'memcached-php', - 'pool' => 'mediawiki-main-memcached', - 'relayerConfig' => array( 'class' => 'EventRelayerNull' ) - ) + 'memcached-php' => [ + 'class' => 'WANObjectCache', + 'cacheId' => 'memcached-php', + 'channels' => [ 'purge' => 'wancache-main-memcached-purge' ] + ] */ ]; @@ -2288,7 +2305,7 @@ $wgSessionsInObjectCache = true; $wgObjectCacheSessionExpiry = 3600; /** - * @deprecated since 1.27, MediaWiki\\Session\\SessionManager doesn't use PHP session storage. + * @deprecated since 1.27, MediaWiki\Session\SessionManager doesn't use PHP session storage. */ $wgSessionHandler = null; @@ -2590,6 +2607,13 @@ $wgCdnMaxageLagged = 30; */ $wgCdnReboundPurgeDelay = 0; +/** + * Cache timeout for the CDN when a response is known to be wrong or incomplete (due to load) + * @see $wgSquidMaxage + * @since 1.27 + */ +$wgCdnMaxageSubstitute = 60; + /** * Default maximum age for raw CSS/JS accesses * @@ -4563,6 +4587,7 @@ $wgDefaultUserOptions = [ 'watchcreations' => 1, 'watchdefault' => 1, 'watchdeletion' => 0, + 'watchuploads' => 1, 'watchlistdays' => 3.0, 'watchlisthideanons' => 0, 'watchlisthidebots' => 0, @@ -5896,7 +5921,7 @@ $wgStatsdServer = false; /** * Prefix for metric names sent to $wgStatsdServer. * - * @see RequestContext::getStats + * @see MediaWikiServices::getStatsdDataFactory * @see BufferingStatsdDataFactory * @since 1.25 */ @@ -6480,6 +6505,10 @@ $wgUnwatchedPageThreshold = false; * 'legend' => 'legend-msg', * // optional (defaults to 'flag'), CSS class to put on changes lists rows * 'class' => 'css-class', + * // optional (defaults to 'any'), how top-level flag is determined. 'any' + * // will set the top-level flag if any line contains the flag, 'all' will + * // only be set if all lines contain the flag. + * 'grouping' => 'any', * ); * @endcode * @@ -6490,23 +6519,27 @@ $wgRecentChangesFlags = [ 'letter' => 'newpageletter', 'title' => 'recentchanges-label-newpage', 'legend' => 'recentchanges-legend-newpage', + 'grouping' => 'any', ], 'minor' => [ 'letter' => 'minoreditletter', 'title' => 'recentchanges-label-minor', 'legend' => 'recentchanges-legend-minor', 'class' => 'minoredit', + 'grouping' => 'all', ], 'bot' => [ 'letter' => 'boteditletter', 'title' => 'recentchanges-label-bot', 'legend' => 'recentchanges-legend-bot', 'class' => 'botedit', + 'grouping' => 'all', ], 'unpatrolled' => [ 'letter' => 'unpatrolledletter', 'title' => 'recentchanges-label-unpatrolled', 'legend' => 'recentchanges-legend-unpatrolled', + 'grouping' => 'any', ], ]; @@ -6546,12 +6579,6 @@ $wgRightsText = null; */ $wgRightsIcon = null; -/** - * Set this to some HTML to override the rights icon with an arbitrary logo - * @deprecated since 1.18 Use $wgFooterIcons['copyright']['copyright'] - */ -$wgCopyrightIcon = null; - /** * Set this to true if you want detailed copyright information forms on Upload. */ @@ -6884,6 +6911,21 @@ $wgAuth = null; */ $wgHooks = []; +/** + * List of service wiring files to be loaded by the default instance of MediaWikiServices. + * Each file listed here is expected to return an associative array mapping service names + * to instantiator functions. Extensions may add wiring files to define their own services. + * However, this cannot be used to replace existing services - use the MediaWikiServices + * hook for that. + * + * @see MediaWikiServices + * @see ServiceContainer::loadWiringFiles() for details on loading service instantiator functions. + * @see docs/injection.txt for an overview of dependency injection in MediaWiki. + */ +$wgServiceWiringFiles = [ + __DIR__ . '/ServiceWiring.php' +]; + /** * Maps jobs to their handling classes; extensions * can add to this to provide custom jobs @@ -7223,12 +7265,36 @@ $wgActionFilteredLogs = [ 'reblock' => [ 'reblock' ], 'unblock' => [ 'unblock' ], ], + 'contentmodel' => [ + 'change' => [ 'change' ], + 'new' => [ 'new' ], + ], 'delete' => [ 'delete' => [ 'delete' ], 'restore' => [ 'restore' ], 'event' => [ 'event' ], 'revision' => [ 'revision' ], ], + 'import' => [ + 'interwiki' => [ 'interwiki' ], + 'upload' => [ 'upload' ], + ], + 'managetags' => [ + 'create' => [ 'create' ], + 'delete' => [ 'delete' ], + 'activate' => [ 'activate' ], + 'deactivate' => [ 'deactivate' ], + ], + 'move' => [ + 'move' => [ 'move' ], + 'move_redir' => [ 'move_redir' ], + ], + 'newusers' => [ + 'create' => [ 'create', 'newusers' ], + 'create2' => ['create2' ], + 'autocreate' => [ 'autocreate' ], + 'byemail' => [ 'byemail' ], + ], 'patrol' => [ 'patrol' => [ 'patrol' ], 'autopatrol' => [ 'autopatrol' ], @@ -7237,6 +7303,18 @@ $wgActionFilteredLogs = [ 'protect' => [ 'protect' ], 'modify' => [ 'modify' ], 'unprotect' => [ 'unprotect' ], + 'move_prot' => ['move_prot'], + ], + 'rights' => [ + 'rights' => [ 'rights' ], + 'autopromote' => [ 'autopromote' ], + ], + 'suppress' => [ + 'event' => [ 'event' ], + 'revision' => [ 'revision' ], + 'delete' => [ 'delete' ], + 'block' => [ 'block' ], + 'reblock' => [ 'reblock' ], ], 'upload' => [ 'upload' => [ 'upload' ], @@ -7755,9 +7833,9 @@ $wgUpdateRowsPerQuery = 100; /** * Name of the external diff engine to use. Supported values: - * * false: default PHP implementation, DairikiDiff + * * false: default PHP implementation * * 'wikidiff2': Wikimedia's fast difference engine implemented as a PHP/HHVM module - * * 'wikidiff3': newer PHP-based difference engine + * * 'wikidiff' and 'wikidiff3' are treated as false for backwards compatibility * * any other string is treated as a path to external diff executable */ $wgExternalDiffEngine = false; @@ -8000,7 +8078,7 @@ $wgPopularPasswordFile = __DIR__ . '/../serialized/commonpasswords.cdb'; $wgMaxUserDBWriteDuration = false; /** - * Mapping of event channels to EventRelayer configuration. + * Mapping of event channels (or channel categories) to EventRelayer configuration. * * By setting up a PubSub system (like Kafka) and enabling a corresponding EventRelayer class * that uses it, MediaWiki can broadcast events to all subscribers. Certain features like WAN @@ -8008,7 +8086,13 @@ $wgMaxUserDBWriteDuration = false; * subscribe to the channel and take actions based on the events. For example, a local daemon * can run on each CDN cache node and perfom local purges based on the URL purge channel events. * - * The 'default' channel is for all channels without an explicit entry here. + * Some extensions may want to use "channel categories" so that different channels can also share + * the same custom relayer instance (e.g. when it's likely to be overriden). They can use + * EventRelayerGroup::getRelayer() based on the category but call notify() on various different + * actual channels. One reason for this would be that some system have very different performance + * vs durability needs, so one system (e.g. Kafka) may not be suitable for all uses. + * + * The 'default' key is for all channels (or channel categories) without an explicit entry here. * * @since 1.27 */