Hello,
https://www.mediawiki.org/wiki/API:Revisions mentions "revision slots" multiple times, but fails to explain what it is?
I noticed that some queries that were running fine in the past now have warning: "Because "rvslots" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
Which is interesting, but not very descriptive. What are revision slots? Why are they needed? What is difference between "legacy format" and "new format"? If rvslots are so important, why they aren't part of some of the examples?
So far I googled this: https://www.mediawiki.org/wiki/Manual:Slot it seems like some new "work-in-progress" feature, that isn't very useful yet, as there is only 1 slot in existence.
Is it necessary to pay attention to this? Can I simply silence this warning by providing parameter rvslots=*? Or should I pay it some deeper attention?
Thanks
It is where a page can have multiple content handlers associated with it.
The most common example is commons file pages. They have normal wikitext page, but they also have a slot containing wikidata-style data structured data.
Whether or not you have to worry about this depends on what you're doing. For most things probably no, but more things might have multiple slots in the future.
-- Bawolff
On Sunday, April 5, 2020, Petr Bena benapetr@gmail.com wrote:
Hello,
https://www.mediawiki.org/wiki/API:Revisions mentions "revision slots" multiple times, but fails to explain what it is?
I noticed that some queries that were running fine in the past now have warning: "Because "rvslots" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
Which is interesting, but not very descriptive. What are revision slots? Why are they needed? What is difference between "legacy format" and "new format"? If rvslots are so important, why they aren't part of some of the examples?
So far I googled this: https://www.mediawiki.org/wiki/Manual:Slot it seems like some new "work-in-progress" feature, that isn't very useful yet, as there is only 1 slot in existence.
Is it necessary to pay attention to this? Can I simply silence this warning by providing parameter rvslots=*? Or should I pay it some deeper attention?
Thanks
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Thanks for bringing this up.
I have made some updates to the documentation in mediawiki.org to make clear that MCR is not work in progress. While support is not complete in all parts of MediaWiki, the storage layer has been implemented and the database has been migrated to the new system.
Am 05.04.20 um 22:17 schrieb Petr Bena:
Hello,
https://www.mediawiki.org/wiki/API:Revisions mentions "revision slots" multiple times, but fails to explain what it is?
I noticed that some queries that were running fine in the past now have warning: "Because "rvslots" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
Which is interesting, but not very descriptive. What are revision slots? Why are they needed? What is difference between "legacy format" and "new format"? If rvslots are so important, why they aren't part of some of the examples?
So far I googled this: https://www.mediawiki.org/wiki/Manual:Slot it seems like some new "work-in-progress" feature, that isn't very useful yet, as there is only 1 slot in existence.
Is it necessary to pay attention to this? Can I simply silence this warning by providing parameter rvslots=*? Or should I pay it some deeper attention?
Thanks
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Aha thanks for the update. To give you some context, I would like to fix https://phabricator.wikimedia.org/T249460 the main problem as I see now, is that this looks like a seriously breaking change to me (but maybe I am overlooking something). If I change the API call to work with rvslots, I doubt it's going to work at all with MediaWiki < 1.32, on other hand, future versions of MW may stop working with older parameters.
I don't see an easy way out here for applications that want to work flawlessly with as many MW versions as possible. In case of Huggle, it's not really so big deal, it's mostly used with Wikimedia wikis and I believe we are consistently on newest version on all production wikis. Huggle can be used on 3rd party MediaWiki installations too, where this could be a serious issue, but I doubt there are too many users who actually use it outside of Wikimedia world (and if there are, they can just stick with older Huggle if they don't want to upgrade their wiki installation).
But still, I am curious what is the recommended approach for someone who wants to develop their application "properly" in a way that it's backward compatible? First query the MediaWiki version via API, and based on that decide how to call APIs? I can't think of any other way.
On Sun, Apr 5, 2020 at 11:10 PM Daniel Kinzler dkinzler@wikimedia.org wrote:
Thanks for bringing this up.
I have made some updates to the documentation in mediawiki.org to make clear that MCR is not work in progress. While support is not complete in all parts of MediaWiki, the storage layer has been implemented and the database has been migrated to the new system.
Am 05.04.20 um 22:17 schrieb Petr Bena:
Hello,
https://www.mediawiki.org/wiki/API:Revisions mentions "revision slots" multiple times, but fails to explain what it is?
I noticed that some queries that were running fine in the past now have warning: "Because "rvslots" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
Which is interesting, but not very descriptive. What are revision slots? Why are they needed? What is difference between "legacy format" and "new format"? If rvslots are so important, why they aren't part of some of the examples?
So far I googled this: https://www.mediawiki.org/wiki/Manual:Slot it seems like some new "work-in-progress" feature, that isn't very useful yet, as there is only 1 slot in existence.
Is it necessary to pay attention to this? Can I simply silence this warning by providing parameter rvslots=*? Or should I pay it some deeper attention?
Thanks
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
-- Daniel Kinzler Principal Software Engineer, Core Platform Wikimedia Foundation
Am 05.04.20 um 23:18 schrieb Petr Bena:
But still, I am curious what is the recommended approach for someone who wants to develop their application "properly" in a way that it's backward compatible? First query the MediaWiki version via API, and based on that decide how to call APIs? I can't think of any other way.
Yes, that's indeed the only way if the client is to be entirely generic. Though deprecated API behavior tends to stay supported for quite a while, much longer than deprecated PHP methods. So checking the MediaWiki version first would only be needed if you wanted your code to work with a wide range of MediaWiki versions.
Also, most clients are not totally agnostic to the wiki they run against. E.g. pywikibot has per-wiki configuration, which could easily include the wiki version. So no query would be necessary. Similarly, JS code running on the site has access to the version from JS variables.
On Sun, Apr 5, 2020 at 5:24 PM Daniel Kinzler dkinzler@wikimedia.org wrote:
Am 05.04.20 um 23:18 schrieb Petr Bena:
But still, I am curious what is the recommended approach for someone who wants to develop their application "properly" in a way that it's backward compatible? First query the MediaWiki version via API, and based on that decide how to call APIs? I can't think of any other way.
Yes, that's indeed the only way if the client is to be entirely generic. Though deprecated API behavior tends to stay supported for quite a while, much longer than deprecated PHP methods. So checking the MediaWiki version first would only be needed if you wanted your code to work with a wide range of MediaWiki versions.
Rather than checking the MediaWiki version, I'd generally recommend checking against the action=paraminfo endpoint for the module in question for something like this. If e.g. https://www.mediawiki.org/w/api.php?action=paraminfo&modules=query+revis... reports that rvslots is available then use it, otherwise use back-compat code.
That is interesting.
I guess that's indeed the correct way, and now I noticed (or maybe I am reading it wrong) that mediawiki.org doesn't seem to support them? Or at least I don't see the word rvslot anywhere in the output of that very query. If that's the case does it mean that rvslots is optional feature? Or is that this part of result which indicates they are being supported?
...
"limit": 500, "deprecatedvalues": [ "parsetree" ] }, { "index": 2,
"name": "slots", <<<<
"type": [ "main" ],
...
On Mon, Apr 6, 2020 at 3:54 PM Brad Jorsch (Anomie) bjorsch@wikimedia.org wrote:
On Sun, Apr 5, 2020 at 5:24 PM Daniel Kinzler dkinzler@wikimedia.org wrote:
Am 05.04.20 um 23:18 schrieb Petr Bena:
But still, I am curious what is the recommended approach for someone who wants to develop their application "properly" in a way that it's backward compatible? First query the MediaWiki version via API, and based on that decide how to call APIs? I can't think of any other way.
Yes, that's indeed the only way if the client is to be entirely generic. Though deprecated API behavior tends to stay supported for quite a while, much longer than deprecated PHP methods. So checking the MediaWiki version first would only be needed if you wanted your code to work with a wide range of MediaWiki versions.
Rather than checking the MediaWiki version, I'd generally recommend checking against the action=paraminfo endpoint for the module in question for something like this. If e.g. https://www.mediawiki.org/w/api.php?action=paraminfo&modules=query+revis... reports that rvslots is available then use it, otherwise use back-compat code.
-- Brad Jorsch (Anomie) Senior Software Engineer Wikimedia Foundation
On Mon, Apr 6, 2020 at 10:51 AM Petr Bena benapetr@gmail.com wrote:
Or is that this part of result which indicates they are being supported?
...
"limit": 500, "deprecatedvalues": [ "parsetree" ] }, { "index": 2,
"name": "slots", <<<<
"type": [ "main" ],
...
Yes, that's the part. Further up in the data structure you can see that it indicates all parameters for the module are prefixed by "rv". ```
"group": "prop",
"prefix": "rv", <<<<
"source": "MediaWiki",
```
Hey,
Related question: is it possible to edit existing slots and add new ones via the API?
Cheers
-- Jeroen De Dauw | www.EntropyWins.wtf https://EntropyWins.wtf Professional wiki hosting and services: www.Professional.Wiki https://Professional.Wiki Entrepreneur | Software Crafter | Open Source | Wikimedia | Speaker ~=[,,_,,]:3
On Mon, Apr 6, 2020 at 1:06 PM Jeroen De Dauw jeroendedauw@gmail.com wrote:
Related question: is it possible to edit existing slots and add new ones via the API?
Not yet. That's tracked as T208801 https://phabricator.wikimedia.org/T208801.
wikitech-l@lists.wikimedia.org