Current configuration on the wiki
Find a file
Timo Tijhof 6b2a7fd4b1 resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries
Wiki modules are special due to their isKnownEmpty implementation and support
for foreign databases. MediaWiki doesn't have convenient ways of making
Revision objects for remote wikis. As such, wiki modules will keep using meta
data to generate the hash.

However minimise needless cache invalidation by refining the implementation.

Impact:
* Remove use of getMsgBlobMtime(). This module doesn't support getMessages().
* In the title info, use the revision content sha1 and size for tracking.
  The page_touched previously used updates too often. It's updated both on edits
  for various types of purges. Using the rev_sha1 means old versions return
  when the content is the same. Regardless of how the content changed via
  revert or actual edits resulting in the same contnet.
* Change in-process cache to be keyed by page list instead of entire
  ResourceLoaderContext.
  Because of this, getTitleInfo() was previously performing its batch query
  twice on the same page. Once for only=styles (top) and only=scripts (bottom).
  Both operate on the full getPages() set but had different context keys.

Clean up:
* Better document the support for foreign databases.
* Move Title construction to getContent to reduce duplication.
* Remove use of getDefinitionMtime(). That method is a no-op since the switch
  to version hashing.
* Remove remaining use of mtime in getModifiedTime(). This is now covered by
  hashing the title info in getDefinitionSummary().

Also refactor the code to be more readable. No intended change in behaviour.

Bug: T98087
Change-Id: Id46740db04c0c42bc5ca87d1487230a32feb34df
2015-06-05 00:43:46 +01:00
cache
docs Merge "Deprecate $wgEnableParserCache" 2015-06-04 18:33:29 +00:00
extensions
images Add FollowSymLinks option to /images .htaccess rule 2014-12-05 22:50:36 +00:00
includes resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries 2015-06-05 00:43:46 +01:00
languages language: Use item 'fallbackSequence' instead of duplicating logic 2015-06-04 17:45:12 +00:00
maintenance Merge "Combine deleteArchived{Files,Revisions}.inc into the .php scripts" 2015-06-03 00:05:52 +00:00
mw-config Check for dependencies in entry point and Maintenance.php 2015-05-23 15:05:11 +00:00
resources Merge "Revert "Add 'mediawiki.skinning.logo' module"" 2015-06-04 16:16:59 +00:00
serialized
skins Merge "Get to the point about howto download Vector :p" 2014-12-13 18:14:39 +00:00
tests resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries 2015-06-05 00:43:46 +01:00
.gitattributes
.gitignore gitignore: Add /images/cache 2015-05-12 02:45:17 +01:00
.gitreview
.jscsrc test: Remove several jscs over-rides and make the code pass 2015-02-16 11:53:52 -08:00
.jshintignore
.jshintrc Create mediawiki.widgets and mw.widgets.TitleInputWidget in it 2015-05-31 20:01:06 +02:00
.mailmap mailmap: Add an additional e-mail for Bartosz per request 2015-05-31 13:01:39 -07:00
.rubocop.yml Fixed Style/StringLiterals RuboCop offense 2015-03-23 18:52:13 +00:00
.travis.yml Enable Travis CI for PostgreSQL 2014-11-07 19:17:09 +00:00
api.php Refactored entry points to have uniform shutdown handling 2015-05-29 20:40:46 +00:00
api.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
autoload.php Merge "Move XmlSelect to its own file" 2015-06-03 03:34:35 +00:00
composer.json composer.json: Downgrade PHPUnit to 3.7.37 (temporarily) 2015-05-28 21:37:21 -07:00
COPYING
CREDITS Add Vivek Ghaisas (polybuildr) to the CREDITS file 2015-05-29 23:04:30 +03:00
FAQ
Gemfile QA: Upgrade mediawiki_selenium to 1.2 for Raita logging 2015-05-30 12:47:33 +00:00
Gemfile.lock QA: Upgrade mediawiki_selenium to 1.2 for Raita logging 2015-05-30 12:47:33 +00:00
Gruntfile.js build: Increase qunit browserNoActivityTimeout from 10s to 60s 2015-03-20 08:27:16 +00:00
HISTORY Move 1.25 Release Notes to HISTORY 2015-05-25 12:14:27 +00:00
img_auth.php Refactored entry points to have uniform shutdown handling 2015-05-29 20:40:46 +00:00
img_auth.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
index.php Check for dependencies in entry point and Maintenance.php 2015-05-23 15:05:11 +00:00
index.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
INSTALL RELEASE-NOTES: Increase minimum MySQL version to 5.0.3 2015-03-23 20:16:45 -04:00
jsduck.json Follow-up 727454f: Add mediawiki.widgets to jsduck 2015-06-01 16:33:21 -07:00
load.php Refactored entry points to have uniform shutdown handling 2015-05-29 20:40:46 +00:00
load.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
opensearch_desc.php wfRunHooks() -> Hooks::run() in remaining entry point files 2015-04-27 21:37:20 -07:00
opensearch_desc.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
package.json build: Bump various devDependencies 2015-05-01 23:00:45 +00:00
profileinfo.php Generate valid HTML code on error pages 2015-02-09 12:04:05 +00:00
profileinfo.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
README Update README from [[mw:README]] 2014-12-07 10:53:12 -05:00
README.mediawiki
RELEASE-NOTES-1.26 Merge "Deprecate $wgEnableParserCache" 2015-06-04 18:33:29 +00:00
StartProfiler.sample Fixed class name typo in docs 2015-04-02 17:43:37 -07:00
thumb.php Refactored entry points to have uniform shutdown handling 2015-05-29 20:40:46 +00:00
thumb.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
thumb_handler.php
thumb_handler.php5 Deprecate .php5 file extension 2015-04-22 11:54:58 -07:00
UPGRADE
wiki.phtml

== MediaWiki ==

MediaWiki is a free and open-source wiki software package written in PHP. It
serves as the platform for Wikipedia and the other projects of the Wikimedia
Foundation, which deliver content in over 280 languages to more than half a
billion people each month. MediaWiki's reliability and robust feature set have
earned it a large and vibrant community of third-party users and developers.

MediaWiki is:

* feature-rich and extensible, both on-wiki and with hundreds of extensions;
* scalable and suitable for both small and large sites;
* simple to install, working on most hardware/software combinations; and
* available in your language.

For system requirements, installation, and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.

* Ready to get started?
** https://www.mediawiki.org/wiki/Download
* Looking for the technical manual?
** https://www.mediawiki.org/wiki/Manual:Contents
* Seeking help from a person?
** https://www.mediawiki.org/wiki/Communication
* Looking to file a bug report or a feature request?
** https://bugs.mediawiki.org/
* Interested in helping out?
** https://www.mediawiki.org/wiki/How_to_contribute

MediaWiki is the result of global collaboration and cooperation. The CREDITS
file lists technical contributors to the project. The COPYING file explains
MediaWiki's copyright and license (GNU General Public License, version 2 or
later). Many thanks to the Wikimedia community for testing and suggestions.