Dear all,
As we all know, TypeScript would bring a lot of convivence to front-end development by providing a static type system. Unfortunately, most of Wikimedia's front-end codebases do not ship with TypeScript definitions.
To address this problem, recently, I have been working on writing the TypeScript definitions of OOjs and OOUI. Definitions of the former have been published to DefinitelyTyped, which is an official store for TypeScript definitions, and npm (https://www.npmjs.com/package/@types/oojs) while those for the latter are still work in progress.
During the development, some challenges arose:
1. Currently I am the only owner of @types/oojs npm package. This means that any contributions to that package are required to be approved by me, and for contributions from myself they are required to be approved by a DefinitelyTyped maintainer, which could be a slow procedure. I believe it would help a lot if maintainers of OOjs/OOUI or other Wikimedians would like to be another owner, which also reduces the bus factor.
2. The TypeScript compiler cannot recognize OO.inheritClass() calls and extend the class in the type system correctly, thus you need to use type assertions to set up the type correctly. This would bring inconvenience for classes like OO.ui.Dialog which heavily use inheritance.
I am writing to seek solutions to these problems.
Best regards,
diskdance
Matrix.org (both the protocol and the home server) are used quite a bit
by Wikimedia communities:
https://meta.wikimedia.org/wiki/Matrix.org
Currently a number of channels have their primary home on matrix.org and
we advertise app.element.io as primary client too. This means we're
currently relying on the resources of a central entity for what is
supposed to be a decentralised protocol.
Now we know that trouble is brewing: «This is completely unsustainable,
and Element is now literally unable to fund the entirety of the Matrix
Foundation on behalf of everyone else - and has had to lay off some of
the folks working on the core team as a result».
https://matrix.org/blog/2022/12/25/the-matrix-holiday-update-2022https://matrix.org/blog/2022/12/01/funding-matrix-via-the-matrix-org-founda…
For context, Matrix currently has about the same number of users
WhatsApp had in 2012; in 2013, WhatsApp had expenses of 150 M$. You know
what happened next.
https://en.wikipedia.org/w/index.php?title=WhatsApp&oldid=1129148959#cite_r…
So the Matrix Foundation is extremely cheap for what it's doing, but
still it's not gratis. As Wikimedia movement we should at very least
financially support the parts of Matrix that we use the most, like the
IRC bridges.* Alternatively, "we" should switch to some collectively
funded hoster for "our" Matrix presence, like e.g. feneas.org used to
be, and contribute to that. But that seems more complicated and
expensive to arrange.
The same argument applies to many of the upstream projects and assorted
software we rely on https://meta.wikimedia.org/wiki/FLOSS-Exchange ,
especially where it's not realistic to contribute with software
development and where a managed hosting is preferable, but the Matrix
case seems to present some urgency.
Best,
Federico
(*) And Libera Chat itself, if a need ever arises. At the moment they
have practically zero expenses and they mostly ask for borrowed
hardware, which WMF can't really provide and Wikimedia affiliates
usually don't have.
https://libera.chat/contributing/sponsor/https://libera.chat/annual-reports/2021/a1-financial-report/
Hi,
we have a MediaWiki:Deletereason-dropdown which appears as a dropdown on
Special:Delete. How can I create a similar dropdown for frequent
renaming/moving reasons?
--
Bináris
The 1.40.0-wmf.14 version of MediaWiki is [blocked]. The new version is
currently only deployed on group0 and will not proceed further:
* Parsoid: UnexpectedValueException: Invalid version string ""
https://phabricator.wikimedia.org/T325137
It is most probably related to sun setting RestBase from our
infrastructure and I have made the involved people aware of this task on
our internal communication system ( #restbase-sunset on Slack).
[blocked] https://phabricator.wikimedia.org/T320519
--
Antoine "hashar" Musso
Hello,
On our Gerrit, CI results are displayed below the commit message as a
HTML table. It is achieved by a few lines of JavaScript which parse the
comments. I went to write a replacement based on a system builtin
Gerrit: Checks API
<https://gerrit.wikimedia.org/r/Documentation/pg-plugin-checks-api.html>
. An early example: https://phabricator.wikimedia.org/F35814298 .
I could use some early adopters to try out the plugin and gather some
early feedback. If all goes well I will roll it on our Gerrit instance.
If you are curious or want to provide some feedback, below are the
instructions to run it on your local machine.
In Chrome/Chromium, install the Gerrit Frontend Dev Helper extension
<https://chrome.google.com/webstore/detail/gerrit-fe-dev-helper/jimgomcnodki…>.
It is used to inject the JavaScript plugin from a locally running web
server.
Create a new empty directory
Retrieve the JavaScript Gerrit plugin from Change 859083
<https://gerrit.wikimedia.org/r/c/operations/software/gerrit/+/859083/>:
curl -o wm-checks-api.js
'https://gerrit.wikimedia.org/r/changes/operations%2Fsoftware%2Fgerrit~85908…'
Retrieve a PHP router for the PHP built-in webserver. It would inject
cross origin headers when serving a response:
curl -o plugins-router.php
'https://gerrit.wikimedia.org/r/changes/operations%2Fsoftware%2Fgerrit~86088…'
Start a PHP Webserver to serve the plugin:
php -S 127.0.0.1:8081 plugins-router.php
Head to https://gerrit.wikimedia.org/ and enable the Gerrit FE dev
helper plugin. The page will reload.
Click again the browser extension and a configuration popup will appear.
Using the ADD button add an entry with:
* Operator: injectJSPlugin
* Destination: http://127.0.0.1:8081/wm-checks-api.js
Click SAVE. The page reloads and the plugin should have been injected
(there would be a little red box in the bottom right of the Gerrit
page). When browsing a change that previously had CI comments, you
should see a Checks tab which hold the results found by the plugin.
The series of changes is in Gerrit
https://gerrit.wikimedia.org/r/q/topic:checks-api
--
Antoine Musso
/(a good chunk of the code was written late at night over a week-end, I
had to rerelearn JavaScript and discovered TypeScript in the process)./
Hi. Is there a way for javascript to retrieve the current personal list of
recommended languages that appears at the top of the language selector when
navigating with interwiki?
Thank you,
Igal (User:IKhitron)