The on-wiki version of this newsletter can be found here: https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-08-05
--

Launch Plan

As we are getting closer to launching Wikifunctions, we want to share our launch plan with you.

Launch will go through four major stages; we will detail below what each of them means:

  1. Beta: get the beta in a working mode and let folks know about it
  2. Locked-down: deploy WikiLambda to wikifunctions.org but with no general editing
  3. Limited: switch on public visibility and limited function editing on wikifunctions.org
  4. General: move to full editing for wikifunctions.org, declare it launched

Let’s take a look at each of the stages.

Beta

We aim to invite external people to the Beta as soon as possible. The content on Beta may be deleted at any time. This is true for individual pages as well as for the wiki as a whole. Also, this situation will not change: we do not plan to keep content on Beta persistent or to put particular effort into migrating it.

Beta is auto-deployed from "head", which means whenever we merge a change to any of the components of Wikifunctions, it will be deployed to Beta within a few minutes.

We are still working on ensuring that the major workflows are possible and that a rough monitoring infrastructure is in place.

Locked-down deploy

We will set up wikifunctions.org as a wiki — an instance of WikiLambda on the production Wikimedia systems. This is to find hidden surprises in moving it from beta to production. This will use the standard Wikimedia accounts ("SUL") but will allow only a very small group to make edits or call the API while we check that everything is plugged together as we expect.

For this system, we will already be following our future deployment mechanism, i.e. we cut releases and are part of the weekly Wikimedia-wide deployment train, etc. We will begin to prioritize fixing issues in production, figuring out a playbook on how to do this (ideally, we will be following existing Foundation playbooks on this).

Content may still be deleted any time.

Limited launch

We may reset the content at this point. We will copy over the Main Page and other community content from Meta, where we previously collaborated with the community on the Wikifunctions main page (we will start a discussion on that, soon). We switch on general editing for all logged in users, and Wikifunctions-specific editing to users with the appropriate rights. We will have a configurable rate-limiting in place, which limits the number of functions a single user can run. Calling approved functions will work for both logged-in as well as logged-out users.

We will follow the deployment train, and so we need to have processes to support three versions (head, current deployment, next deployment), while developing like other Wikimedia teams do. We will have the appropriate playbooks in place for that.

From this point on, content (functions, implementations, documentation) will be expected to be persistent. We still might need to start over, but we will try not to.

General launch

We will declare a general launch. We will have to follow our deployment playbooks. We will have to keep content persistent.

At this point we will invite external communities and increase our outreach.

Please let us know if you have suggestions or questions around the launch plan.

Representing functions

We have recently published the start of a discussion about generic function types. The initial function model had expected to change the type of a function from just being a Function to include the signature of the function, i.e. the type of a function such as “length of string” would not be just “function” but instead “function from a string to a positive integer”. This would have considerable advantages, particularly for higher-level functions, i.e. functions using other functions as arguments.

However, our recent experience with Benjamin arrays showed us that changing the function model is a rather complex and subtle process that will likely take a long time. We are not sure about whether the benefit is worth the effort and delay, and what our approach here should be. Ali Assaf wrote this document detailing three options, and we invite you to share your thoughts.

Wikimania 2022

We will be presenting at Wikimania! Wikimania 2022 will be from August 11 to 14 and will be primarily virtual. You can learn more about the event and register from the Wikimania 2022 page.

Some of our team will be attending portions of the Hackathon. If you'd like to work on one of the #good_first_tasks or another task, we would be very thankful. Reach out to our team members, and say hi! We’re happy to help.

Reminder: You can also see an overview of our session and related sessions from last year's Wikimania.

Workstream updates as of July 29, 2022