Hi,
for HTML version see https://www.mediawiki.org/wiki/Scrum_of_scrums/2020-06-03
Željko
--
= 2020-06-03 =
== Callouts ==
* Release Engineering
** Branch cut automation starts in 2 weeks with 1.35.0-wmf.37[0]!
Branches will be cut at 02:00 UTC every Tuesday starting June 16th.
Please yell if that's an issue: [[phab:T242446]]
** [All] Review guidance at [[wikitech:Deployments/Covid-19]] and Code
Deployment Office Hour at 17:00UTC in #wikimedia-office
** "scap sync" will be renamed to "scap sync-world" in the next
release. If you use "scap sync" non-interactively, please add a note
to: [[phab:T250302]] (and also, explain why you're using it)
== Product ==
=== Web ===
* Updates:
** '''Summary''': collapsible sidebar UI is wrapping up, persistence
continues, and starting content width limiting for Desktop
Improvements Project (DIP), scaffolding Vue.js search.
** [[Reading/Web/Desktop_Improvements|Desktop Improvements Project
(Vector / DIP)]]:
*** [[phab:T253905|<nowiki>Vector page layout corrupted on cached
pages</nowiki>]]
*** [[phab:T254048|<nowiki>Render the FallbackSkin and SkinApi with a
simplistic SkinMustache class</nowiki>]]
*** [[phab:T252841|<nowiki>Update the method Wikibase uses to inject
edit language links into the language portal</nowiki>]]
*** [[phab:T253938|<nowiki>Future proof addPortletLink</nowiki>]]
*** [[phab:T253912|<nowiki>gadget regression: addPortletLink doesn't
reveal hidden menus in Vector any more [causes disappearance of merge
datas on Wikidata]</nowiki>]]
*** [[phab:T252917|<nowiki>Drop support for SkinTemplateToolboxEnd in
Vector, with suitable replacement</nowiki>]]
*** [[phab:T252800|<nowiki>Regression: Option add links in other
languages has disappeared</nowiki>]]
*** [[phab:T249372|<nowiki>[Dev] DRY up the menu templating code</nowiki>]]
*** [[phab:T246419|<nowiki>Build collapsible sidebar and sidebar
button </nowiki>]]
*** [[phab:T253329|<nowiki>Deprecate the `.menu` class</nowiki>]]
*** [[phab:T251212|<nowiki>[Dev] Drop VectorTemplate usage in Vector</nowiki>]]
*** [[phab:T191021|<nowiki>Standardize `.mw-ui-icon` to overhauled
icon canvas size 20x20</nowiki>]]
*** [[phab:T60137|<nowiki>Deprecate the
SkinTemplateOutputPageBeforeExec hook</nowiki>]]
*** [[phab:T246420|<nowiki>Limit content width, and refine alignment &
styling of relevant elements</nowiki>]]
*** [[phab:T246427|<nowiki>Make collapsible sidebar persistent across
sessions for logged-in users, for sessions for logged-out
users</nowiki>]]
*** [[phab:T244392|Vue.js search case study]]:
**** See [[Reading/Web/Desktop Improvements/Vue.js case study/Status
log|weekly status updates]].
** Mobile website (MinervaNeue / MobileFrontend):
*** [[phab:T253084|<nowiki>Don't count startup script
resourceloader.exception events in WebClientError error
counting</nowiki>]]
*** [[phab:T246767|<nowiki>Implement Tap to show for lazy loaded
images without MutationObserver - Scrolling on a Kai OS mobile device
can be slow on articles with lazy loading</nowiki>]]
*** [[phab:T240622|<nowiki>[Technical debt payoff] Remove
InlineDiffFormatter and InlineDifferenceEngine from
MobileFrontend</nowiki>]]
*** [[phab:T254009|<nowiki>MobileFrontend QUnit tests are broken in
Special:JavaScriptTest</nowiki>]]
*** [[phab:T246838|<nowiki>Avoid SEO performance and user experience
penalties by addressing our handling of lazy loaded images using
IntersectionObserver</nowiki>]]
*** [[phab:T234570|<nowiki>Tech debt: Drop Browser.supportsAnimations
method</nowiki>]]
** Alex and Stephen in performance training this week.
=== Product Infrastructure ===
* Updates:
** Continuing work on push notifications project
*** in the Echo extension and
*** in a Node service written in TypeScript for actually sending the
notification to push vendors (mediawiki/services/push-notifications).
=== Structured Data ===
* Updates:
** minor MachineVision patches
** work on MediaSearch prototype
** adding schema.org data to commons images
** SDAW preliminary work
=== Parsing ===
* Blocking:
** Language: (not urgent) See comment on [[phab:T47096#6129671]]
=== Language ===
* Blocked by:
** Fundraising Tech: (not urgent) Review of [[gerrit:598470]] would be helpful
** Parsing: (not urgent) See comment on [[phab:T47096#6129671]]
* Updates:
** Language-data library is now available both in npm and packagist:
https://language-data.readthedocs.io/en/latest/
** Vue.js based Content Translation dashboard and section translation
development continues.
== Technology ==
=== Fundraising Tech ===
* Blocking:
** Language: (not urgent) Review of [[gerrit:598470]] would be helpful
* Updates:
** Doing some code cleanup made possible by the removal of the db
connection from payments-wiki. Will soon decommission / deinstall the
ContributionTracking mediawiki extension. [[phab:T253057]],
** Adding Civi feature to send automatic email on recurring payment
failure: [[phab:T230064]]
** Trying new API call to get mass mailing criteria from bulk mailing
provider: [[phab:T252247]]
** Deployed code to migrate recurring card payments from old to new
API, starting to test with real payments: [[phab:T232017]]
** Integrating lists of companies who match employee donations into
payments-wiki forms, building CiviCRM extension to sync the data.
[[phab:T249922]], [[phab:T251200]]
=== Core Platform ===
* Blocking:
** Search Platform: MW Job consumers sometimes pause for several
minutes [[phab:T224425]]
=== Engineering Productivity ===
==== Release Engineering ====
* Updates:
** [All] Review guidance at [[wikitech:Deployments/Covid-19]] and Code
Deployment Office Hour at 17:00UTC in #wikimedia-office
** "scap sync" will be renamed to "scap sync-world" in the next
release. If you use "scap sync" non-interactively, please add a note
to: [[phab:T250302]] (and also, explain why you're using it)
** Branch cut automation starts in 2 weeks with 1.35.0-wmf.37[0]!
Branches will be cut at 02:00 UTC every Tuesday starting June 16th.
Please yell if that's an issue: [[phab:T242446]]
** Train Health
*** Last week: 1.35.0-wmf.34 - [[phab:T253022]]
*** This week: 1.35.0-wmf.35 - [[phab:T253023]]
*** Next week: 1.35.0-wmf.36 - [[phab:T254173]]
=== Search Platform ===
* Blocked by:
** Core: MW Job consumers sometimes pause for several minutes [[phab:T224425]]
* Updates:
** maps: traffic to maps2004 dropped by iptables - [[phab:T249701]]
=== Site Reliability Engineering ===
* Updates:
** Unblocked Research and Product infrastructure on mobileapps,
proton, recommendation-api deployments on kubernetes.
Hi All,
I am using the VE model in a Gadget and I am wondering how can I get the
headings which have been entered on the VE surface for further processing
Thanks
Hi all,
This was already announced in the last TechCom Radar email, but in case you
have missed it:
In an hour, we will be talking about the hybrid extension management:
https://phabricator.wikimedia.org/T250406
You can join the discussion on IRC in the #wikimedia-office channel.
--
Alex Paskulin
Technical Writer
Wikimedia Foundation
Link <https://phabricator.wikimedia.org/T119173>.
Various problems with ENUM have been presented,
and it appears that its use cases may be better accommodate
in db schemas for MediaWiki by other means.
I'm looking for the following:
* Success stories with ENUM (cases where it's not only good but better than
alternatives).
* Horror stories or scenarios we not yet covered.
These would influence the direction, our options are currently:
* Keep allowing it and encourage it for cases where its good.
* Start discouraging it in general, but document cases for which it makes
sense.
* Disallow by default (in policy). New usage would require approval through
some other method (e.g. DBA feedback or some such).
More at <https://phabricator.wikimedia.org/T119173>.
-- Timo
The Search Platform Team
<https://www.mediawiki.org/wiki/Wikimedia_Search_Platform> usually holds
office hours the first Wednesday of each month. Come talk to us about
anything related to Wikimedia search!
Feel free to add your items to the Etherpad Agenda for the next meeting.
Details for our next meeting:
Date: Wednesday, June 3rd, 2020
Time: 15:00-16:00 GMT / 08:00-09:00 PDT / 11:00-12:00 EDT / 17:00-18:00 CEST
Etherpad: https://etherpad.wikimedia.org/p/Search_Platform_Office_Hours
Google Meet link: https://meet.google.com/vyc-jvgq-dww
Join by phone in the US: +1 786-701-6904 PIN: 262 122 849#
Hope to talk to you in a week!
—Trey
Trey Jones
Sr. Software Engineer, Search Platform
Wikimedia Foundation
UTC-4 / EDT
Hooks::run() was soft-deprecated in Nikki Nikkhoui's HookContainer
patch, merged on April 17. [1] And my patch to remove almost all
instances of it in MediaWiki Core was finally merged over the weekend.
[2] That means that everyone writing core code now needs to learn how
to use the new hook system.
HookContainer is a new service which replaces the functionality which
was previously in static methods in the Hooks class. HookContainer
contains a generic run() method which runs a specified hook, analogous
to Hooks::run(). However, unlike Hooks::run(), you generally should
not use HookContainer::run() directly. Instead, you call a proxy
method in a hook runner class.
Hook runner classes give hooks machine-readable parameter names and types.
How to call a hook
------------------
In MediaWiki Core, there are two hook runner classes: HookRunner and
ApiHookRunner. ApiHookRunner is used in the Action API, and HookRunner
is used everywhere else.
How you get an instance of HookRunner depends on where you are:
* In classes that use dependency injection, a HookContainer object is
passed in as a constructor parameter. Then the class creates a local
HookRunner instance:
$this->hookRunner = new HookRunner( $hookContainer );
* In big hierarchies like SpecialPage, there are always
getHookRunner() and getHookContainer() methods which you can use.
* Some classes use the ProtectedHookAccessor trait, which provides
getHookRunner() and getHookContainer() methods that get their
HookContainer from the global service locator. You can also call
MediaWikiServices::getHookContainer() in your own code, if dependency
injection is not feasible.
* There is a convenience method for static code called
Hooks::runner(), which returns a HookRunner instance using the global
HookContainer.
* Extensions should generally not use HookRunner, since the available
hooks may change without deprecation. Instead, extensions should have
their own HookRunner class which calls HookContainer::run().
Once you have a HookRunner object, you call the hook by simply calling
the relevant method.
How to add a hook
-----------------
* Create an interface for the hook. The interface name is always the
hook name with "Hook" appended. The interface should contain a single
method, which is the hook name with a prefix of "on". So for example,
for a hook called MovePage, there will be an interface called
MovePageHook with a method called onMovePage(). The interface will
typically be in a "Hook" subnamespace relative to the caller namespace.
* Add an "implements" clause to HookRunner.
* Implement the method in HookRunner.
Note that the name of the interface is currently not enforced by CI.
Alphabetical sorting of interface names and method names in HookRunner
is also not enforced. Please be careful to follow existing conventions.
How to deprecate a hook
-----------------------
Hooks were previously deprecated by passing options to Hook::run().
They are now deprecated globally by adding the hook to an array in the
DeprecatedHooks class.
Using the new system in extensions
----------------------------------
Extensions should create their own HookRunner classes and use them to
call hooks. HookContainer::run() should be used instead of Hooks::run().
As for handling hooks, I think it's too early for a mass migration of
extensions to the new registration system as described in the RFC.[3]
Extension authors who are keen to pilot the new system can give it a
go. Make sure you add Nikki and me as reviewers.
More information about the new system can be found in docs/Hooks.md
[4]. The patch to add it should soon be merged.
[1] https://gerrit.wikimedia.org/r/c/mediawiki/core/+/571297
[2] https://gerrit.wikimedia.org/r/c/mediawiki/core/+/581225
[3] https://phabricator.wikimedia.org/T240307
[4]
<https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/323ac073d38…>
-- Tim Starling
This has been happening since Saturday. Looking for resolution.
Empty patch to demonstrate:
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/600431
Last merged patch (passed test, insignificant change to php):
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/596512
Failure:
https://integration.wikimedia.org/ci/job/mwskin-php72-phan-seccheck-docker/…
Error:
TypeError: Argument 1 passed to
PreTaintednessVisitor::linkParamAndFunc() must be an instance of
Phan\Language\Element\Variable, instance of
Phan\Language\Element\Property given, called in
/opt/phan/vendor/mediawiki/phan-taint-check-plugin/src/PreTaintednessVisitor.php
on line 147 and defined in
/opt/phan/vendor/mediawiki/phan-taint-check-plugin/src/TaintednessBaseVisitor.php:1093Stack
trace:#0 /opt/phan/vendor/mediawiki/phan-taint-check-plugin/src/PreTaintednessVisitor.php(147):
PreTaintednessVisitor->linkParamAndFunc(Object(Phan\Language\Element\Property),
Object(Phan\Language\Element\Method), 0)#1
/opt/phan/vendor/mediawiki/phan-taint-check-plugin/src/MWPreVisitor.php(40):
PreTaintednessVisitor->visitMethod(Object(ast\Node))
...
Aron
The third bug in the recent wave of regressions (T253819
<https://phabricator.wikimedia.org/T253819>: Dancing Search Bar in
MediaWiki) is a high visibility bug, it happens at a range of screen widths
on all wikis for any kind of users (readers too).
A reddit video of it
<https://www.reddit.com/r/softwaregore/comments/gtbdwu/cant_fit_all_the_butt…>
gained
21k upvotes in 2 days.
I think this should be hotfixed as soon as possible: the current behavior
damages the image of Wikipedia.
I've submitted the hotfix on Saturday:
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/600358
Further steps require +2 access. Today there are 2 SWAT windows left, the
patch is simple, I hope developers familiar with Vector will take swift
action.
Note to reviewer:
The patch simply reverts the rename of `emptyPortlet` class in the JS,
similar to the hotfix of the 2nd bug which reverted the rename in CSS:
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/599468
Additional note: the CI test fails with an unrelated
'phan-taint-check-plugin' error detailed in the previous email.
Explanation of the issue:
* CSS: `.emptyPortlet` class hides the menu
* JS: removes the `.vector-menu-empty` class instead, which does nothing,
thus the More menu remains hidden.
* The menu collapsing logic's size calculation expects the menu button to
be visible. Without that it decides there is enough space to uncollapse the
recently collapsed tab, thus the dance begins.
Demian (Aron)
Hi Community Metrics team,
This is your automatic monthly Phabricator statistics mail.
Accounts created in (2020-05): 362
Active Maniphest users (any activity) in (2020-05): 1144
Task authors in (2020-05): 586
Users who have closed tasks in (2020-05): 326
Projects which had at least one task moved from one column to another on
their workboard in (2020-05): 322
Tasks created in (2020-05): 2531
Tasks closed in (2020-05): 2462
Open and stalled tasks in total: 44655
* Only open tasks in total: 43592
* Only stalled tasks in total: 1063
Median age in days of open tasks by priority:
Unbreak now: 0
Needs Triage: 563
High: 922
Normal: 1254
Low: 1773
Lowest: 1799
(How long tasks have been open, not how long they have had that priority)
Active Differential users (any activity) in (2020-05): 9
To see the names of the most active task authors:
* Go to https://wikimedia.biterg.io/
* Choose "Phabricator > Overview" from the top bar
* Adjust the time frame in the upper right corner to your needs
* See the author names in the "Submitters" panel
TODO: Numbers which refer to closed tasks might not be correct, as
described in https://phabricator.wikimedia.org/T1003 .
Yours sincerely,
Fab Rick Aytor
(via community_metrics.sh on phab1001 at Mon 01 Jun 2020 12:00:17 AM UTC)