Commit graph

817 commits

Author SHA1 Message Date
Aaron Schulz
a29ee00f1a [LockManager] Moved ScopedLock to its own file.
Change-Id: I7430604d3a23a25e8b82036b022336a73cbbc996
2012-12-14 13:08:05 -08:00
parent5446
69ea440003 Changed LoginForm::addNewaccountInternal() to return Status.
Rather than calling mainLoginForm() and returning false,
the addNewaccountInternal() function now returns a Status
on failure. mainLoginForm() is then called in addNewAccount()
and addNewAccountMailPassword() instead. This allows for
processing of the account creation form without submitting
anything to $wgOut.

Change-Id: I402c6bebcfe276233cc1f9e16efbe55a034b2181
2012-12-13 19:00:53 +00:00
Aaron Schulz
cbc28d41ae Moved ExternalStore stuff to a /externalstore subdir.
Change-Id: If631040d8242354734280403258ed5d51542728d
2012-12-10 12:43:42 -08:00
Antoine Musso
86f895bfe3 Revert UIDGenerator commits.
Changes seemed to be merged without anyone really looking at it
and the authorship in git is wrong as well. All related changes
can later be batched as one commit.

Following commit / change are reverted:

 - 7ac3edd https://gerrit.wikimedia.org/r/36803
 - 036d03b https://gerrit.wikimedia.org/r/36813
 - 2b168e3 https://gerrit.wikimedia.org/r/36812
 - 6030d92 https://gerrit.wikimedia.org/r/36801

See wikitech-l thread
http://lists.wikimedia.org/pipermail/wikitech-l/2012-December/064801.html

Change-Id: Ie39fde2ee4121372b6d790943f306e56fbacc2b5
2012-12-05 09:52:20 -08:00
Patrick Reilly
036d03bab9 fix sort order
Change-Id: I07e29fbdae88ce5164ba4fb60dbb597dbc2c4dcf
2012-12-04 12:19:45 -08:00
Patrick Reilly
2b168e3e06 Add UIDGenerator to AutoLoader
Change-Id: I288eef52590033002d7e36f0ca2f667f46dd6aec
2012-12-04 12:13:48 -08:00
Aaron Schulz
5ef62175bf [JobQueue] Improved refreshLinks/htmlCacheUpdate job de-duplication.
* Added JobQueue::deduplicateRootJob() function which uses cache
  records of the last time a "root" job was initiated for a task
  in order to invalidate prior jobs for that task. For refreshLinks,
  the "task" is basically "enqueueing the refresh jobs for title X".
* (bug 27914) Also added new Job::getDeduplicationFields() function
  and made use of it with refreshLinks to exclude things like 'masterPos'
  from duplicate job check comparisons for refreshLinks.
* (bug 27914) Always resolve refreshLinks2 jobs down to refreshLinks jobs.
  For each affected pages, one of them will get their job popped
  first, which will remove the duplicates for that page unless
  one page is in a refreshLinks2 jobs and the other in refreshLinks.
* (bug 37731) Made LinksUpdate/HTMLCacheUpdate defer the large
  backlinks query by doing it in an outer job.
* (bug 42065) HTMLCacheUpdate will no longer purge pages that were
  already purged since the job was added.

Change-Id: I71b743e0a38e60a874ca856e80cb761bea06b689
2012-11-28 09:29:41 +00:00
Aaron Schulz
12b76fcabb Made BackLinkCache use object caching better.
* This way, we can actually get persistent cache hits for
the HTMLCacheUpdate queries rather than always hitting a DB.
* Also moved BacklinkCache under the /cache directory.

Change-Id: I0666ee575fb42675f1a7dd9cb52665f0a12a66a9
2012-11-27 09:41:50 -08:00
Demon
35c222b736 Merge "Base class for objects accessign databases." 2012-11-27 17:37:53 +00:00
daniel
1c4cc095b5 Base class for objects accessign databases.
DBAccessBase provides utility methods for DB access, including
access to other wiki's databases.

Change-Id: I3c23a5c6e49e4921d48fddd72f2cf28ad1d13a58
2012-11-27 17:52:38 +01:00
awjrichards
720a682425 Merge "Kill DeviceDetection" 2012-11-26 20:57:11 +00:00
Jan Gerber
b80bd6159b [FileBackend] Added support for changing headers on existing objects.
* Added a 'describe' file operation type to doOperations()/doQuickOperations().
  This can be used by scripts to fill in headers like X-Content-Duration for
  files that already exists.
* Removed wrong comments about removing headers (they don't get removed with null).
* Added some quick unit tests.

Change-Id: I43c5907b59421beaa9487eefac0cdbf8bc6c6d85
2012-11-20 16:07:28 -08:00
Max Semenik
56f4c805ac Kill DeviceDetection
The project to integrate MobileFrontend into core has
been stashed for now, and this leftoff is preventing
further work on MF by creating a class name conflict.

Change-Id: I6a9a25877bf75496fb4074acc83e12b7cb8dd86a
2012-11-15 19:57:00 +04:00
Timo Tijhof
7c6c05a459 (bug 41833) Test: Add AutoLoaderTest.
* Move scattered pieces from tests/* in main AutoLoader.php
  into tests/TestsAutoLoader.php.
  Verified with:
  'ack -Q i --ignore-dir tests/phpunit/ <classname>'
  on mediawiki/core that these classes are not used outside
  tests/phpunit/.

* Moved entry for maintenance/backup.inc to the main AutoLoader.

* Refactored assertion logic in maintenance/checkAutoLoader.php
  into a public static method used in it's execute method
  and in the (new) AutoLoaderTest suite.

* The new test was immediately failing, added missing classes
  and removed old ones that don't exist.

  And CheckAutoLoader itself, so that it can actually be used
  in AutoLoaderTest.php

* Per discussion on Gerrit, moved the logic into the unit test
  instead of refactoring the maintenance script, we no longer
  need the maintenance script.

* Fixed the regex to also detect abstract, final and interface.
  The test was failing badly, claiming many classes did not
  exist.

* Improved the logic to also catch entries in the AutoLoader
  configuration for inexisting classes in existing files.
  So far it only catched entries with wrong files and missing
  entries for classes in known files.
  An entry like "BlablaSomethingHere => includes/Action.php"
  did not emit any kind of warning. The refactored logic
  builds a reverse index and uses a simple assertEquals to
  find any inconsistencies (whatever the cause).

Change-Id: I0a307f23175d52345180cdfc7c2d5e172536be1b
2012-11-10 18:36:13 +01:00
Alexandre Emsenhuber
38bcc15fea Update AutoLoader
Remove non-existing Uri class and add missing MWContentSerializationException class.

Change-Id: I8a0c4d42d8e4e7a80a5155ad8b1dd51c73dc3f05
2012-11-03 10:10:44 +01:00
Nikerabbit
31069e3989 Merge "Use LogFormatter to format rights log." 2012-11-01 18:51:09 +00:00
Aaron Schulz
e2cac9d977 [JobQueue] Added a test job that just replaces itself.
Change-Id: I257d68099660a9c95e68f7662ae8d5cf1ebefe27
2012-10-31 12:47:52 -07:00
Reedy
cc18322559 Back out config table and related code
Change-Id: I4fa180d45984a4ec2b2c7b1149015c6dad14c5f0
2012-10-29 15:17:24 +00:00
Timo Tijhof
a4aef7d495 Fix warnings and enforce conventions in ContentHandler tests.
Syntax:
* Call parent setUp from setUp.
* Set required globals for the test inside the test class instead
  of assuming the default settings.
* Data providers are called statically and outside setUp/tearDown
  ("public static function")
* Test function names should be prefixed with "test"
  ("testIsRedirect")
* Marked 2 functions as unused. JavascriptContentTest has 2 data
  providers for tests that don't exist in it (nor in TextContentText)
  but do exist in WikitextContentTest.

Style:
* Single quotes
* Remove odd comment "# =====" lines
* Consistent tree wrapping with arrays.
  array(
      array(
          .. ) );
  array(
      array(
          ..
      )
  );
  Some were closing on the previous line instead.
  Made it consistent now.
* Remove odd indentation to make nested arrays line up:
  array( 'foo' => array(  'bar' => true,
                          'baz' => array() ) )
  array( 'foo' => array(
      'bar' => true,
      'baz' => array()
  ) )

  We don't do this kind of indentation because it is fragile
  and becomes outdates when any of the earlier keys ("foo")
  change. Converted to a regular tree instead.

  Also triggered git warnings for mixing spaces with tabs, which
  is almost always an detector for this style.

* Not using @annotations in inline comments, reserved (and only
  parsed/meaningful) for block comments.

Follows-up 8b568be5e2

Change-Id: Ic55d539b9a58f448b550bcd98894d389764e0694
2012-10-25 22:37:32 +02:00
Aaron Schulz
f555a1922f Moved core Job classes under includes/job/jobs.
Change-Id: I9257bb0fce9791190f731d72b2e882a1ae400f35
2012-10-22 17:25:58 -07:00
Alexandre Emsenhuber
4c69cd3ad6 Use LogFormatter to format rights log.
* Has to keep actual messages for IRC notification
* Catch really old log entries with no parameters and use an
  appropriate message in that case to not always display erroneous
  "X changed group membership for Y from (none) to (none)".

Change-Id: Ie188bc6fcdf672fe31f0f389a158aab6256031fa
2012-10-22 19:28:32 +02:00
jeroendedauw
bccf2755d4 Moved ContentHandler deriving classes into their own files for better discoverability and more manageable line count per file
Change-Id: I37db53e1d1420e61d3af4566322bcdba85ec778b
2012-10-16 20:20:43 +02:00
jeroendedauw
d455598c94 Adding a base query API module that allows very easily creating query modules for tables that have an associated ORMTable class
Change-Id: I4a68e4b014ed093779312c2493b492687947c170
2012-10-16 14:59:58 +02:00
ASchulz
b567f3602e [JobQueue] Job queue refactoring and generalizing.
* Added support for different queue types and methods for storing queues.
* Treat each job type as being on its own queue, at least logically.
* Added $wgJobTypeConf to configure queue types for each job type.
* Improved the job DB table so that duplicate job checks actually work
  and are faster. Also improved the method for popping rows of the table.
* Disabled duplicate job removal for everything except refreshLinks.
  The DELETE statements just add DB overhead and are not useful for cheap
  jobs, especially ones with start/end params (which are unlikely to have
  exact duplicates).

Change-Id: I49824c7fa855fea4ddcac5c9901ece8c2c0101d0
2012-10-16 09:39:58 +11:00
daniel
41b0a79455 Support plain text content.
Made TextContent and TextContentHandler usable directly.
CONTENT_MODEL_TEXT is unused in core, but may be used by extensions.

Change-Id: I8963c968800b98e286cd917a1038a9905b3a0fef
2012-10-14 23:27:00 +00:00
Alex Monk
05e2913931 includes/ContentHandler.php does not exist, it's includes/content/ContentHandler.php
Change-Id: Ib3fef967913546ce2ae5de8ae4bc93fa40f4c146
2012-10-14 22:42:54 +01:00
umherirrender
fb2c1c645b Add separate fa_sha1 field to filearchive table
This allows sha1 searches with the api in miser mode for deleted files

Added script to populate the rows
Adding new field to selects and handle it in all places, where needed

Using a 10 byte index for the new field per
http://lists.wikimedia.org/pipermail/wikitech-l/2012-September/063429.html

Change-Id: Ie54a513fe361202e63df44be44a0fdd91926c974
2012-10-14 20:58:25 +02:00
jeroendedauw
7389d7c690 Added sites functionality, a much more generic and flexible version of the existing interwiki code
This code is meant to replace the current interwiki code, but does not do so just yet. It is however used by the Wikibase extension. This allows us to try out some more things and have the code stabilize more before we migrate over existing interwiki functionality.

Change-Id: I23c47c2c3909a1500350fb560a5f2ec654e2c37e
2012-10-12 17:47:44 +02:00
daniel
bb51a58e57 Cleanup of Wikidata branch.
This cleans up several issues raised in comments to I3b2dad3a,
mostly style and merge artifacts.

Change-Id: I99f5e300a671db1353db151cd187ffd2e4478d03
2012-10-08 17:34:47 +02:00
daniel
c546fae8ed merge latest master into Wikidata branch
Change-Id: Id4e0f40c03679c13d8934a6add99b5cd86d0437d
2012-10-08 13:58:54 +02:00
umherirrender
992c38b9f1 Remove autoloader for deprecated Database class
Follow up: I8e7549e6

Change-Id: Id71be89434d77558b48456d111c4a03faefc5e74
2012-10-06 10:21:24 +02:00
Alexandre Emsenhuber
d95acd5489 Added missing entries in AutoLoader.
Change-Id: Iaed7664e155f3a0afd87398d85a66eda081dd5e4
2012-10-05 22:12:03 +02:00
daniel
2b1016eb9d Split Content.php into one file per class.
Change-Id: Ib49d9ec729613dcc43d38d46cb133ff9df459d79
2012-09-24 22:51:53 +02:00
daniel
b6fe213226 merge latest master.
some tests fail due to logical changes, will fix that in a follow-up

Change-Id: I8a5e4087ecf674fbcf6327c5d168cd401be12400
2012-09-05 17:50:13 +02:00
Tyler Anthony Romeo
e738203a8e Added PHP complement for mw.Time.
Figured since a JS Timestamp class was being implemented
it might be appropriate to create a complementary PHP
Timestamp class. Much of code is taken from wfTimestamp().

Note: Another change (I53dcf547) is attempting a related
issue. Not sure how much of scope overlap there is.

Change-Id: I68eb9f27eebe80df757187f634392e1bcba5551f
Signed-off-by: Tyler Romeo <tylerromeo@gmail.com>
2012-08-30 20:44:09 -04:00
daniel
72952a082c merged master some more
Change-Id: I53f349e42336ce0426ea1aff939853b3cd728aeb
2012-08-29 15:37:17 +02:00
daniel
9994968774 merged master
Change-Id: Ib2b879c4daa17401eeeb50767c0e5a54254855c3
2012-08-29 15:20:15 +02:00
Daniel Kinzler
392af46809 Revert "merged master"
This reverts commit 67bfdc7a68
2012-08-29 13:14:49 +00:00
daniel
67bfdc7a68 merged master
Change-Id: Ib2b879c4daa17401eeeb50767c0e5a54254855c3
2012-08-29 12:06:38 +02:00
Nikerabbit
5aabfd9206 Merge "Add CLDRPluralRuleError, added in parent commit, to the AutoLoader" 2012-08-28 06:18:45 +00:00
Tim Starling
ad03f2f753 Revert Uri class due to bug 39710
Revert 94f623363b. Apparently all
ReverseChronologicalPager subclasses were broken by the unexplained
interface change in wfArrayToCgi(): changing the interpretation of
null array values from "omit this key" to "include this key with no
value". The function has always been called with the former
interpretation, that's why the special case was in there.

Also reverted dependent changes 4b517fa and part of 3d97704.

Change-Id: I41dadbde5d0e0e4c54cc76bfc13c263c15c73828
2012-08-28 10:53:09 +10:00
Platonides
5268a92a19 Add CLDRPluralRuleError, added in parent commit, to the AutoLoader
Change-Id: Icac9fec9264b42202eddc61905f476693df57de2
2012-08-27 22:23:09 +02:00
Nikerabbit
08e7fab367 Merge changes I1aa3b081,I65ee788c,I58a9cdfe
* changes:
  Adding JavaScript CLDR plural parser.
  CLDR plural parser in PHP
  CLDR Plural rules based plural form calculation
2012-08-23 18:40:31 +00:00
daniel
266b66c899 Revision::getContent must return clone if mutable
Revision::getContent must return a cloned instance of the Content object
if the Content object is mutable to avoid confusion.

Content::copy is used to achieve this, which is specified to return $this
for immutable Content.

Change-Id: Iace17b6ae8aa85a3500624441b69bc067c1ade00
2012-08-21 12:48:29 +02:00
daniel
29719f846b merging latest master
Change-Id: I36b7f2f63ab8c08f8412d521dc68ea45c8b67711
2012-08-20 16:55:28 +02:00
umherirrender
fcd6bb547f (bug 22749) Create Special:MostInterwikis
This special pages counts all langlinks and shows the pages with the
highest count.
Update rate on WMF is every 3 days, like all other Most* special pages.

Change-Id: Ia60aed7599e8b9d6dcbae2be9bc4f91f4f8d4e55
2012-08-19 15:54:15 +02:00
Santhosh Thottingal
bbbcf089db CLDR Plural rules based plural form calculation
* Use the plurals.xml of CLDR for the plural rules of languages
* Use plurals-mediawiki.xml to override or extend the rules inside MW
* Remove the convertPlural method in each LanguageXX.php
* Parse and load the xml files in LocalisationCache
* Use the CLDRPluralRuleEvaluator.php for parsing the cldr plural rules
  (This is taken from Translate extension and might require a replacement
   parser without using eval)
* Add getPluralRules() to make the CLDR plural rules available to JS.

PS3: More method documentation, cleanup

Change-Id: I58a9cdfe60c7b9027bf031c91370472054f04ae2
2012-08-16 11:45:17 +10:00
Aaron Schulz
1b7045e341 Added UserCache class for doing name/title batch lookups.
* Made Special:ListFiles be the first user of this class.

Change-Id: I2ea068d4765fe6ae12445786c38217119e79f823
2012-08-14 14:59:03 -07:00
Aaron Schulz
233633426a Merge "Added GenericArrayObject class and associated test base" 2012-08-14 03:22:01 +00:00
jeroendedauw
afe46f1403 Added GenericArrayObject class and associated test base
Change-Id: Id7e9b59c7ed4a9338744db58935307ecb4bc441f
2012-08-13 20:18:48 -07:00