Abstract Wikipedia/Updates/2022-07-29
◀ | Abstract Wikipedia Updates | ▶ |
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".
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, 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" 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 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, 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 θ 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
[edit]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
[edit]The Wikimedia Foundation Security team has published a blog post describing their exploration of a new application security pipeline 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. Available in all the usual places for podcasts and very much worth a listen!
Workstream updates as of July 22, 2022
[edit]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
Natural language generation:
- 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