Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-06 Thread Brad Jorsch (Anomie)
On Mon, Apr 6, 2020 at 1:06 PM Jeroen De Dauw 
wrote:

> Related question: is it possible to edit existing slots and add new ones
> via the API?
>

Not yet. That's tracked as T208801
.

-- 
Brad Jorsch (Anomie)
Senior Software Engineer
Wikimedia Foundation
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-06 Thread Jeroen De Dauw
Hey,

Related question: is it possible to edit existing slots and add new ones
via the API?

Cheers

--
Jeroen De Dauw | www.EntropyWins.wtf 
Professional wiki hosting and services: www.Professional.Wiki

Entrepreneur | Software Crafter | Open Source | Wikimedia | Speaker
~=[,,_,,]:3
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-06 Thread Brad Jorsch (Anomie)
On Mon, Apr 6, 2020 at 10:51 AM Petr Bena  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",

```

-- 
Brad Jorsch (Anomie)
Senior Software Engineer
Wikimedia Foundation
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-06 Thread Petr Bena
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)
 wrote:
>
> On Sun, Apr 5, 2020 at 5:24 PM Daniel Kinzler  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=query+revisions 
> reports that rvslots is available then use it, otherwise use back-compat code.
>
> --
> Brad Jorsch (Anomie)
> Senior Software Engineer
> Wikimedia Foundation

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-06 Thread Brad Jorsch (Anomie)
On Sun, Apr 5, 2020 at 5:24 PM Daniel Kinzler 
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=query+revisions
reports that rvslots is available then use it, otherwise use back-compat
code.

-- 
Brad Jorsch (Anomie)
Senior Software Engineer
Wikimedia Foundation
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-05 Thread Daniel Kinzler
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.

-- 
Daniel Kinzler
Principal Software Engineer, Core Platform
Wikimedia Foundation

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-05 Thread Petr Bena
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  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

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-05 Thread Daniel Kinzler
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

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] What is "revision slot" and why is it necessary to specify it now?

2020-04-05 Thread Brian Wolff
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  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
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l