Commit graph

1022 commits

Author SHA1 Message Date
Siebrand Mazeland
603a35fc4e Remove underscore from classes CLDRPluralRule*
Part of program to remove underscores from class names. Checked core and 675
extensions for occurrences. All uses are in core in core are updated in this
patch. There are no uses in Gerrit extensions.

Change-Id: Id3ff16710a11ce1909a83b58505b250736a073e8
2014-04-21 19:23:37 +02:00
Chad Horohoe
61a854fadb Remove FakeTitle
This doesn't seem to be used anywhere anymore and it's an awful class

Change-Id: Ie9047a346e410099c3082725ced83818846e95c2
2014-04-17 14:51:32 +00:00
Aaron Schulz
afa6af07d7 Profiler class refactoring
* Merged the "collate at end" and "running collate" logic
  into the base class to make it more unified and consistent.
* Pulled out DB code into ProfilerSimpleDB class.
* Removed the ProfilerSimple class and updated child classes.
* Made ProfilerSimpleTrace set the debug information too.
* Work around "ended by close()" bug from 99aef03f. Since the
  getRawData() method gets called while some wfProfileOut() calls
  have not yet happened, make it use the matched call data and let
  the final logData() method work on the full data as normal.
* Let ProfilerSimple classes use getFunctionReport() for the profiler
  debug log if it is setup instead of making it just return "".
* Made getRawData() work as best as possible with ProfilerMwprof.
* Removed $wgProfileToDatabase since it is now useless.
* Improved DB profile performance with sqlite.
* Updated visibility of various methods.

Change-Id: I1260bab2b5ba12dccbba701bcae4a637cb85c6e8
2014-04-14 16:46:55 +00:00
jenkins-bot
d6b075d238 Merge "Split CLDRPluralRuleEvaluator file" 2014-04-09 11:01:52 +00:00
addshore
fcd78a0bab Split CLDRPluralRuleEvaluator file
Change-Id: Iec9a939e3f28a600c841b89a2849f65d41763a62
2014-04-08 23:50:31 +01:00
addshore
6503a529d8 Move ConverterRule class to its own file
Change-Id: I0d743625e32f903ecd13f3c1f5aaeabdaca70f9d
2014-04-08 23:39:55 +01:00
Alexandre Emsenhuber
9e28936e81 Correctly order AutoLoader class definitions
- Group per directory
- Sort by class name for each directory

Change-Id: If4771f2868c2183f60a6321533142a1ad5cdc7cd
2014-04-05 18:30:13 +00:00
jenkins-bot
f1b45cbed4 Merge "New API module, list=prefixsearch" 2014-04-03 23:07:58 +00:00
Aaron Schulz
fbf97f572c Re-organized PoolCounter files
* No actual changes to the classes

Change-Id: I4e35a2b097e4bc72315688d0390d3f5c4c1ca4ed
2014-04-02 11:08:22 -07:00
Max Semenik
af6d9aba6d New API module, list=prefixsearch
It's pretty much like action=opensearch but can be used as a generator
which can be handy when you need to retrieve both the list of pages and
some information about them.

Change-Id: Iaffe30a0f7402e1316c4885a805692a34bbe1a6a
2014-04-02 19:14:07 +04:00
Aaron Schulz
eb03cf3f7d Added a Redis pool counter class
* This should be easier to set up for typical installs

Change-Id: Icb4a7481b944fa0818c4635e3edbe12d08af9924
2014-04-01 15:57:31 -07:00
jenkins-bot
6bd4f02747 Merge "Implement listing for tracking categories" 2014-03-30 22:44:08 +00:00
unknown
610236b467 Implement listing for tracking categories
Special page to implement list of Tracking Categories. Global
$wgTrackingCategories added containing list of tracking categories

Bug: 60333
Change-Id: I7d4bb90622a6bae60845942ef93cfe64f229d2d2
2014-03-29 14:50:39 +05:30
daniel
154bcdc63f Introducing TitleValue
TitleValue is intended to be a light weight alternative to the Title
class. Any operations on TitleValue are implemented in separate
service classes, like TitleFormatter and PageLinkRenderer. See
<https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue>
for more information.

This change updates SpecialCategories and SpecialLinkSearch to use
TitleValue instead of Title, to demonstrate how TitleValue would be
used, and how the necessary services can be injected and applied.

The intention is to improve testability and reusability; these
advantages will however only become apparent with further refactoring
of the respective special pages. This will be done in follow-up
changes.

More work will be needed to migrate essential functionality from
Title and Linker classes into the respective service classes,
MediaWikiTitleCodec and MediaWikiPageLinkRenderer.

Change-Id: I8eef5a165de4ffcacfbc4911fdacdb15d502fff4
2014-03-28 18:42:17 +00:00
jenkins-bot
69dbddc36a Merge "Add Special:ListDuplicatedFiles expensive query special page." 2014-03-24 06:09:13 +00:00
Brian Wolff
24276faf68 Add Special:ListDuplicatedFiles expensive query special page.
I saw some comments recently on commons suggesting that
better ways are needed to manage duplicate files (There are tools
for if a specific file is a duplicate, but no backlog of
outstanding duplicate files).

This seems like a fairly easy first step in that direction.

Wasn't sure if this should be an image gallery type
query page, or just a list. I think in this case a plain
list is more useful.

Change-Id: Ibe4b9da71ca6451ec4e6b0050feaf3ca70e1b888
2014-03-24 00:16:05 -03:00
Kevin Israel
2364ac099a AutoLoader: Remove "Class ... not found" debug message
Per existing FIXME comment: "This is not very polite. Assume we
do not manage the class."

Reverts the remaining portion of r44296 / 2f584f68a9 while
clarifying the "Give up" comment.

Change-Id: I4471f9376cae6b3c3e8df99e960770863ebf37ca
2014-03-21 11:42:14 -04:00
Chad Horohoe
7fc1a5b137 Break up SearchEngine.php into a couple of other files
Change-Id: I753eec1d0cf78f2ea08897c7fd3b83f2c88be18d
2014-03-19 20:14:17 +00:00
Aaron Schulz
96528b1f88 Avoid header notice log spam from RunJobs API
* Moved ApiRunJobs to a special page instead of going through
  ApiMain and having to fight the logic there. As a separate
  internal API, this does not show up on the API help page and
  is no longer effected by $wgEnableAPI.

bug: 62233
Change-Id: I1db6f526d02e130a66ee03289858a734d89e6c00
2014-03-18 22:30:50 +00:00
Aaron Schulz
400e4848ec Moved ProcessCacheLRU to /libs
Change-Id: I7052d04d9847f0310c1e62bd66365c813fddeab5
2014-03-16 16:32:34 -07:00
jenkins-bot
3ba51575cd Merge "Renamed /job to /jobqueue" 2014-03-16 11:41:29 +00:00
jenkins-bot
5086bae49c Merge "Add two new debug log groups" 2014-03-14 22:18:27 +00:00
Aaron Schulz
9ffd4f085d Renamed /job to /jobqueue
Change-Id: I4c8a2b42140630838867c77a70d45ba14b5d95e2
2014-03-14 13:42:04 -07:00
jenkins-bot
102076134f Merge "Add RCCacheEntryBuilder, split from EnhancedChangesList and cleaned up" 2014-03-12 16:40:28 +00:00
Siebrand Mazeland
b6adafc146 Fix CodeSniffer errors and warnings
For the files touched in I06ee0f01d8 as logged at
https://integration.wikimedia.org/ci/job/mediawiki-core-phpcs-strict-HEAD/7798/console

Change-Id: I811884f7a5ada4d0551552d0a2c2775d6b17b59f
2014-03-12 12:50:43 +01:00
Bartosz Dziewoński
fc20c30d20 ChangesListSpecialPage: Separate all functionality for generating feeds
I should have done it at the beginning instead of trying to
extract it from recent changes.

Same for SpecialRecentChanges and SpecialRecentChangesLinked
(subclasses).

Created a new API module for it: ApiFeedRecentChanges.
It's somewhat un-API-like and hackish, but all feed modules are.

Old URLs redirect to new ones, so this should be fully
backwards-compatible assuming sane feed reader clients.

Change-Id: I06ee0f01d896bc66545a1800b24693ce7524e433
2014-03-12 12:31:41 +01:00
aude
1c6b7c7485 Add RCCacheEntryBuilder, split from EnhancedChangesList and cleaned up
This makes it more feasible for Wikibase, Flow, etc. to support
enhanced changes format, and allow better support for the rc_source
column in the future.

Change-Id: I873f6b86007000a94337f0c963df4bf8fec5b715
2014-03-12 11:23:49 +01:00
Kevin Israel
d6a9f3a2f2 Hide message for DBUnexpectedError exceptions
DBUnexpectedErrors are now treated like most other exceptions; we now
hide the error messages (which could contain sensitive information
such as IP addresses) unless $wgShowExceptionDetails is true.

In that case, the messages (and redacted backtraces) would be shown
even if $wgShowDBErrorBacktrace is false, though hiding them would
add complexity to the exception handler for little benefit.

Bug: 26811
Change-Id: I063c241975ce5b12a04abc21821ac67c716b3d5e
2014-03-04 19:59:57 -05:00
jenkins-bot
cb78f7f820 Merge "Make it possible for extensions to specify which version of MediaWiki they support via Composer." 2014-03-03 20:27:16 +00:00
addshore
58884580eb Split the rest of Action.php into /actions/
Change-Id: I071ac5778af63a5cffffd59d804c99b2c799d4e5
2014-03-03 12:31:57 +00:00
jeroendedauw
3307d49579 Make it possible for extensions to specify which version of MediaWiki
they support via Composer.

This change allows extensions to specify they depend on a specific
version or version range of MediaWiki. This is done by adding the
package mediawiki/mediawiki in their composer.json require section.

As MediaWiki itself is not a Composer package and is quite far away
from becoming one, a workaround was needed, which is provided by
this commit.

It works as follows. When "composer install" or "composer update"
is run, a Composer hook is invoked. This hook programmatically
indicates the root package provides MediaWiki, as it indeed does
when extensions are installed into MediaWiki. The package link
of type "provides" includes the MediaWiki version, which is read
from DefaultSettings.php.

This functionality has been tested and confirmed to work. One needs
a recent Composer version for it to have an effect. The upcoming
Composer alpha8 release will suffice. See
https://github.com/composer/composer/issues/2520

Tests are included. Composer independent tests will run always,
while the Composer specific ones are skipped when Composer is
not installed.

People that already have a composer.json file in their MediaWiki
root directory will need to make the same additions there as this
commit makes to composer-json.example. If this is not done, the
new behaviour will not work for them (though no existing behaviour
will break). The change to the json file has been made in such a
way to minimize the likelihood that any future modifications there
will be needed.

Thanks go to @beausimensen (Sculpin) and @seldaek (Composer) for
their support.

Change-Id: I8df66a92971146ab79cd4fcbd181e559115ca240
2014-03-03 08:45:20 +00:00
Aaron Schulz
2ea4d7ae8c Moved job running via $wgJobRunRate to a special API
* A background internal HTTP request used to load the API.
  This handles job execution and related periodic tasks.
  It avoids blocking the main request or breaking it on fatals.
* This method avoids problems that shelling could have:
** Mismatched apache/cli PHP config or versions.
** Had to start a new process and could not use opcode cache.
** safe_mode and open_basedir restrictions required a fallback.
** Some wiki farms may not respect the --wiki parameter.
** wgMaxShellMemory applies to spawned PHP processes.
** Spawning processes is more prone to DOS due to a lack
   of proper limiting/pooling.

bug: 60208
bug: 60210
bug: 60698
bug: 60844
Change-Id: I78b0e709301ac4a0c7b7ed337d6969d7546674bf
2014-02-27 19:12:04 +00:00
Alexandre Emsenhuber
2744ecb520 Add two new debug log groups
So that they are easier to separate from the main debug log.
The two news are:
- 'autoloader' for messages sent by the AutoLoader class
- 'caches' for the list of cache types

Change-Id: Ifb6dc2666fec2323219bbfac94ab53a422e5312a
2014-02-26 20:45:33 +00:00
jenkins-bot
84cfc8a135 Merge "Split Exception.php" 2014-02-24 22:52:24 +00:00
addshore
557af13086 Split Exception.php
Change-Id: I8273b342f8814887b65227457d0a461d7cd31e75
2014-02-24 21:17:59 +01:00
Brad Jorsch
0ce8a2ac12 API: Add prop=redirects and list=allredirects
While redirects can be sort-of queried using list=backlinks with
blfilterredir=redirects, we can get more accurate results with a module
dedicated to this purpose. We can also get the fragment of the redirect
without having to load the content of the redirect page and parse it.

I'm a bit surprised I was able to put together a query for this that
will work as a prop module. Or did I overlook something?

And then we may as well add the corresponding list=allredirects, to work
like alllinks, allfileusages, and alltransclusions.

Bug: 57057
Change-Id: I81082aa9e4e3a3b2c66cc4f9970a97eed83a6a4f
2014-02-24 11:01:44 -05:00
Skizzerz
f7174057a4 Add preliminary MS SQL support
This likely has outstanding bugs but basic wiki operations work just fine in it.

Change-Id: I25df82065a307b9abc30c694f8c8afff0996d7c1
2014-02-15 10:40:19 -08:00
Brad Jorsch
9832b28f12 Add API action=revisiondelete
Add action=revisiondelete to the API, and some functions to the
revisiondelete backend to support this.

Bug: 23005
Change-Id: Iee146fed648603b86a35927518f850771fc69bd2
2014-02-04 15:03:48 -05:00
jenkins-bot
a51ae81f11 Merge "Added a simple JobSpecification class for pushing jobs" 2014-01-29 16:58:18 +00:00
jenkins-bot
1d551bdf7b Merge "Split Title and User ArrayFromResult classes to own files" 2014-01-28 23:50:33 +00:00
Aaron Schulz
e049bcb87f Added a simple JobSpecification class for pushing jobs
* Both this and the full Job class can be used to push jobs

bug: 60403
Change-Id: I7e78321b5919e48fd8228580ddde7c90a6e4024e
2014-01-28 10:35:48 -08:00
jenkins-bot
529c02dc47 Merge "Config: Add Config and GlobalConfig classes" 2014-01-28 05:15:26 +00:00
Kunal Mehta
fbfe789b98 Config: Add Config and GlobalConfig classes
Allows configuration options to be fetched from context.

Only one implementation, GlobalConfig, is provided, which
simply returns $GLOBALS[$name]. There can be more classes
in the future, possibly a database-based one. For convinience
the "wg" prefix is automatically added.

Ironically, this adds the $wgConfigClass global variable
which is used to determine which implementation of Config
to use by default.

The ContextSource getConfig and setConfig methods were introduced
in I23194d1ba (1.23), but have no uses in Gerrit, so they can safely
be re-purposed.

Change-Id: I13baec0b6d4ea7badf20b9c5f9b40846348838e4
2014-01-27 21:10:30 -08:00
addshore
e3c0ab20bf Split Title and User ArrayFromResult classes to own files
Change-Id: I8744627330eb9c8f183a8d418d6eb168e6c5407b
2014-01-26 18:32:43 +00:00
jenkins-bot
a6f0a996eb Merge "Add Special:Diff as an internally-linkable redirect to diff pages" 2014-01-26 04:52:59 +00:00
Jérémie Roquet
ecc8114014 Add Special:Diff as an internally-linkable redirect to diff pages
This is similar to Special:PermanentLink added in r79036 and has been
asked for several times in different places, including:
- on the English Wikipedia (oldid=539308532)
- on mediawiki.org (lqt_oldid=31691)
- on the French Wikipedia (oldid=93029892)
- on the English Wikipedia again (oldid=588408888)

A notable use-case is linking to diffs in the edit summaries, where
external links are not yet allowed (bug 14892).

All of the following are valid usages:
- [[Special:Diff/12345]] (diff of a revision with the previous one)
- [[Special:Diff/12345/prev]] (diff of a revision with the previous one as well)
- [[Special:Diff/12345/next]] (diff of a revision with the next one)
- [[Special:Diff/12345/cur]] (diff of a revision with the latest one of that page)
- [[Special:Diff/12345/98765]] (diff between arbitrary two revisions)

Co-authored-by: Jérémie Roquet <jroquet@arkanosis.net>
Co-authored-by: Bartosz Dziewoński <matma.rex@gmail.com>
Change-Id: I77fdaf8e04375caa1d67ca4a3ec3bd93920c3309
2014-01-25 21:41:08 +01:00
addshore
853291c7d6 Split Timestamp.php into class and exception files
Change-Id: I438adfe5479a1017baee8f2b663f3fb2e49c685a
2014-01-25 16:24:04 +01:00
jenkins-bot
5bd46a50a9 Merge "Create ChangesListSpecialPage as a base class for Watchlist and RC" 2014-01-24 00:51:07 +00:00
jenkins-bot
bb70f87a13 Merge "Begin abstracting more of the database-specific search backend out" 2014-01-23 23:39:34 +00:00
Kevin Israel
1d049a7451 Installer: Remove two environmental checks
* envCheckPHP531: Message is outdated ("downgrade to 5.3.0"; the
  current minimum PHP version is 5.3.2), and PHP Bug #50394 has
  not reappeared in any later version.
* envCheckZE1: zend.ze1_compatibility_mode was removed in 5.3.0.

Also updated the error message for envCheckBrokenXML to remove
the "Upgrade to PHP 5.2.9 or later" wording.

Change-Id: Ifc8754151dd23a0314c6739cb78c7ac61a306bc4
2014-01-22 19:41:19 -05:00