The on-wiki version of this newsletter can be found here:
https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2025-01-15
--
Happy Wikipedia day!
<https://www.wikifunctions.org/wiki/File:Wikipedia_Seattle_Meetup_2025_cake.…>
Today, 24 years ago, a project named Wikipedia was started. It had the goal
to support the growth of an encyclopedia project called Nupedia. Wikipedia
failed at that original goal, but instead became arguably the most
important source of knowledge in the early 21st century.
This year we are planning to bring a new feature to Wikipedia: a globally
accessible library with functions which can be called from any Wikimedia
project, which can help all Wikipedias to work closer together, and to
share functionality easier across language editions. Happy New Year 2025
and Happy Wikipedia day everyone!
Quarterly Planning for January–March 2025
As with the previous quarters, we are publishing our plan for the upcoming
quarter to make our work more transparent.
- *Provide Wikifunctions integration in articles on Dagbani Wikipedia* (
T383106 <https://phabricator.wikimedia.org/T383106>). The goal is to
allow Wikifunctions functions to be embedded in wiki articles, starting
with the Dagbani Wikipedia. Before that, we also plan to allow function
calls from a test Wikipedia, in order to reduce incentives to use Dagbani
Wikipedia as a testbed.
- *Provide updates to editors when Wikifunctions calls are changed* (
T383156 <https://phabricator.wikimedia.org/T383156>). A first initial
integration to allow Wikipedia contributors to be notified of relevant
changes on Wikifunctions. This is closely related to the initial
integration, but split out for management and tracking purposes.
- *Expand Wikidata access on Wikifunctions to support multilingual
functions* (T383107 <https://phabricator.wikimedia.org/T383107>). We
want to add the ability to request Lexemes for a given Wikidata item. This
will allow functions to be written that generate sentences with the same
meaning in different languages.
- *Improve performance and drive down tech debt & developer inhibitors* (
T383157 <https://phabricator.wikimedia.org/T383157>). We need to speed
up Wikifunctions calls so that it's more useful for you, and also address
some issues that slow down the development of Wikifunctions.
- *Plan for wider adoption and rollout of Wikifunctions to more
Wikipedias*. Dagbani Wikipedia will be the first wiki, but we want to
roll out Wikifunction integrations to many more Wikipedias and other
Wikimedia projects quickly. We will write up and publish a plan for that in
this quarter.
- *Fix high-priority papercuts* (T383163
<https://phabricator.wikimedia.org/T383163>). Wikifunctions has a few
papercut issues – issues that are annoying while using it, but not major or
severe enough to make it to our development roadmap as stand-alone items.
We are planning to devote some resources towards fixing a few such issues.
If you have a particular gripe, please share it with us so we can evaluate
it.
- *Create testing strategy via participation in the test engagement
pilot* (T383165 <https://phabricator.wikimedia.org/T383165>). Our test
system is in need of improvement, in order to increase our confidence in
developing and deploying features and fixes. We will be working with the
Foundation’s Quality Service team on a test pilot with the plan to improve
this situation.
- *Prepare for a future Rust implementation*. We are planning to
eventually rewrite some of our backend services in Rust, and for that we
want to take preparatory steps towards implementation and deployment.
Thank you for joining us on our ride!
Recent Changes in the software
Last week was the first production release of 2025, following Wikimedia's
End-of-Year 2024 release freeze; as there was no update last week, we'll
cover changes made both over the recent holidays, and from last week.
As part of our wider Quarterly work (see above), we worked on a new
internal API to find Functions but filters out ones that can't be embedded
in a text page – those use Types that don't have a parser as inputs, or
output a Type that doesn't have a renderer (T382140
<https://phabricator.wikimedia.org/T382140>). We're making some
infrastructure changes to the databases to make this query work fast
enough, which we'll report on soon (T383561
<https://phabricator.wikimedia.org/T383561>). We've also been working on
back-end performance, focussed on making queries to Wikidata richer and
much faster so they're more useful.
In terms of user-facing changes, there are a couple that you may notice. On
special list pages like Special:ListObjectsByType
<https://www.wikifunctions.org/wiki/Special:ListObjectsByType>, there's now
a check-box to exclude pre-defined Objects (T381005
<https://phabricator.wikimedia.org/T381005>). Thanks to User:Feeglgeef
<https://www.wikifunctions.org/wiki/User:Feeglgeef> for the idea! The
version of the "Ace" code editor was updated from 1.32.7 to 1.37.1 for this
week in CodeEditor by User:SD001
<https://www.wikifunctions.org/w/index.php?title=User:SD001&action=edit&redl…>;
we've duplicated that update in our version, which should improve the
syntax parsing of arrow functions when editing JavaScript (T382800
<https://phabricator.wikimedia.org/T382800>). The edits made by the system
under the User:WikiLambda system
<https://www.wikifunctions.org/wiki/User:WikiLambda_system> user should now
be marked as bot edits (T372009 <https://phabricator.wikimedia.org/T372009>);
thanks to User:Ameisenigel
<https://www.wikifunctions.org/wiki/User:Ameisenigel> for finding the bug.
We've also made some preparatory changes for bigger pieces of work. We've
landed a change to how we index Types in the database that will let us
provide a search view that filters out Functions that use Types that can't
be parsed from input or rendered into text (T382140
<https://phabricator.wikimedia.org/T382140>). This is a key part of the UX
work we're doing for the initial Wikipedia integration. We've altered the
definition of Z6001 to support the feature to fetch Wikidate items, which
we're still developing to be useable (T381207
<https://phabricator.wikimedia.org/T381207>).
There are two Wikimedia-wide testing improvements that we've been plugged
into since the last update. Firstly, we've added a test to ensure our
database schema patches are correct and don't drift over time, and updated
our patches to reflect current config; thanks to Daimona for their work
leading on this (T381981 <https://phabricator.wikimedia.org/T381981>).
We've also declared our language selector code module which is part of the
key page load, which will help ensure we're not shipping lots of code to
readers unexpectedly; thanks to Jon Robson for their work on this (T360590
<https://phabricator.wikimedia.org/T360590>).
As part of wider language support work for MediaWiki, we have added a
number of languages: Z1957/thr (T381839
<https://phabricator.wikimedia.org/T381839>); Z1958/bfw, Z1959/gju-arab,
Z1960/gju-deva, Z1961/hoc, and Z1962/kgg (T381934
<https://phabricator.wikimedia.org/T381934>); and Z1963/ljp (T383038
<https://phabricator.wikimedia.org/T383038>). We've also added the rml-cyrl
secondary code to Z1331/rml (T381838
<https://phabricator.wikimedia.org/T381838>).
We, along with all Wikimedia-deployed code, are now using the latest
version of the Codex UX library, v1.19.1, and Vue, v3.5.13, as of this
week. We believe that there should be no user-visible changes on
Wikifunctions, so please comment on the Project chat or file a Phabricator
task if you spot an issue.
As always, please alert us if you run into any issues.
Recording of Volunteer’s Corner
<https://www.wikifunctions.org/wiki/File:Abstract_Wikipedia_Volunteer_Corner…>
This week we had our monthly Volunteer’s Corner. We were building the cups
to millimeter function <https://www.wikifunctions.org/view/en/Z21658>. A
recording of the Corner is available on Commons:
https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2025-01-15
More than 2000 functions in Wikifunctions
Over the holiday season, we crossed the number of 2000 functions. We thank
all contributors for their contributions to the project, and we are happy
to cross this number after the first full calendar year of operation. In
the spirit of not celebrating the crossing of random numbers, we will
instead see this as a nudge to write up an overview of the status of
Wikifunctions in the coming weeks – but this week’s newsletter is already
too full for that.
Changes to the Function of the Week
We were thinking about the Function of the Week section in the newsletter.
The goal of this section is to highlight functions in detail, in order to
showcase the capabilities of Wikifunctions, and inspire the ongoing growth
of Wikifunctions.
As Wikifunctions growth is accelerating - as mentioned above, we just
crossed 2000 functions - we were thinking that instead of calling out a
single function, we could have a section that lists all new functions since
the last newsletter, and so provide a more holistic report on the growth,
and also a more complete picture of potentially interesting functions. Next
week, we will kick off this new section.
If folks want to keep the Function of the Week section, we are happy to
hand over the work on that section to whoever volunteers, and we are happy
to keep integrating that into the newsletter every week.