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/

Reply via email to