This is a notification about a breaking change to the /ZipDirectoryReader /class
in MediaWiki 1.44, as required by the Stable Interface Policy
<https://www.mediawiki.org/wiki/Stable_interface_policy#Hard_deprecation>. If
you do not maintain an extension that uses /ZipDirectoryReader/, you can ignore
this message.
*Summary*: The /ZipDirectoryReader /and /ZipDirectoryReaderError /classes have
been moved <https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1107973> to the
/mime analyzer/ library in the /Wikimedia\Mime /namespace. Furthermore, the
return type of the /readHandle /method was widened from /Status /to
/StatusValue/. Since this change to the return type is not backwards compatible,
no class alias is provided.
*Remedy*: If you need to use /ZipDirectoryReader /or /ZipDirectoryReaderError/,
import them from the /Wikimedia\Mime/ namespace. If you are making use of the
object returned by the /readHandle/ method, make sure you are not using any
methods not present in /StatusValue/.
*Rationale*: /ZipDirectoryReader/ is used by the /MimeAnalyzer /class, which is
located in the /mime analyzer/ library in the /Wikimedia\Mime /namespace.
However, /ZipDirectoryReader/ was part of MediaWiki code, so it's illegal for
library code to access it <https://phabricator.wikimedia.org/T382910>. Since
/MimeAnalyzer/ appears to be the only user of /ZipDirectoryReader/, the simplest
solution was to move into the library as well. However, /ZipDirectoryReader/ was
making use of the /Status /class, which again is part of MediaWiki core and this
cannot be accessed from libraries. Only its more general base class,
/StatusValue/, can. This made it necessary to change the return type of the
/readHandle/ method. Since there are no users of /ZipDirectoryReader/ in any
extension <https://codesearch.wmcloud.org/things/?q=ZipDirectoryReader> known to
Code Search, the Stable Interface Policy allows the breaking change without a
deprecation period.
*Context*: This change is part of a long-term effort to extract generic code
from MediaWiki core into libraries
<https://www.mediawiki.org/wiki/Library_infrastructure_for_MediaWiki>, to reduce
code complexity and improve code re-use.
--
Daniel Kinzler
Principal Software Engineer
MediaWiki Engineering Group
Wikimedia Foundation
_______________________________________________
Wikitech-l mailing list -- wikitech-l@lists.wikimedia.org
To unsubscribe send an email to wikitech-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/