Jump to content

Abstrakte Wikipedia/Implementierungsphasen

From Meta, a Wikimedia project coordination wiki
This is an archived version of this page, as edited by Wolfdietmann (talk | contribs) at 09:50, 27 January 2021 (Created page with "Abstrakte Wikipedia/Implementierungsphasen"). It may differ significantly from the current version.
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Development of Abstract Wikipedia will proceed in two major parts, including a large number of tasks. The first part is about developing the wiki of functions, the second about abstract content and natural language generation. On this page, we further break down the beginning of the first part into phases. The phases are being reflected in Phabricator and linked from here, as well as are tasks and further break downs of tasks.

The canonical place for information about the phases and tasks is to be found on Phabricator. This page might get stale. Look up the current state on Phabricator.

We expect to take about ~10 phases before launching the wiki of functions.

All the below tasks belong to Task P1.2 if not otherwise marked.

Part 1 break down: Wiki of functions

Phase α (alpha): store, display and edit header Fertig

  1. Set up replicable development environment. — Aufgabe T258893.
    • Fertig Start extension. — Aufgabe T258893.
    • FertigConfig works, upload bootstrap content.
    • Fertig Reuse existing JSON ContentHandler. — Aufgabe T258893.
    • Fertig Allow for entering JSON objects through the raw editing interface. — Aufgabe T258893.
  2. Fertig Extend and hardcode checker for JSON objects to check for ZObject well-formedness. Nothing that is not well-formed will be further handled or stored. Well-formedness should probably be checked both in the PHP and the JS code (should be easy to write anyway).
    • Fertig in PHP — Aufgabe T258894.
    • Well-formedness: key syntax, allowed keys, values are strings or proto objects or lists of values. — Aufgabe T258894.
  3. Fertig Every stored top-level ZObject must be a Z2/Persistent object. — Aufgabe T258897.
  4. Fertig Create Z1/Object, offering one key, Z1K1/type.
  5. Fertig Extend hardcoded validator to check Z1K1/type.
  6. Fertig Create Z2/Persistent object. — Aufgabe T258897.
  7. Fertig Z2/Persistent object has the keys Z2K1/ID and Z2K2/value, and Z2K3/Proto Label, the latter being counterfactually just a single string with no language information. — Aufgabe T258897.
  8. Fertig Extend hardcoded validator for Z2/Persistent object so far. — Aufgabe T258897.
  9. Fertig Provide hardcoded display for Z2/Persistent object (that is the Header) (that is a pretty big task). — Aufgabe T258898.
  10. Fertig Provide generic view for the Z2K2/value object. — Aufgabe T258898?
  11. Fertig Turn Z2K3/Proto Label into the proper Z2K3/Label for multilingual text.
  12. Fertig Extend viewing for Z2K3/Label with multilingual text.

Phase β (beta): create types and instances

  1. Fertig Hardcoded validators for Z4/proto types and Z3/proto keys. — Aufgabe T258900.
    • A Z4 has a Z4K2/keys with a json List of Z3s.
    • A proto key has a Z3K1/ID and Z3K2/type and Z3K3/label (mirror the development of label for Z2K3?).
  2. Fertig Create Z4/Type and Z3/Key (Task P1.14).
  3. Fertig Search for ZObjects by label. — Aufgabe T260750.
  4. Use Z4 type data and key declarations for validating objects. — Aufgabe T260861.
  5. Use Z4 type data and key declarations for generic view of objects. — Aufgabe T258901.
  6. Use Z4 type data and key declarations for editing and creation of objects. — Aufgabe T258903 and Aufgabe T258904.
  7. Provide hardcoded display and edit interface for Z4 type. — Aufgabe T258900 and Aufgabe T258906.

Phase γ (gamma): functions, implementations, errors

  1. Introduce a simple error object. — Aufgabe T261464.
  2. Introduce simple function. — Aufgabe T258957.
  3. Introduce simple implementation, for now only built-ins. — Aufgabe T258958.
  4. Create a few functions and built-ins. — Aufgabe T261474.
  5. Introduce a simple function call type. — Aufgabe T261467.
  6. Test type (Task P1.10). — Aufgabe T261465.

Phase δ (delta): function call

  1. First evaluation system (only for built-ins). — Aufgabe T260321.
  2. Enable web users to call evaluation through an API module (Task P1.5). — Aufgabe T261475.
  3. Special page for calling evaluation (Task P1.11). — Aufgabe T261471.
  4. Allow forms to be included for evaluation. — Aufgabe T261472.
  5. Task P1.9: Pass security review. — Aufgabe T261473, etc.

Phase ε (epsilon): composition

  1. Allow for composition implementations (Task P1.6). — Aufgabe T261468.
  2. P1.4: Launch public test system. — Aufgabe T261469.

Phase ζ (zeta): generic types

  1. Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function.

Phase η (eta): thawing and freezing

  1. Freezing and thawing content (Task P1.7).

Phase θ (theta): JavaScript

  1. JavaScript implementations (Task P1.12).

Phase ι (iota): documentation

  1. This is a preliminary assignment, moving the documentation tasks here.
  2. Provide editing for the Header (additionally to full raw editing) (that is a pretty big task) — this refers only to the labels, actually.
  3. Extend editing for Z2K3/Label with multilingual text.
  4. Extend the Header with Z2K4/Documentation. — Aufgabe T260954 and Aufgabe T260956.
  5. Extend editing to deal with Z2K4/Documentation. — Aufgabe T260955.

Phase κ (kappa): cleanup

  1. Tightening up and clean up tasks, to close all pre-launch tasks.

Phase λ (lambda): launch

  1. Phase λ (lambda) is meant for launch. If there are pre-launch tasks that prevent that, so be it, obviously.
  2. Set up a new Wikimedia project.
  3. Move some of the wikipages from Meta to Wikifunctions.

Unphased tasks

Pre-launch tasks that need to happen but are not phased in yet:

  1. P1.1: Project initialization.
  2. P1.3: Set up testing infrastructure.
  3. P1.8: Launch beta Wikifunctions.

Post-launch tasks of Part 1

See also