The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-07-29
--
A few weeks ago, we described the problem that in the canonical
representation of objects for Wikifunctions, the representation of typed
lists was very verbose — or, more briefly, that "typed lists were too looong
<https://meta.wikimedia.org/wiki/Special:MyLanguage/Abstract_Wikipedia/Updates/2022-04-01>
".
In that post, we gave a quick overview of the problem. The team started to
form an opinion, and even though the problem was rather technical, we
decided to describe it in detail for the community
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Typed_lists>, discuss a
number of possible solutions, and describe their advantages and
disadvantages. We were hoping the community would help us solidify an
answer, and point out arguments we hadn’t considered. Even just the act of
describing the problem and the possible solutions in sufficient detail
would probably be beneficial for us, helping to converge on a solution.
That’s "rubber-ducking
<https://en.wikipedia.org/wiki/Rubber_duck_debugging>"
in the large.
My expectations of the benefits of this approach were vastly over-achieved.
Instead of merely discussing the pros and cons of the different proposals,
which was already very helpful, members of the community even made new
suggestions. One community member, Benjamin Degenhart, suggested in the unified
Telegram / IRC chat
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia#Participate> a new
proposal, in which the first element of a list would declare the type of
the list. To be honest, my first thought was “cute, but too hacky”, but we
took and fully described the solution, and started discussing it internally.
In the end, the team changed its preliminary preference from one of the
previous proposals to Benjamin’s newly proposed solution, and we called the
solution Benjamin arrays, to honor the community member who made the
proposal.
Over the last few weeks we implemented Benjamin arrays, which turned out to
be a more extensive task than we originally anticipated. That wasn’t due to
the specific solution — almost all of the other solutions would have been
similarly complex — but rather due to the fact that it touched such a core
aspect of the WikiLambda function model
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Function_model>, and
that many places across a number of repositories were making assumptions
about how arrays were being represented.
As of last week, Genoveva Galarza Heredero, the lead of our Experience work
stream, declared the change in the function model to be fully complete, and
that Benjamin arrays are now fully supported and implemented within all
parts of the Wikifunctions architecture.
Deciding and implementing the canonical representation of typed lists is the
first of the goals of the current Phase θ
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-04-08> that
we have reached. We have been working in parallel on the other goals as
well, but this is the first goal we have fully delivered. We look forward
to achieving the other goals in the next few weeks.
Monthly volunteer corners
Starting on 1st August 2022, we will have monthly "volunteers' corner"
meetings. You can join us via Google Meet, but we will also be tracking the
IRC / Telegram channel. If you have any questions, or things you would like
to work on, or some time you would like to contribute towards the
development of Wikifunctions, please drop by. Volunteers' corner meetings
will go from 17:30-18:00 UTC, and be on the first Monday of every month.
More reading and listening
The Wikimedia Foundation Security team has published a blog post describing
their exploration of a new application security pipeline
<https://phabricator.wikimedia.org/phame/post/view/291/application_security_pipeline_in_gitlab_a_journey/>
that
works well with the planned transition from Gerrit to Gitlab. The
function-schemata component, which is part of the Abstract Wikipedia
architecture, was used as an example for the new pipeline.
Yaron Koren interviewed Julia Kieserman and Adam Baso of the Abstract
Wikipedia team for Episode 116 of his podcast Between the Brackets
<https://betweenthebrackets.libsyn.com/episode-116-adam-baso-and-julia-kieserman>.
Available in all the usual places for podcasts and very much worth a listen!
Workstream updates as of July 22, 2022
The week of July 15 was inspiration week, and will not be covered
individually.
Performance:
- Reproduced performance problems and will continue debugging the
slowness
- Met with SRE to discuss requirements for launch
- Completed end-to-end tests using the Beta Cluster
NLG:
- Iterated on design document describing the template language
- Implemented the template parser as part of the CLI tool and pending
code review
Meta-data:
- Completed needed modifications to existing Vue dialog components
- Finalized refinements to metadata dialog on function page
Experience:
- Officially completed all tasks pertaining to the following goal in the
scope of the current project phase: ‘We decide and implement a canonical
form for typed lists ("Benjamin arrays")’
- Finished and merged checkbox interactivity for table
- [DESIGN] Began research and explorations for the Default component