Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Wikipedia: Wikitech

Special:All pages broken at about 03:00 UTC this morning

 

 

First page Previous page 1 2 Next page Last page  View All Wikipedia wikitech RSS feed   Index | Next | Previous | View Threaded


rlullmann at gmail

Aug 19, 2008, 10:06 PM

Post #1 of 32 (937 views)
Permalink
Special:All pages broken at about 03:00 UTC this morning

No longer displays pages from a title. In some cases it will display a list
of index pages.

For example,
http://en.wiktionary.org/w/index.php?title=Special:AllPages&from=Hillsborough!&namespace=0displays
a list of index pages from Hilma, instead of pages titles from
Hilma.

http://en.wiktionary.org/wiki/Special:AllPages/Hiffe displays no pages at
all, and clicking on "Go" switches to Prefix index.

Not useful. Can we put back the working version please?
_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


andrew at epstone

Aug 20, 2008, 12:17 AM

Post #2 of 32 (911 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 3:58 PM, Robert Ullmann <rlullmann[at]gmail.com> wrote:
> It is now broken, and should be put back. (In particular, the python
> wikipedia framework has been broken.)

The User Interface is designed for users. The python Wikipedia
framework, therefore, should use the API, and then it won't have these
problems.

--
Andrew Garrett

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


rlullmann at gmail

Aug 20, 2008, 1:36 AM

Post #3 of 32 (910 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Quite so. However, it doesn't. And a *very* large amount of stuff is built
on it. Would be good to fix it. Before changing the UI it relies on.

Question: How would the people maintaining it have known that it was going
to be broken this morning?

Is easy to fix, took me < 3 minutes to fix my copy of wikipedia.py (mostly
deleting code ;-).

But everyone else using the allpages generator will be stuck, and almost all
will have no clue what is wrong or how to fix it.

On Wed, Aug 20, 2008 at 10:17 AM, Andrew Garrett <andrew[at]epstone.net> wrote:

> On Wed, Aug 20, 2008 at 3:58 PM, Robert Ullmann <rlullmann[at]gmail.com>
> wrote:
> > It is now broken, and should be put back. (In particular, the python
> > wikipedia framework has been broken.)
>
> The User Interface is designed for users. The python Wikipedia
> framework, therefore, should use the API, and then it won't have these
> problems.
>
> --
> Andrew Garrett
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l[at]lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>
_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


dan_the_man at telus

Aug 20, 2008, 1:53 AM

Post #4 of 32 (911 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Anyone developing automated software which interfaces with MediaWiki
should be subscribed to this list. And for any such person, this thread
should be enough of a red-flag for them.
The API has existed for awhile, and the UI should not be depended on for
any automated things.

~Daniel Friesen(Dantman, Nadir-Seen-Fire) of:
-The Nadir-Point Group (http://nadir-point.com)
--It's Wiki-Tools subgroup (http://wiki-tools.com)
--The ElectronicMe project (http://electronic-me.org)
--Games-G.P.S. (http://ggps.org)
-And Wikia ACG on Wikia.com (http://wikia.com/wiki/Wikia_ACG)
--Animepedia (http://anime.wikia.com)
--Narutopedia (http://naruto.wikia.com)

Robert Ullmann wrote:
> Quite so. However, it doesn't. And a *very* large amount of stuff is built
> on it. Would be good to fix it. Before changing the UI it relies on.
>
> Question: How would the people maintaining it have known that it was going
> to be broken this morning?
>
> Is easy to fix, took me < 3 minutes to fix my copy of wikipedia.py (mostly
> deleting code ;-).
>
> But everyone else using the allpages generator will be stuck, and almost all
> will have no clue what is wrong or how to fix it.
>
> On Wed, Aug 20, 2008 at 10:17 AM, Andrew Garrett <andrew[at]epstone.net> wrote:
>
>
>> On Wed, Aug 20, 2008 at 3:58 PM, Robert Ullmann <rlullmann[at]gmail.com>
>> wrote:
>>
>>> It is now broken, and should be put back. (In particular, the python
>>> wikipedia framework has been broken.)
>>>
>> The User Interface is designed for users. The python Wikipedia
>> framework, therefore, should use the API, and then it won't have these
>> problems.
>>
>> --
>> Andrew Garrett
>>
>> _______________________________________________
>> Wikitech-l mailing list
>> Wikitech-l[at]lists.wikimedia.org
>> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>>
>>


_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 7:30 AM

Post #5 of 32 (898 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 1:58 AM, Robert Ullmann <rlullmann[at]gmail.com> wrote:
> Like this:
>
> http://en.wiktionary.org/wiki/Special:AllPages/Hill
>
> used to display 480 titles starting at "Hill". Now it does what PrefixIndex
> does. If I wanted that, I'd use Prefixindex. How do we get access to the
> original function? (And I don't understand the bit about "excessively long
> output" at all, it always displayed 480 titles (except at the end of the
> wiki).

As far as I can tell, formerly the URL you gave did nothing at all.
r39427 <http://svn.wikimedia.org/viewvc/mediawiki?view=rev&revision=39427>
appears to have allowed subpage syntax to be used for AllPages; if I
undo that commit then AllPages/Foo returns the same page as plain old
AllPages. Your suggested behavior appears more sensible in any event,
though.

I'm not really sympathetic to bot authors who screen-scrape special
pages instead of using the API, though.

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 9:02 AM

Post #6 of 32 (902 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robert Ullmann wrote:
> Quite so. However, it doesn't. And a *very* large amount of stuff is built
> on it. Would be good to fix it. Before changing the UI it relies on.
>
> Question: How would the people maintaining it have known that it was going
> to be broken this morning?

They have known for the past SEVERAL YEARS that UI COMPONENTS FREQUENTLY
CHANGE and they should use MACHINE-READABLE APIS, as they have been told
repeatedly OVER THE YEARS.

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisQBsACgkQwRnhpk1wk45GVwCgx0FBY2oVOaTZfeyt8zqCoNwg
SOAAoK+oEqOpq2x6ZHqwh9zJ511m0+Df
=hB4h
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 9:03 AM

Post #7 of 32 (898 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Aryeh Gregor wrote:
> On Wed, Aug 20, 2008 at 1:58 AM, Robert Ullmann <rlullmann[at]gmail.com> wrote:
>> Like this:
>>
>> http://en.wiktionary.org/wiki/Special:AllPages/Hill
>>
>> used to display 480 titles starting at "Hill". Now it does what PrefixIndex
>> does. If I wanted that, I'd use Prefixindex. How do we get access to the
>> original function? (And I don't understand the bit about "excessively long
>> output" at all, it always displayed 480 titles (except at the end of the
>> wiki).
>
> As far as I can tell, formerly the URL you gave did nothing at all.

You're incorrect.

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisQG4ACgkQwRnhpk1wk466rwCeNFPGtvNgq6+W1PMAjhsxnzmL
kN8AoMrN0zASrL8CjDmXrlT0ZxUZdEYw
=OC+D
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 9:14 AM

Post #8 of 32 (901 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lars Aronsson wrote:
> Especially, the ability to step *back* as well as forward in that
> list can be very useful, when you're looking for alternative
> spellings of a non-existing page name. After searching for
> Kinematics, I need to step backwards to find Kinematic diagram.

Indeed, we've had regressions in the paging links (they used to be
there, in both directions) as well as the starting point behavior.

Reverted in r39708.

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisQsoACgkQwRnhpk1wk44H3ACdGpkU5fLkIVR3vU4uwi2WxTNV
EwwAoI/tmd47EwkUqFQKmwAIA2LNdzps
=8gxC
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


nospam at vyznev

Aug 20, 2008, 9:21 AM

Post #9 of 32 (899 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Brion Vibber wrote:
> Robert Ullmann wrote:
>> Quite so. However, it doesn't. And a *very* large amount of stuff is built
>> on it. Would be good to fix it. Before changing the UI it relies on.
>>
>> Question: How would the people maintaining it have known that it was going
>> to be broken this morning?
>
> They have known for the past SEVERAL YEARS that UI COMPONENTS FREQUENTLY
> CHANGE and they should use MACHINE-READABLE APIS, as they have been told
> repeatedly OVER THE YEARS.

...so where's the edit API?

(Yeah, I know. But my real point is, you'll have a hard time convincing
people that the API is actually a finished product ready for prime time
as long as its feature set, as enabled on Wikimedia sites, has a huge
gaping hole like that.)

--
Ilmari Karonen

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 9:26 AM

Post #10 of 32 (897 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ilmari Karonen wrote:
> Brion Vibber wrote:
>> Robert Ullmann wrote:
>>> Quite so. However, it doesn't. And a *very* large amount of stuff is built
>>> on it. Would be good to fix it. Before changing the UI it relies on.
>>>
>>> Question: How would the people maintaining it have known that it was going
>>> to be broken this morning?
>> They have known for the past SEVERAL YEARS that UI COMPONENTS FREQUENTLY
>> CHANGE and they should use MACHINE-READABLE APIS, as they have been told
>> repeatedly OVER THE YEARS.
>
> ...so where's the edit API?

Why is an edit API needed for reading a list of page names? Oh wait, it
isn't! :)

The edit API is enabled on test.wikipedia.org for testing. If someday I
hear from the API developers that it's ready to go, we'll see about
turning it on elsewhere.

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisRc4ACgkQwRnhpk1wk47M/ACdEqmHERiPwAHJe99bqdU6nMTr
dkwAnAjlzFiHoIslJglBZ+ZaqxyGHmSO
=nWvQ
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


russblau at hotmail

Aug 20, 2008, 9:40 AM

Post #11 of 32 (897 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

"Brion Vibber" <brion[at]wikimedia.org> wrote in
message news:48AC45CE.8060308[at]wikimedia.org...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Ilmari Karonen wrote:
>> Brion Vibber wrote:
>>> Robert Ullmann wrote:
>>>> Quite so. However, it doesn't. And a *very* large amount of stuff is
>>>> built
>>>> on it. Would be good to fix it. Before changing the UI it relies on.
>>>>
>>>> Question: How would the people maintaining it have known that it was
>>>> going
>>>> to be broken this morning?
>>> They have known for the past SEVERAL YEARS that UI COMPONENTS FREQUENTLY
>>> CHANGE and they should use MACHINE-READABLE APIS, as they have been told
>>> repeatedly OVER THE YEARS.
>>
>> ...so where's the edit API?
>
> Why is an edit API needed for reading a list of page names? Oh wait, it
> isn't! :)

That, of course, is not the point at all. The point is, why invest large
amounts of time and effort in developing a bot framework to use an API that
isn't yet complete?




_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 9:58 AM

Post #12 of 32 (900 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Russell Blau wrote:
>> Why is an edit API needed for reading a list of page names? Oh wait, it
>> isn't! :)
>
> That, of course, is not the point at all. The point is, why invest large
> amounts of time and effort in developing a bot framework to use an API that
> isn't yet complete?

The API will never be complete -- it will always be under development.

MediaWiki will never be complete -- it will always be under development.

Wikipedia will never be complete -- it will always be under development.

Yet, I don't think we're going to back off and not use any of them until
they're done?

Screen-scraping constantly-changing UI is like repeatedly banging
yourself in the head with a bowling ball. It's painful and doesn't
accomplish much, but it feels SO GOOD when you stop!

It's not as though nobody uses the API -- it's used by lots of bot
frameworks and custom JS gadgets on the site, and has been FOR YEARS.
It's time for pywikipediabot to wake up and stop hitting itself in the
head...

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisTSoACgkQwRnhpk1wk45rMgCgqm2FtUbEBCnkd3P4uY8dR+nm
oVAAoIDpoNCy/skMlP8Mai2bfPQwk/Us
=4sZR
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


sxwiki at gmail

Aug 20, 2008, 10:01 AM

Post #13 of 32 (900 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Russell Blau wrote:
> "Brion Vibber" <brion[at]wikimedia.org> wrote in
> message news:48AC45CE.8060308[at]wikimedia.org...
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Ilmari Karonen wrote:
>>
>>> Brion Vibber wrote:
>>>
>>>> Robert Ullmann wrote:
>>>>
>>>>> Quite so. However, it doesn't. And a *very* large amount of stuff is
>>>>> built
>>>>> on it. Would be good to fix it. Before changing the UI it relies on.
>>>>>
>>>>> Question: How would the people maintaining it have known that it was
>>>>> going
>>>>> to be broken this morning?
>>>>>
>>>> They have known for the past SEVERAL YEARS that UI COMPONENTS FREQUENTLY
>>>> CHANGE and they should use MACHINE-READABLE APIS, as they have been told
>>>> repeatedly OVER THE YEARS.
>>>>
>>> ...so where's the edit API?
>>>
>> Why is an edit API needed for reading a list of page names? Oh wait, it
>> isn't! :)
>>
>
> That, of course, is not the point at all. The point is, why invest large
> amounts of time and effort in developing a bot framework to use an API that
> isn't yet complete?
>
>
>
>
I've been using the read API for at least a year, in a custom framework
of my own design. It's easier to use than screen-scraping, uses less
bandwidth for both the host and, client, it's stable, and it's faster.
There's every reason in the world to use it, including that you don't
have to worry about the UI changing by surprise at 3AM.

SQL

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 10:27 AM

Post #14 of 32 (893 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 12:03 PM, Brion Vibber <brion[at]wikimedia.org> wrote:
> Aryeh Gregor wrote:
>> As far as I can tell, formerly the URL you gave did nothing at all.
>
> You're incorrect.

Yeah, looks like I only reverted one revision to test when it was a
whole series.

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


vasilvv at gmail

Aug 20, 2008, 10:58 AM

Post #15 of 32 (896 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

SQL writes:
> There's every reason in the world to use it, including that you don't
> have to worry about the UI changing by surprise at 3AM.
>
> SQL
Yes, you just have to worry that query.php is replaced with api.php,
which may be then replaced with something else. And also, I went through
the mediawiki-api archives and found about 9 breaking changes for API.
Pretty stable, isn't it? :)
--vvv

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 11:04 AM

Post #16 of 32 (896 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 1:58 PM, Victor Vasiliev <vasilvv[at]gmail.com> wrote:
> Yes, you just have to worry that query.php is replaced with api.php,
> which may be then replaced with something else. And also, I went through
> the mediawiki-api archives and found about 9 breaking changes for API.
> Pretty stable, isn't it? :)

I don't understand why there are ever breaking changes in the API.
THE API SHOULD NEVER EVER EVER CHANGE. IT SHOULD BE A STABLE
INTERFACE. There needs to be a policy, set in stone, not negotiable,
that behavior for a given API query should NEVER change in an
incompatible fashion. If something is inconsistent it should be
deprecated and a new function instituted to replace it. The old
deprecated way could then be marked for a few years (say, three years,
or at least one year) before finally being removed. Authors of bot
frameworks should be encouraged to write code checking for
<deprecated> or whatever and having their framework raise a warning of
some kind to inform them that they should update it.

This really seems like a no-brainer to me. But, I'm not an API
developer, so . . .

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


roan.kattouw at home

Aug 20, 2008, 11:20 AM

Post #17 of 32 (895 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Russell Blau schreef:
>
> That, of course, is not the point at all. The point is, why invest large
> amounts of time and effort in developing a bot framework to use an API that
> isn't yet complete?
Because it can replace *most* (not all, yet) stuff screenscraping is
currently still used for, and it'll be easier to migrate edit functions
to the API once they're available.

About enabling the edit API on Wikipedia: I think it's ready to go. The
only real problem it currently has is that action=edit doesn't handle
aborts by hooks too well; the edit will be aborted, but the client will
only get a vague "A hook aborted the action" (or something along those
lines) error. A hook that allows for aborting the edit with a meaningful
error message has been added (APIEditBeforeSave), but AFAIK it's
currently only used by ConfirmEdit (and only because I migrated it
myself). Similarly, extensions influencing other actions may rely on UI
hooks that the API bypasses altogether.

We probably want testers' input here too. Also, we'll probably want to
investigate which of the extensions enabled on Wikipedia use 'wrong'
hooks and fix them.

Roan Kattouw (Catrope)

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 11:46 AM

Post #18 of 32 (896 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 2:20 PM, Roan Kattouw <roan.kattouw[at]home.nl> wrote:
> About enabling the edit API on Wikipedia: I think it's ready to go. The
> only real problem it currently has is that action=edit doesn't handle
> aborts by hooks too well; the edit will be aborted, but the client will
> only get a vague "A hook aborted the action" (or something along those
> lines) error. A hook that allows for aborting the edit with a meaningful
> error message has been added (APIEditBeforeSave), but AFAIK it's
> currently only used by ConfirmEdit (and only because I migrated it
> myself). Similarly, extensions influencing other actions may rely on UI
> hooks that the API bypasses altogether.

Um, why are you adding an API-specific hook for this? Shouldn't it be
a backend hook? I'm not sure why there should be *any* API hooks,
actually, since the API should just be presenting backend information
in a standard format. Extensions should never want to change the
format that's returned, as far as I can imagine, since it's supposed
to be uniform across all wikis. They should only want to change the
actual info, which should be done on the backend level.

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


brion at wikimedia

Aug 20, 2008, 11:58 AM

Post #19 of 32 (896 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Aryeh Gregor wrote:
> On Wed, Aug 20, 2008 at 2:20 PM, Roan Kattouw <roan.kattouw[at]home.nl> wrote:
>> About enabling the edit API on Wikipedia: I think it's ready to go. The
>> only real problem it currently has is that action=edit doesn't handle
>> aborts by hooks too well; the edit will be aborted, but the client will
>> only get a vague "A hook aborted the action" (or something along those
>> lines) error. A hook that allows for aborting the edit with a meaningful
>> error message has been added (APIEditBeforeSave), but AFAIK it's
>> currently only used by ConfirmEdit (and only because I migrated it
>> myself). Similarly, extensions influencing other actions may rely on UI
>> hooks that the API bypasses altogether.
>
> Um, why are you adding an API-specific hook for this? Shouldn't it be
> a backend hook? I'm not sure why there should be *any* API hooks,
> actually, since the API should just be presenting backend information
> in a standard format. Extensions should never want to change the
> format that's returned, as far as I can imagine, since it's supposed
> to be uniform across all wikis. They should only want to change the
> actual info, which should be done on the backend level.

The way it _should_ be working is something like this:

1) There's a backend ("controller") class for performing edits. This has
hook points for things like aborting or altering edits (spam checks,
captcha, etc)

2) There's a frontend ("view") class for handling the HTML edit form.
This has hook points for customizing the form output, checking custom
input, and presenting UI for error conditions ("you hit spam!" or "you
need to submit this extra form")

3) There's another frontend ("view") class for handling the API's edit
interface. This _might_ also have hook points for handling special
input/output and custom error formatting, though _ideally_ such stuff
should be able to use existing I/O channels specified in the API (spam
hit just raises an error conditions; captcha hits have an existing
channel for saying "show this and respond to it").


Currently the EditPage class mixes a fair chunk of backend and UI, as do
the edit filter hooks for spam blacklisting, CAPTCHAs, etc, so it's a
bit icky. There's been some refactoring in the course of creating the
edit API (as there was much refactoring to Special:Userlogin when the
API's login modules were being created), but it remains incomplete.

(At least the raw page data storage model isn't mixed into EditPage! :)

- -- brion
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkisaV8ACgkQwRnhpk1wk47AswCgxnUPZhA5+Kxg0tuGdxJ0Z19q
SIEAoKNhI5/SCjIE8tqDPmPTGprwmcW8
=nPgB
-----END PGP SIGNATURE-----

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


bryan.tongminh at gmail

Aug 20, 2008, 12:06 PM

Post #20 of 32 (894 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 7:58 PM, Victor Vasiliev <vasilvv[at]gmail.com> wrote:
[...]
> And also, I went through
> the mediawiki-api archives and found about 9 breaking changes for API.
> Pretty stable, isn't it? :)
> --vvv
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l[at]lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>

But far less recently. The API has been in development phase for the
last two years or so with many modules added over time which were not
all as consistent as we would want it to be. But I think now that we
are entering a more stable phase where large portions that need to be
covered are covered and not much change can be expected.

As for the edit api I'm not really sure whether it is ready. It has
been some time that I last looked at it. If I remember correctly there
are still some problems left with hooks that I'd rather see fixed. I
did fix some myself some time ago but I don't recall whether I fixed
all of them.

Bryan

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


roan.kattouw at home

Aug 20, 2008, 12:08 PM

Post #21 of 32 (892 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Brion Vibber schreef:
>
>> Um, why are you adding an API-specific hook for this? Shouldn't it be
>> a backend hook? I'm not sure why there should be *any* API hooks,
>> actually, since the API should just be presenting backend information
>> in a standard format. Extensions should never want to change the
>> format that's returned, as far as I can imagine, since it's supposed
>> to be uniform across all wikis. They should only want to change the
>> actual info, which should be done on the backend level.
>>
>
> The way it _should_ be working is something like this:
>
> 1) There's a backend ("controller") class for performing edits. This has
> hook points for things like aborting or altering edits (spam checks,
> captcha, etc)
>
> 2) There's a frontend ("view") class for handling the HTML edit form.
> This has hook points for customizing the form output, checking custom
> input, and presenting UI for error conditions ("you hit spam!" or "you
> need to submit this extra form")
>
> 3) There's another frontend ("view") class for handling the API's edit
> interface. This _might_ also have hook points for handling special
> input/output and custom error formatting, though _ideally_ such stuff
> should be able to use existing I/O channels specified in the API (spam
> hit just raises an error conditions; captcha hits have an existing
> channel for saying "show this and respond to it").
>
>
> Currently the EditPage class mixes a fair chunk of backend and UI, as do
> the edit filter hooks for spam blacklisting, CAPTCHAs, etc, so it's a
> bit icky. There's been some refactoring in the course of creating the
> edit API (as there was much refactoring to Special:Userlogin when the
> API's login modules were being created), but it remains incomplete.
>
> (At least the raw page data storage model isn't mixed into EditPage! :)
Yup, EditPage is a nightmare. I have a half-written Edit class lying
around that's supposed to contain the backend part of EditPage. It's far
from complete, however, and currently on hold. I'd be happy to send
anyone interested in continuing that rewrite before I do (which could
take some time) my unfinished work.

About the hooks: most hooks should be in the backend, yes. However,
extensions like ConfirmEdit need to return certain information (CAPTCHA
URLs) to the user. There's a UI hook to do that in the UI, and there's
an API hook to return that information to API users. Now CE is kind of
unique that way, and the API does honor most hooks in EditPage.php, it
just doesn't provide a way to pass a meaningful error message back to
the user. The problem here is that since EditPage doesn't properly
separete UI and backend, neither do its hooks. For instance, the hook
that checks whether an edit is spam is supposed to come up with an HTML
(!) error message, which it has to insert into the EditPage object
somewhere. Of course that's deeply evil from the API's perspective.
There's a similar issue with the upload code (actually, it's even worse)
which necessitates a big rewrite before an action=upload module can even
be written. Luckily (for me), Bryan committed to that task (thanks again).

The recurring theme here is that phase4 (if we ever go there) requires a
rethinking of EditPage.php (and SpecialPreferences.php, BTW).

Roan Kattouw (Catrope)

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


roan.kattouw at home

Aug 20, 2008, 12:08 PM

Post #22 of 32 (896 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Aryeh Gregor schreef:
> On Wed, Aug 20, 2008 at 1:58 PM, Victor Vasiliev <vasilvv[at]gmail.com> wrote:
>
>> Yes, you just have to worry that query.php is replaced with api.php,
>> which may be then replaced with something else. And also, I went through
>> the mediawiki-api archives and found about 9 breaking changes for API.
>> Pretty stable, isn't it? :)
>>
>
> I don't understand why there are ever breaking changes in the API.
> THE API SHOULD NEVER EVER EVER CHANGE. IT SHOULD BE A STABLE
> INTERFACE. There needs to be a policy, set in stone, not negotiable,
> that behavior for a given API query should NEVER change in an
> incompatible fashion. If something is inconsistent it should be
> deprecated and a new function instituted to replace it. The old
> deprecated way could then be marked for a few years (say, three years,
> or at least one year) before finally being removed. Authors of bot
> frameworks should be encouraged to write code checking for
> <deprecated> or whatever and having their framework raise a warning of
> some kind to inform them that they should update it.
>
> This really seems like a no-brainer to me. But, I'm not an API
> developer, so . . .
Those 9 breaking changes sound far worse than they are. Most breaking
changes are allowed as such because they *technically* change the API's
behavior, but in a way that's unlikely to bother people who use decent
frameworks. Anyway, here they are:

[1] was done on the request of an end user and to achieve consistency
across modules. As I pointed out to that user, I doubted that anyone
actually *used* the old behavior, or would even notice when it was changed.
[2] was done to prevent blowing up databases with LIMITless queries. The
limit/continue interface has existed for other modules for ages, and
supporting it for additional modules on the client side should be trivial.
[3] broke something 24 hours after introducing it and made it actually
do something useful
[4] was announced by Yuri 10 months before hybrid support (i.e. support
for both the old and the new parameter) was finally abandoned
[5] and [6] handle erroneous parameters more gracefully, which was a
much-requested improvement but technically broke BC, because erroneous
requests would return a warning rather than an error
[7] was, again, a few days old feature that was moved to a separate
module. Anyone quick enough to support such a young feature can change
one word in the module call equally quickly
[8] was another change to a new module that prevented invalid XML from
getting output
[9] was partially undone in [8] (the userinfo part); the other part was
more database-blowup avoidance

Breaking changes got a bad name earlier because one of them made it kind
of impossible to support both the old and the new behavior at the same
time. This had already been fixed, but the incompatible behavior was
sadly present in 1.12.0rc1 (fixed in the final 1.12.0 release, though),
and now that I know of the issue, I'll think about supporting both old
and new behavior at the same time in future breaking changes.
Ironically, [5] made that kind of support possible in certain situations.

Roan Kattouw (Catrope)

[1]
http://lists.wikimedia.org/pipermail/mediawiki-api/2008-August/000660.html
[2] http://lists.wikimedia.org/pipermail/mediawiki-api/2008-July/000588.html
[3] http://lists.wikimedia.org/pipermail/mediawiki-api/2008-June/000576.html
[4] http://lists.wikimedia.org/pipermail/mediawiki-api/2008-May/000528.html
[5] http://lists.wikimedia.org/pipermail/mediawiki-api/2008-May/000541.html
[6] http://lists.wikimedia.org/pipermail/mediawiki-api/2008-May/000543.html
[7]
http://lists.wikimedia.org/pipermail/mediawiki-api/2008-January/000319.html
[8]
http://lists.wikimedia.org/pipermail/mediawiki-api/2008-January/000311.html
[9]
http://lists.wikimedia.org/pipermail/mediawiki-api/2008-January/000310.html

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 12:14 PM

Post #23 of 32 (893 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 3:08 PM, Roan Kattouw <roan.kattouw[at]home.nl> wrote:
> About the hooks: most hooks should be in the backend, yes. However,
> extensions like ConfirmEdit need to return certain information (CAPTCHA
> URLs) to the user. There's a UI hook to do that in the UI, and there's
> an API hook to return that information to API users.

What you *should* have is a backend hook that allows cancellation of
an edit, with some way of passing back an error condition that can be
displayed by both the human UI and the API.

> The recurring theme here is that phase4 (if we ever go there) requires a
> rethinking of EditPage.php (and SpecialPreferences.php, BTW).

Sounds like an interesting project . . .

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


lars at aronsson

Aug 20, 2008, 12:19 PM

Post #24 of 32 (892 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

Aryeh Gregor wrote:

> On Wed, Aug 20, 2008 at 1:58 AM, Robert Ullmann <rlullmann[at]gmail.com> wrote:
> >
> > http://en.wiktionary.org/wiki/Special:AllPages/Hill


> As far as I can tell, formerly the URL you gave did nothing at all.

This is wrong. It used to list all pages, starting at Hill. There
were links to the previous and next page of the large listing of
all pages.

> r39427 <http://svn.wikimedia.org/viewvc/mediawiki?view=rev&revision=39427>
> appears to have allowed subpage syntax to be used for AllPages;

Yes, so it seems if you compare to the immediately previous
version. But that is the 3rd commit (by aaron) that day. If you
go back to the older version (revision 36481, June 19), there is a
similar statement isset($par), which calls showChunk() rather than
showPrefixChunk().

The old implementation might have drawbacks, but the new version
is too different in function.



--
Lars Aronsson (lars[at]aronsson.se)
Aronsson Datateknik - http://aronsson.se

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Simetrical+wikilist at gmail

Aug 20, 2008, 12:59 PM

Post #25 of 32 (871 views)
Permalink
Re: Special:All pages broken at about 03:00 UTC this morning [In reply to]

On Wed, Aug 20, 2008 at 3:19 PM, Lars Aronsson <lars[at]aronsson.se> wrote:
> This is wrong. It used to list all pages, starting at Hill. There
> were links to the previous and next page of the large listing of
> all pages.
>
>. . .
>
> Yes, so it seems if you compare to the immediately previous
> version. But that is the 3rd commit (by aaron) that day. If you
> go back to the older version (revision 36481, June 19), there is a
> similar statement isset($par), which calls showChunk() rather than
> showPrefixChunk().
>
> The old implementation might have drawbacks, but the new version
> is too different in function.

Yes, this was all clarified in later messages. I was wrong, it was a
functional change. The change was presumably not intended, and Brion
reverted it.

_______________________________________________
Wikitech-l mailing list
Wikitech-l[at]lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

First page Previous page 1 2 Next page Last page  View All Wikipedia wikitech RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.