Abstract Wikipedia/Updates/2023-07-20
◀ | Abstract Wikipedia Updates | ▶ |
Summary: The initial deployment of Wikifunctions is coming up in the next few weeks. This newsletter provides details on our release plan, what will be possible, and an update on changes to the development in the last few weeks.
Deploying the initial wikifunctions.org
We are very excited to announce our plan to slowly roll out Wikifunctions.org!
Within the next few weeks, the Wikimedia Foundation will begin deploying early versions of Wikifunctions, a new Wikimedia project that will allow anyone to create and maintain code. We have previously published our plan for this, and now we are adding some preliminary dates to the previous plan.
Phase 1: Locked-down deployment to wikifunctions.org is planned for Wednesday, 26 July 2023. The site will be readable by everyone, but all rights for editing and calling functions will be limited to staff accounts. This release is mostly for testing purposes, to check if there are any major issues. We will copy over a small set of community and documentation pages to Wikifunctions, and make a few test edits to the Object pages. This includes creating a first Function with a set of Testers and Implementations. Because of the simplicity, we suggest using a Function with Boolean inputs and outputs, but String is also a possibility. Join us in discussing what the very first function should be! We have changed Beta Wikifunctions's Main Page into a first sketch of the future. Feel free to join us in improving and discussing it.
Phase 2: Limited roll out. If all tests go well, we plan to allow for wikitext-based content to become editable on or around Tuesday, 1 August 2023. All logged-in users will be able to create and edit talk pages, project pages, help pages, etc. Everyone will be able to call functions. Only contributors with a special role will be able to edit Objects in Wikifunctions (i.e. creating and maintaining Functions, Testers, Implementations, etc.). We will set up a page on Wikifunctions where contributors can request this role - this will be assigned slowly at first, and ramped-up soon after, if all goes well. The reason for this gradual roll-out is to decrease the chance that things break too badly.
Phase 3: General availability. A few weeks later, depending on the results – certainly after Wikimania, but hopefully before November – we will declare the limited roll out over and allow every logged-in user to edit Objects on Wikifunctions. At this point, Wikifunctions will be fully launched. Together with the community, we will keep developing and working on Wikifunctions. As you will see below, Wikifunctions will start out with a limited set of features, and we will add more over the coming years.
All dates in this plan are preliminary. There are still a few show-stopping bugs and issues to resolve, but we and colleagues are working hard on those. We will keep you all updated on the IRC / Telegram channel, on the mailing list, and, eventually, on the wiki. We'll maintain a page with our status, and what you can expect, on-wiki once Wikifunctions is online.
Capabilities at the start
Initially, we will support two pre-defined Types for the inputs and outputs of Functions: Strings and Booleans. The creation of new Types will at first be restricted to staff members. Staff members will create Types following community consensus, and we will support the community in describing and designing additional Types. There are some caveats around new Types which we will describe in detail soon. Better support for more Types, and making it easier to create them, is high on our list of follow-up tasks after getting the site up.
At first, there won’t be any integration between Wikifunctions and the other Wikimedia projects. You won't be able to fetch data from Wikidata, or include Wikifunctions calls in other Wikimedia projects articles yet. These integrations will be the first larger tasks we will work on after release.
Press, outreach, and expectation management
Given the very limited capabilities and the uncertainty surrounding parts of the deployment, we hope for a quiet initial deployment – as far as that is possible. We understand that a new Wikimedia project is an exciting development (certainly, for us!), and there could be public interest around this – but we don’t want to push for a lot of visibility at this point while the project is still in an early production phase. We are starting with an empty wiki, with a new wiki's community, and with very limited capabilities as outlined above. As they say, there is only one opportunity for a first impression, so we want to make that count for a lot of people. Just as with Wikipedia in its early years, there wasn’t that much to point people to.
Wikifunctions will start as a promise, a blank slate, where a community of people interested in Wikifunctions’s vision and, more importantly, friendly with each other, can come together to work towards a library of useful functions. And in a few months, or even years, we will have a site that will be interesting and useful to the general public. We think we are still a few steps away from a launch to the wider public audience. We will keep you all updated on our progress while building and learning on the way.
About the development phases
We had previously organized our pre-deployment development work into eleven functional phases, named after the first eleven letters of the Greek alphabet. While we were laboring on Phase θ (theta), some parts of it took longer than expected, whereas other development resources freed up. We thus pulled work from the other phases forward, and partially reprioritized them in order to more swiftly reach you, our users. This way we are basically finishing Phase ι (iota), which was about adding short documentation strings to the objects in Wikifunctions, and Phase κ (kappa), which was about cleaning up threads that were left open pre-release together with Phase θ, and are moving right into our final Phase λ (lambda).
The details on how the deployment will proceed are described above. Given this development, we will also stop using the Greek-letter-named, feature-focussed development phases. It was fun while it lasted!
Please, join us in deciding on the very first Function to be created in Wikifunctions, which will get the identifier Z10000.