User Details
- User Since
- Oct 10 2014, 8:08 AM (532 w, 6 d)
- Availability
- Available
- IRC Nick
- dues, duesen
- LDAP User
- Daniel Kinzler
- MediaWiki User
- DKinzler (WMF) [ Global Accounts ]
Fri, Dec 20
I noticed that \MediaWiki\Storage\PageUpdatedEvent::getPage returns a PageIdentity instead of a ProperPageIdentity. Is there a particular reason for that?
Closing as resolved. If anyone wants to re-open the discussion about restricting purges or providing a better mechanism for loading gadgets only for logged in users, please file a separate ticket.
Thu, Dec 19
I think this is just blocked on someone (tm) approving the name of the new field in the response. This is an addition to the response schema which cannot easily be undone. It's not clear to me who "owns" that schema...
Straight forward coding, but some conceptual subtleties.
Estimated 5 points. Most of the work is already done now. But the scope is rather large, perhaps this should be split into subtasks.
Should be fixed now. Not in production yet.
Estimated 3 points, mostoly for discussing/defining semantics. The implementation is straight forward (and already compelte).
This is implemented now, though it's still not enabled in production.
Wed, Dec 18
Tagging WMF-Legal
As the WMF-Legal project tag was added to this task, some general information to avoid wrong expectations:
Please note that public tasks in Wikimedia Phabricator are in general not a place where to expect feedback from the Legal Team of the Wikimedia Foundation due to the scope of the team and/or nature of legal topics. See the project tag description.
Please see https://meta.wikimedia.org/wiki/Legal for when and how to contact the Legal Team. Thanks!
Fun fact: the issue with SignatureValidator wasn't caught in CI because it only happens if the main page is a special page. SignatureValidator uses the main page pas parsing context, which usually works fine... but on translatewiki.net it doesn't.
The obvious cases are done. Keeping this open to remind us to have another look at additional cases that may need covering.
Can we just include a file that has the URLs of all the licenses? Swagger depends on some 35 packages, it seems: https://github.com/swagger-api/swagger-ui/blob/master/package-lock.json#L12C1-L47C30
@cscott I agree with all that, except for thinking of the thing being parsed as a revision. I did until recently, and I have now convinced myself that it was a mistake. Maybe you can convince me back ;)
Tue, Dec 17
I agree with @Tgr that this doesn't do much about the currentRevisionRecordCallback, which is part of the process used to map a Link_target to a "revision" (really maybe a fragment or content?).
That said, I don't know that the "fake revision content wrapper" class *necessarily* has to be a MutableRevisionRecord. We could tighten up the MutableRevisionRecord type and still provide some other sort of "fake revision" interface.
@abi_ on what wiki did this happen? Or more importantly, with what version of MediaWiki? Is this from production? Or from CI?
Turns out that forcing a ProperPageIdentity is at odds with the way we use "fake" revisions as parser input: T381982: Fatal exception of type "Wikimedia\Assert\PreconditionException" when marking a page for translation. The conceptual conflict is that revisions can only exist on editable pages, but page content (including multi-slot content) needs to be parsed in the context of a special page (or no page at all).
Looking at other errors in the requests that trigger this error indicate that this may be the consequence of something else failing... In all requests that I looked at, ParserCache is triggering a warning for "inconsistent revision ID", e.g. https://logstash.wikimedia.org/goto/386604c4622a5a49eea2b4823fe3e364 and https://logstash.wikimedia.org/goto/9f64b0643577d3708f452b3027e9ebf9. Many of the affected requests seem to be using pygmentize, but not all do: https://logstash.wikimedia.org/goto/31b977e276d74ba77b2f131b9a4e59b1.
The patch that I hoped would fix this rode the train on the week of December 9th (1.44.0-wmf.6), but apparently didn't fix the issue. I'm confused about the fact that it did nothing. I would have expected the error to at least be triggered earlier, in the constructor of RevisionRecord. If the RevisionRecord was constructed on an existing page, and it's immutable, how can the page later not exist?...
Thu, Dec 12
Wed, Dec 11
@Legoktm There may be no need for stashing or etags at all if you use the output of https://en.wikipedia.org/w/rest.php/v1/page/Earth/html?flavor=edit. flavor=edit makes it embed all the parsoid annotations in the HTML, which should allow the transform endpoint to turn HTML back into wikitext without the need for stashed state.
The safest pattern for service injection is to use a separate handler for each hook, and to inject only the services needed by that hook.
Calling a hook with the noServices option disables service injection. If a handler for such a hook specifies services, an exception will be thrown when the hook is called.
To me, that line of reasoning makes sense for events as well. Thus, wondering how to name that directory within a component that holds the various handlers.
What do you think?
This would be rather cumbersome in the .map format. GeoJSON allows for a description field that could be abused for this role, but I think it would be a pain to parse.
Fri, Dec 6
What would be a good convention for naming the directory that holds the event subscribers?
Thank you!
Thu, Dec 5
Wed, Dec 4
Hm, odd. This looks like fallout from https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1092772 and https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1088321, rfespectively. I can only assume that the test infrastructure was running on an inconsistent copy of the code. If this was a "real" problem, the site would be on fire.
Tue, Dec 3
Mon, Dec 2
Summary of a conversation with @santhosh on Slack:
We decided to go with the subsciber patter, which provides a natural way of wiring core components. See the ChangeTrackingEventIngress class for an example.
Sun, Dec 1
Sat, Nov 30
This all comes back to T20493: RFC: Unify the various deletion systems
Wed, Nov 27
It seems to me that https://github.com/qossmic/deptrac may be a good condidate. A first step might be to ensure that code under libs/ doesn't use code outside libs/.
Nov 26 2024
I'm unsure if running a deferred update from a deferred update is a problem or not.