Wikipédia Abstrata/Fases do desenvolvimento

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page Abstract Wikipedia/Phases and the translation is 10% complete.

O desenvolvimento da Wikipédia abstrata ocorrerá em duas partes principais, cada uma consistindo em um grande número de tarefas. A Parte P1 é sobre o desenvolvimento do wiki de funções, e a Parte P2 é sobre conteúdo abstrato e geração de linguagem natural. Nesta página, dividimos ainda mais as tarefas da Parte P1 em fases que cobrem parte do trabalho em uma determinada tarefa. Abaixo estão links para o Phabricator, onde as tarefas e fases são ainda mais detalhadas.

Esta página wiki pode estar desatualizada. O local principal para informações sobre as tarefas é o Phabricator. Encontre nosso estado atual no Phabricator.

Esperamos levar cerca de dez fases antes de lançar o wiki de funções.

odas as fases abaixo cobrem o trabalho sobre Tarefa P1.2: Desenvolvimento inicial, salvo indicação em contrário.

Parte P1: Wiki de funções

Fase α (alfa): armazenar, exibir e editar o cabeçalho — Yes check.svg Concluído 2020-08-25

  1. Configure o ambiente de desenvolvimento replicável. — tarefa T258893
    • Yes check.svg Concluído Iniciar extensão. — tarefa T258893
    • Yes check.svg Concluído Trabalho de configuração, upload do conteúdo de bootstrap.
    • Yes check.svg Concluído Reuse existing JSON ContentHandler.tarefa T258893
    • Yes check.svg Concluído Allow for entering JSON objects through the raw editing interface.tarefa T258893
  2. Yes check.svg Concluído 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).
    • Yes check.svg Concluído in PHP.tarefa T258894
    • Well-formedness: key syntax, allowed keys, values are strings or proto-objects or lists of values.tarefa T258894
  3. Yes check.svg Concluído Every stored top-level ZObject must be a Z2/Persistent object.tarefa T258897
  4. Yes check.svg Concluído Create Z1/Object, offering one key, Z1K1/type.
  5. Yes check.svg Concluído Extend hardcoded validator to check Z1K1/type.
  6. Yes check.svg Concluído Create Z2/Persistent object.tarefa T258897
  7. Yes check.svg Concluído 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.tarefa T258897
  8. Yes check.svg Concluído Extend hardcoded validator for Z2/Persistent object so far.tarefa T258897
  9. Yes check.svg Concluído Provide hardcoded display for Z2/Persistent object (that is the header) (that is a pretty big task).tarefa T258898
  10. Yes check.svg Concluído Provide generic view for the Z2K2/value object.tarefa T258898
  11. Yes check.svg Concluído Turn Z2K3/proto-label into the proper Z2K3/label for multilingual text.
  12. Yes check.svg Concluído Extend viewing for Z2K3/label with multilingual text.

Phase completion condition: As a user [of a site with the MediaWiki extension installed], I can create and store a string as a new ZObject, e.g. "Hello world!".

Phase β (beta): create types and instancesYes check.svg Concluído 2021-02-04

  1. Yes check.svg Concluído Hardcoded validators for Z4/proto-types and Z3/proto-keys.tarefa 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. Yes check.svg Concluído Create Z4/Type and Z3/Key (Task P1.14).
  3. Yes check.svg Concluído Search for ZObjects by label.tarefa T260750
  4. Yes check.svg Concluído Use Z4 type data and key declarations for validating objects.tarefa T260861
  5. Yes check.svg Concluído Use Z4 type data and key declarations for generic view of objects.tarefa T258901
  6. Yes check.svg Concluído Use Z4 type data and key declarations for editing and creation of objects.tarefa T258903 & tarefa T258904
  7. Yes check.svg Concluído Provide hardcoded display and edit interface for Z12 type.tarefa T258900

Phase completion condition:

As a user, I can create and store an object implementing any on-wiki defined type, e.g. the positive integer one

Phase γ (gamma): functions, implementations, errorsYes check.svg Concluído 2021-04-02

  1. Yes check.svg Concluído Introduce a simple error object.tarefa T261464
  2. Yes check.svg Concluído Introduce simple function.tarefa T258957
  3. Yes check.svg Concluído Introduce simple implementation, for now only built-ins.tarefa T258958
  4. Yes check.svg Concluído Create a few functions and built-ins.tarefa T261474
  5. Yes check.svg Concluído Introduce a simple function call type.tarefa T261467
  6. Yes check.svg Concluído Tester type (Task P1.10).tarefa T261465

Phase completion condition: As a user, I can store a function call, a function, and a tester (only the objects, no actual evaluation yet), e.g. if(true, false, true) (read "if true then false else true", i.e. negation)

Phase δ (delta): built insYes check.svg Concluído 2021-05-11

  1. Yes check.svg Concluído Evaluation system for built-ins.tarefa T260321
  2. Yes check.svg Concluído Enable web users to call evaluation through an API module (Task P1.5).tarefa T261475
  3. Yes check.svg Concluído Special page for calling evaluation (Task P1.11).tarefa T261471

Phase completion condition: As a user, I can use a special page to evaluate a built-in function with supplied inputs, e.g. to check whether the empty list is empty.

Phase ε (epsilon): native function callsYes check.svg Concluído 2021-06-30

  1. Yes check.svg Concluído JavaScript implementations (Task P1.12).tarefa T275944
  2. Yes check.svg Concluído Python implementations (Task O6).tarefa T273517
  3. Yes check.svg Concluído Allow forms to be included for evaluation.tarefa T261472

Phase completion condition: As a user, I can use a special page to evaluate a user-written function in one of the supported languages, e.g. call a user-written function in Python to add up two numbers.

Phase ζ (zeta): compositionYes check.svg Concluído 2021-08-27

  1. Yes check.svg Concluído Allow for composition implementations (Task P1.6).tarefa T261468

Phase completion condition:

  • As a user, I can implement a function using composition of other functions, rather than writing it myself, e.g. negate(Boolean → Boolean).Yes check.svg Concluído
  • (Stretch condition) As a user, I can see the results of testers on the relevant function implementation's page. [This might need to be moved to a later phase as not all requirements may be met this point. Must be done by phase ι.]Yes check.svg Concluído

Phase η (eta): generic typesYes check.svg Concluído 2022-04-08

  1. Yes check.svg Concluído Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function.tarefa T275941
  2. Yes check.svg Concluído Errors can be processed like ZObjects.
  3. Yes check.svg Concluído User-defined types work with validators.

Phase completion condition:

  • Being able to implement curry as a composition on the wiki, but without requiring strict static analysisYes check.svg Concluído
  • Making it possible to create the following three 'user-defined' types on the wiki: positive integer, sign, and integerYes check.svg Concluído
  • Being able to make a generic wrapper type through composition on the wikiYes check.svg Concluído

See also the newsletter posted about this phase.

Phase θ (theta): thawing and freezing

  1. Freezing and thawing content (Task P1.7).tarefa T275942
  2. Task P1.9: Pass security review.tarefa T274682, …
  3. Launch public test system (Task P1.4).tarefa T261469

Phase completion condition:

  • As a sysop, I can freeze and unfreeze any user-written object (akin to, or maybe the same as, MediaWiki's protection system); all system-supplied objects are permanently frozen.
  • As a user editing a frozen page, I can change the label, but not the implementation, whereas on an unfrozen page both are possible.
  • ZObjects are stored using the new canonical form for typed lists, and all parts are still working
  • View and edit function is implemented and tested successfully
  • When several implementations are available, the "best" is chosen. (Fitness determination to potentially be changed later.)
  • We measure the clock time & memory use of each function run, and display it on the execution result & in the implementation/test table.
  • Edits to system-defined ZObjects are restricted to users with the correct rights. Understandable diffs are emitted. Results are cached.
  • Text with fallback, references, strings, lists is implemented and tested successfully
  • A shared understanding with the community of how the team will contribute to Wikifunctions, and why, is documented
  • Designs for viewing and editing multi-lingual documentation on mobile and desktop are approved. UX is instrumented and data collected.

Phase ι (iota): documentation of objects

  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.tarefa T260954 & tarefa T260956
  5. Extend editing to deal with Z2K4/documentation.tarefa T260955

Phase completion condition: As a user, I can document a ZObject in any and all supported languages, using a wikitext.

Phase κ (kappa): cleanup

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

Phase completion condition: As the Abstract Wikipedia Team, we feel ready for launch, including sign-off from all relevant colleagues.

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 wiki pages about the project from Meta to Wikifunctions.

Phase completion condition: As a person on the Web, I can visit and use Wikifunctions.org to write and run functions directly on the site.

Unphased tasks

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

Post-launch tasks of Part 1

See also