1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
= MediaWiki 1.39 =
== MediaWiki 1.39.0-PRERELEASE ==
THIS IS NOT A RELEASE YET
MediaWiki 1.39 is an alpha-quality development branch, and is not recommended
for use in production.
== Upgrading notes for 1.39 ==
Don't forget to always back up your database before upgrading!
See the file UPGRADE for more detailed per-version upgrade instructions from the
oldest supported upgrading version, MediaWiki 1.31.
Some specific notes for MediaWiki 1.39 upgrades are below:
* …
For notes on 1.38.x and older releases, see HISTORY.
=== Configuration changes for system administrators in 1.39 ===
* The default serialization method for file meta-data has been changed to JSON.
You can revert it to PHP by setting the 'useJsonMetadata' property to false in
$wgLocalFileRepo.
* …
==== New configuration ====
* $wgAutoCreateTempUser – configures automatic user creation on page save.
* $wgCopyUploadAllowOnWikiDomainConfig – Configures if administrators can use
the MediaWiki:Copyupload-allowed-domains system message to define which
domains can be used with the upload-by-url tool.
* …
==== Changed configuration ====
* …
==== Removed configuration ====
* $wgMultiContentRevisionSchemaMigrationStage - Migration is over, was
deprecated since 1.35.
* $wgWikiFarmSiteDetector – experimental setting removed without replacement.
Use the MW_WIKI_NAME environment variable to specifiy the name of the site
to load configuration for. Using the WIKI_NAME environment variable for this
purpose is deprecated.
* $wgAllowJavaUploads - To allow uploads of JAR files, remove application/java
from $wgMimeTypeExclusions.
* …
=== New user-facing features in 1.39 ===
* Optional automatic user creation on page save ($wgAutoCreateTempUser)
* Administrators now have the option to delete/undelete the associated "Talk"
page when they are (un)deleting a given page. `deletetalk` and `undeletetalk`
options were added to the 'delete' and 'undelete' action APIs in MW 1.38.
* …
=== New developer features in 1.39 ===
* …
=== External library changes in 1.39 ===
==== New external libraries ====
* Added Codex v0.1.0-alpha.5
* …
===== New development-only external libraries =====
* Updated QUnit from 2.18.0 to 2.18.2.
* …
==== Changed external libraries ====
* Updated composer/semver from 3.2.6 to 3.3.2.
* Updated vue/compat from 3.2.23 to 3.2.31.
* Updated wikimedia/minify from 2.2.6 to 2.3.0.
* …
===== Changed development-only external libraries =====
* Updated composer/spdx-licenses from 1.5.5 to 1.5.6.
* …
==== Removed external libraries ====
* …
=== Bug fixes in 1.39 ===
* …
=== Action API changes in 1.39 ===
* New `undeletetalk` parameter on action=undelete that allows you to restore
all revisions of the associated talk page.
* …
=== Action API internal changes in 1.39 ===
* …
=== Languages updated in 1.39 ===
MediaWiki supports over 350 languages. Many localisations are updated regularly.
Below only new and removed languages are listed, as well as changes to languages
because of Phabricator reports.
* (T307080) Added language support for Okinawan (ryu).
* (T304920) In Swahili, The "Media" namespace is now "Media", as in English,
and the "File" namespace is now "Faili". The old name of the "File" namespace
was "Picha", and it's kept for backwards compatibility. If you manage a wiki
in Swahili, and you use "Faili:" as a namespace anywhere in wikitext, and
you mean to use it as "Media:", these need to be replaced to "Media:".
* …
=== Breaking changes in 1.39 ===
* Basic non-JavaScript (Grade C) support has been dropped for Internet Explorer
9-10, Firefox 27-38, and Android 4.3-4.4.
* The following methods, deprecated since 1.37, have been removed from IDatabase
- ::fetchObject()
- ::fetchRow()
- ::numRows()
- ::freeResult()
* Title::getDefaultNamespace(), deprecated since 1.37, has been removed.
* The DBPrimaryPos class alias 'DBMasterPos' has been removed.
* The global function wfGetLB(), deprecated since 1.27, has been removed.
* Passing a db to BlockRestrictionStore::loadByBlockId() is no longer supported.
BlockRestrictionStoreFactory should be used to fetch a correct
BlockRestrictionStore instead. This was deprecated since 1.38.
* The global function wfGetCache(), deprecated since 1.32, has been removed. You
can use ObjectCache::getInstance() instead.
* The global function wfGetMainCache(), deprecated since 1.32, has been removed.
You can use ObjectCache::getLocalClusterInstance() instead.
* MovePage::__construct() now requires that all parameters be passed. The
fallback to MediaWikiServices emitted deprecation notices since 1.37.
* EventRelayerKafka, deprecated in 1.38, was removed.
* MediaWiki\Logger\Monolog\KafkaHandler, deprecated in 1.38, was removed.
* The "trace" option of SectionProfiler, deprecated in 1.38, was removed.
* The global function wfWikiID(), deprecated since 1.35, has been removed.
* Database::wasKnownStatementRollbackError() was removed. Subclasses should
override isKnownStatementRollbackError() instead.
* Database::wasQueryTimeoutError() was removed. Subclasses should
override isQueryTimeoutError() instead.
* Database::buildSuperlative() has been removed without deprecation.
* The following methods, deprecated in 1.37, have been removed:
- Linker::setStubThreshold(), ::getStubThreshold().
- LinkRendererFactory::createForUser().
- ParserOptions::getStubThreshold(), ::setStubThreshold().
* Changes to ResourceLoader modules:
- The mediawiki.viewport module, deprecated in 1.37 has been
removed. Use IntersectionObserver instead.
* If you manage a wiki in Swahili, and you use "Faili:" as a namespace anywhere,
and you mean to use it as "Media:", replace it with "Media:". See T304920.
* Changes to skins:
- Skin::getCopyrightIcon(), ::getPoweredBy(), deprecated in 1.37 have been
removed.
- Skin::bottomScripts soft deprecated in 1.37, was hard deprecated.
Skins using SkinTemplate must set bodyOnly as a skin option and
remove lines of code generating html, body and head elements.
- Skin::makeSearchButton and Skin::makeSearchInput were deprecated in 1.38.
Use SkinTemplate methods with the same name or Skin::getTemplateData
instead.
- Styles for the HTML classes `warningbox`, `errorbox` and `successbox` have
been removed in favor of Html class methods.
- The feature `legacy` used inside ResourceLoaderSkinModule,
deprecated in 1.37, will no longer ship any styles.
- Skin::getSkinStylePath, deprecated since 1.36, has been removed.
- Skin::getPortletData has been made private.
- SkinTemplate::getPersonalToolsList(), deprecated in 1.35 has been
removed.
* Experimental wiki farm support: Automatic detection of the requested site
within a wiki farm based on the requested domain has been removed.
Use the MW_WIKI_NAME environment variable to specifiy the name of the site
to load configuration for. Using the WIKI_NAME environment variable for this
purpose is deprecated. This is only relevant if you have been using
$wgWikiFarmSettingsDirectory to load wiki farm config.
* Calling getId() on a User or UserIdentityValue from the wrong wiki, deprecated
since 1.36, now throws an exception.
* IResultWrapper::next() now returns void, to match the Iterator interface that
it implements. fetchObject() has the same behavior as next() used to.
* ParserOutput::setText will now set the ParserOutput's text to null if
given null. Previously it did nothing if given null.
* The default value for the first argument to the ParserOutput constructor
is now null instead of ''.
* IDatabase::lockTables() and IDatabase::unlockTables(), deprecated since 1.38,
have been removed.
* …
=== Deprecations in 1.39 ===
* PageProps::getInstance(), deprecated since 1.38, emits deprecations warnings.
* SpecialRedirectWithAction::__construct without SearchEngineFactory argument
is hard deprecated.
* Use of the SiteStatsUpdate constructor has been deprecated in favor of
the ::factory() method.
* Title::getSelectFields() has been deprecated in favor of
PageStore::newSelectQueryBuilder()
* The following global functions are deprecated in favor of the listed UrlUtils
methods.
- wfExpandUrl -> UrlUtils::expand
- wfGetServerUrl -> UrlUtils::getServer
- wfAssembleUrl -> UrlUtils::assemble
- wfRemoveDotSegments -> UrlUtils::removeDotSegments
- wfUrlProtocols -> UrlUtils::validProtocols
- wfUrlProtocolsWithoutProtRel -> UrlUtils::validAbsoluteProtocols
- wfParseUrl -> UrlUtils::parse
- wfExpandIRI -> UrlUtils::expandIRI
- wfMatchesDomainList -> UrlUtils::matchesDomainList
These methods are exact replacements except that
1) they return null instead of false or empty string on error (where
applicable);
2) UrlUtils::validProtocols does not take a parameter (documentation said not
to pass one to wfUrlProtocols anyway);
3) they use type hints (don't try passing null instead of string, etc.).
* MaintainableDBConnRef is deprecated, use DBConnRef instead.
* Skin::getAction is deprecated. Use IContextSource::getActionName instead.
* ILBFactory::forEachLB() is deprecated. Use ::getAllLBs().
* LoadBalancer::forEachOpenConnection() and ::forEachOpenPrimaryConnection()
are deprecated without replacement.
* …
=== Other changes in 1.39 ===
* …
== Compatibility ==
MediaWiki 1.39 requires PHP 7.3.19 or later and the following PHP extensions:
* ctype
* dom
* fileinfo
* iconv
* intl
* json
* mbstring
* xml
MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
but support for them is somewhat less mature.
The supported versions are:
* MySQL 5.5.8 or later
* PostgreSQL 9.4 or later
* SQLite 3.8.0 or later
== Online documentation ==
Documentation for both end-users and site administrators is available on
MediaWiki.org, and is covered under the GNU Free Documentation License (except
for pages that explicitly state that their contents are in the public domain):
https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
== Mailing list ==
A mailing list is available for MediaWiki user support and discussion:
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
A low-traffic announcements-only list is also available:
https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
It's highly recommended that you sign up for one of these lists if you're
going to run a public MediaWiki, so you can be notified of security fixes.
== IRC help ==
There's usually someone online in #mediawiki on irc.libera.chat.
|