Wikifunctions:Status updates/2026-03-26 - Wikifunctions
Jump to content
From Wikifunctions
Wikifunctions:Status updates
Translate this page
Other languages:
العربية
Wikifunctions Status updates
First few days of Abstract Wikipedia Beta
Last week we kicked off the Beta of Abstract Wikipedia, and many of you came to visit and some of you came to become part of a new community. We are very excited about how things are going!
The numbers are constantly changing, but so far already more than 120 articles have been started.
ChaoticVermillion
has created
a page to commemorate the first 25 articles
. One thing we are particularly happy about is that more than 75 volunteers have made contributions to the wiki, and the wiki has seen more than 1000 edits already. We understand that contributing to Abstract Wikipedia is currently not a very user-friendly experience, and a lot of things are broken. We have already fixed a whole slew of things (see the section on Recent Changes in the software below), and we are working on many more.
Based on the initial reaction and your feedback, we are changing our plans for the upcoming quarters, to focus on bugfixes, features, and capabilities that you are raising. We are monitoring the Phabricator board, the Project chat, and the Telegram / IRC chat, and collecting your feedback and suggestions. This will be our priority in the coming months.
We are also excited to see that Wikifunctions is seeing a significant increase in the pace of new functions being created. This week we report 79 new functions! Some of them are in languages that had no functions before, and some of them are providing functionality that helps with writing Abstract Wikipedia articles.
By the way, here’s one tip: currently, caching for Abstract Wikipedia happens on the level of the “fragment”. This means that by putting several sentences into a single paragraph, the paragraph as a whole is being run, may cause time-outs, and will be cached. Instead, if, for now, you put one sentence into each fragment, caching and evaluation can be more spread out and should allow for more content. Eventually we want to fix that, but it may take a moment, so you can try out more by following this tip for now. This can be changed later again and pulled together into paragraphs if so wished.
As you might have noticed, there have been a few bugs that we've fixed and tweaks that we've made. We fixed a bug that meant that the code mis-configured some namespaces, so broke talk and User pages and published the very first articles in the wrong place (
T420617
T420649
). We switched the orchestrator's composition language temporarily back to v1
T418887
, then made some quick fixes (
T419833
) and then re-enabled it — see below. We switched up a hard-coded link for policies to the new initial policy list. We fixed a bug that meant the creation workflow looked in the wrong place to make sure you didn't over-write an existing page (
T420725
), and it worked if you browsed directly to Special:CreateAbstract/Q123456 (
T420916
). We adjusted the display of previews to correctly set the language's RTL status too (
T420687
) and we added Help links for the pages to view and create Abstract articles.We're working now on improving performance and caching, fixing the /view/ links to work, making sure Abstract Wikipedia pages show up on the Tools database views, adding to the site statistics process, and a dozen other little things. Thank you for bearing with us!
Keep giving us feedback! We really appreciate your willingness to try things out, and are very happy to see you accepting this early version of Abstract Wikipedia.
Status of Composition Language v2
A couple of weeks ago, we enabled composition language v2 in production. There were some minor bugs that the team was able to triage, but there was also a set of function calls that became categorically impossible to specify. An example case is
here
. These function calls worked in v1 because of 1) an extremely lazy execution model and 2) lax error handling. In v2, execution order is much stricter (and more comprehensible!), and error handling has become predictable. As a result, when a
Z7/Function call
will cause an error, that error is immediately returned in v2.
We have since added
a temporary layer of indirection
(hereinafter the "scope hack") to the v2 composition language. This will cause affected functions to work much in the way they did in v1. However, this is a temporary measure. It is bad for performance and it makes the Wikifunctions language semantics a bit strange.
In future, compositions that depend on error-handling functions (e.g.
Z850/Try-catch
and
Z853/Get error
) should wrap top-level
Z7/Function calls
in
Z99/Quote
, then use
Z899/Unquote
inside of the composition. This technique is verified to work in all versions of the composition language, so it will be possible to migrate all existing functions.
Another unwanted side effect of v2 and its new strategy for error handling is that many of the failing function calls might return a different error type. While we will work to always return the most accurate and descriptive error type, it is possible that many calls that rely on
Z850/Try-catch
to catch a specific error type will now fail until the expected error type is corrected to the one thrown by v2.
We will document all the content issues that we come across and track their status here:
Wikifunctions:Request for cleanup
. Once these functions have been migrated, we will roll back the scope hack.
Recent Changes in the software
This week on Wikifunctions, we made the following changes: When you're editing an article with the visual editor with a Wikifunctions call that creates a reference, we now show the style more clearly. We also now show the standard MediaWiki warning box when you're editing an old version of a Wikifunctions Object page (
T364318
).
Wikifunctions presentation at WikiCon Australia on 11 April 2026
Toby Hudson
will be presenting
Wikifunctions in Practice: Reusable Logic for Wikimedia
at
WikiCon Australia
on 11 April 2026 at 12:00 local time at the
National Film and Sound Archive of Australia
in
Canberra
Here is the description of the talk:
Wikifunctions promises something simple but ambitious: write logic once, and make it reusable across Wikimedia projects and languages. Small, well-chosen functions can have outsized impact and eliminate some updating, copy-pasting, or even translation.
This talk focuses on goals and practical usage rather than internals or programming, but will allow plenty of time for questions from the audience to dig into the details. We'll see what Wikifunctions is and what it's for. We will test a range of existing functions on Wikifunctions directly. We will see how to embed the result of a function call in a regular Wiki page elsewhere on a sister project. Then we will look ahead to how Wikifunctions will play a key role in the future Abstract Wikipedia.
Thank you Toby for giving this presentation! And everyone have fun at WikiCon Australia!
Volunteer’s Corner upcoming on 13 April 2026
The next Volunteers’ Corner will be on
Monday, 13 April 2026 at 17:30 UTC
. We plan to have the following agenda: there will be time to ask questions and discuss all matters arising. We will celebrate the launch of Abstract Wikipedia Beta. If we have time, we will either write a function together or work on an Abstract Wikipedia article together (volunteer-led). Everyone is welcome to join us on
Google Meet
Fresh Functions weekly: 76 new Functions
This week we had 76 (!) new functions. That’s a lot more than usual, driven by the launch of Abstract Wikipedia Beta. Here is an incomplete list of functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing!
enumerate adjacent-key typos for digit string (
Z32085
filter WD claims by exact predicate (
Z32097
sort list of Unicode code points, ascending (
Z32109
paragraph (
Z32123
later than (Time of Day) (
Z32126
section title from Wikidata label in sentence case (
Z32145
paragraph from list of fragments with separator (
Z32149
State location using entity and class, Malay (
Z32152
defining role sentence in Hebrew (
Z32160
paragraph from list of sentences, space separated (
Z32163
Malay superlative form of adjective (lexeme based) (
Z32177
HTML unordered list with item tagging (
Z32179
wrap an HTML fragment as a list item (
Z32180
Malay first superlative form (teR-) (
Z32185
State location using entity and class, Tagalog (
Z32193
Shown in (English) (
Z32199
default cross-lingual fragment shown in (
Z32204
Sentence that something shown in (
Z32208
defining role sentence in S/T Chinese (
Z32212
basic Abstract Wikipedia list item (
Z32215
Portuguese indefinite article (
Z32225
quantity comparison (
Z32229
quantity comparison, English (
Z32230
join text-like objects into HTML fragment (
Z32234
English non-defining role sentence (
Z32244
English collective role sentence (
Z32249
are Integers congruent modulo other Integer? (
Z32261
best values from Wikidata item statements (
Z32290
list has at most one element (
Z32302
join list of strings in given language (proper) (
Z32308
X exists in N Ys (
Z32321
Collective role sentence (
Z32326
Latin plural (
Z32330
Latin decline 1st declension noun (
Z32340
Latin decline 2nd declension noun (
Z32343
Latin decline 3rd declension noun (
Z32347
defining role sentence in Japanese (
Z32355
State location using entity and class, French (
Z32371
lexeme object list from lexeme references (
Z32373
complete list of all functions sorted by when they were created
is available.
Retrieved from "
Category
Status updates
Wikifunctions
Status updates/2026-03-26
Add topic