The on-wiki version of this newsletter can be found here:
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2023-07-20
--
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.
<https://meta.wikimedia.org/wiki/File:Wikifunctions-logo-en.svg>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
<https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-08-05>,
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
<https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions: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
<https://en.wikipedia.org/wiki/String_(computer_science)> and Booleans
<https://en.wikipedia.org/wiki/Boolean_data_type>. 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 Wikipedia 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 <https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Phases>. 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
Wikifunction, which will get the identifier Z10000.