I don't think she means what we call the api - but more methods random extensions are likely to use.
We could start documenting certain stable methods with a special code comment ( say @stable) which would mean something like this method will not be removed, and if the need arises we'll remove the @stable and wait 2 versions before removing the method. Key candidates for this would include title::newFromText, parser::recursiveTagParse, etc. Ideally one would wait for the method to stand the test of time before tagging.
I am sure WMF developers are facing >similar issues especially
I don't think that's the case. It used to be the responsibility of the person making the breaking change to fix all callers in the wikimedia extension repo. Im not sure if that's still the case but nonetheless I do not feel this is a significant problem for deployed extensions.(im sure someone will correct me if im wrong)
-bawolff On 2013-02-11 9:14 AM, "Yuri Astrakhan" yuriastrakhan@gmail.com wrote:
Mariya,
Could you be more specific? What types of changes caused extensions to break? I might be mistaken but the vast majority of the API framework classes have been established over 5 years ago, with very few breaking changes since. Most changes were related to adding new functionality (new actions, new query submodules, new parameters), but that shouldn't have significantly affected extension development.
I do plan to introduce a few breaking changes (majority of the extensions should not be affected) in 1.21, such as the introduction of versioning, further modularization to allow pageset reuse, etc. See http://www.mediawiki.org/wiki/Requests_for_comment/API_Future
Please note that in a rare case some features might be purposefully removed due to the security or scalability issues.
--Yuri
On Mon, Feb 11, 2013 at 7:58 AM, Mariya Nedelcheva Miteva < mariya.miteva@gmail.com> wrote:
Hi all,
I have been talking to many third-party yas part of my WMF internship in the last few weeks and one the main concerns they express is the lack of stability in the PHP classes MediaWiki exposes from version to version.
The
frequent changes in what I would call the PHP-API makes extentions developement and maintenance much more difficult with compatibility from version to version becoming a problem. Solving the problem would probably result in the development of more extensions, easier maintenance, less hacks to core and more users upgrading to the latest MediaWiki version. I am sure WMF developers are facing similar issues especially with projects like WikiData going on.
My question is: With the given technical heritage that MediaWiki carries, is it possible to have a (relatively) stable set of PHP classes defined, with a pledge not to change them in the next X releases or at least with some longer deprecation time? What would maintaining such a PHP-API
entail?
How difficult is it given the vast number of dependancies in MediaWiki code? Does it require restructuring a lot of the current core code? Do
you
think it should be a definite goal for WMF?
Thank you.
Mariya _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l