Wikipedia Abstrak/Fase

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.

Pengembangan Wikipedia Abstrak akan berlangsung dalam dua bagian besar, masing-masing terdiri dari banyak tugas. Bagian P1 adalah tentang mengembangkan wiki fungsi, dan Bagian P2 adalah tentang konten abstrak dan penghasil bahasa alami. Di halaman ini, kami memecah tugas-tugas di Bagian P1 menjadi fase-fase yang masing-masing mencakup beberapa pekerjaan yang dilakukan untuk suatu tugas. Penjelasan di bawah berisi tautan ke Phabricator, di mana tugas dan fase dipecah lebih kecil lagi.

Halaman wiki ini mungkin tidak mutakhir. Tempat utama untuk melihat informasi tentang tugas adalah Phabricator. Cari tahu keadaan terkini kami di Phabricator.

Kami memperkirakan akan perlu sekitar sepuluh fase sebelum meluncurkan wiki fungsi.

Semua fase di bawah mencakup pekerjaan dari Tugas P1.2: Pengembangan awal, kecuali apabila disebutkan berbeda.

Bagian P1: Wiki fungsi

Fase α (alfa): menyimpan, menampilkan dan menyunting kepala — Yes check.svg Selesai

  1. Membuat lingkungan pengembangan yang bisa disalin. — tugas T258893
    • Yes check.svg Selesai Memulai ekstensi. — tugas T258893
    • Yes check.svg Selesai Config works, upload bootstrap content.
    • Yes check.svg Selesai Reuse existing JSON ContentHandler.tugas T258893
    • Yes check.svg Selesai Allow for entering JSON objects through the raw editing interface.tugas T258893
  2. Yes check.svg Selesai 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 Selesai in PHP.tugas T258894
    • Well-formedness: key syntax, allowed keys, values are strings or proto-objects or lists of values.tugas T258894
  3. Yes check.svg Selesai Every stored top-level ZObject must be a Z2/Persistent object.tugas T258897
  4. Yes check.svg Selesai Create Z1/Object, offering one key, Z1K1/type.
  5. Yes check.svg Selesai Extend hardcoded validator to check Z1K1/type.
  6. Yes check.svg Selesai Create Z2/Persistent object.tugas T258897
  7. Yes check.svg Selesai 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.tugas T258897
  8. Yes check.svg Selesai Extend hardcoded validator for Z2/Persistent object so far.tugas T258897
  9. Yes check.svg Selesai Provide hardcoded display for Z2/Persistent object (that is the header) (that is a pretty big task).tugas T258898
  10. Yes check.svg Selesai Provide generic view for the Z2K2/value object.tugas T258898
  11. Yes check.svg Selesai Turn Z2K3/proto-label into the proper Z2K3/label for multilingual text.
  12. Yes check.svg Selesai 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 Selesai

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

  1. Yes check.svg Selesai Introduce a simple error object.tugas T261464
  2. Yes check.svg Selesai Introduce simple function.tugas T258957
  3. Yes check.svg Selesai Introduce simple implementation, for now only built-ins.tugas T258958
  4. Yes check.svg Selesai Create a few functions and built-ins.tugas T261474
  5. Yes check.svg Selesai Introduce a simple function call type.tugas T261467
  6. Yes check.svg Selesai Tester type (Task P1.10).tugas 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 Selesai

  1. Yes check.svg Selesai Evaluation system for built-ins.tugas T260321
  2. Yes check.svg Selesai Enable web users to call evaluation through an API module (Task P1.5).tugas T261475
  3. Yes check.svg Selesai Special page for calling evaluation (Task P1.11).tugas 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 Selesai

  1. Yes check.svg Selesai JavaScript implementations (Task P1.12).tugas T275944
  2. Yes check.svg Selesai Python implementations (Task O6).tugas T273517
  3. Yes check.svg Selesai Allow forms to be included for evaluation.tugas 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 Selesai

  1. Yes check.svg Selesai Allow for composition implementations (Task P1.6).tugas 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 Selesai
  • (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 Selesai

Phase η (eta): generic types

  1. Allow for generic types, particularly for Z10/List and Z8/Function, and replace Z10/List and Z8/Function.tugas T275941
  2. Errors can be processed like ZObjects.
  3. User-defined types work with validators.
  4. Task P1.9: Pass security review.tugas T274682, …
  5. Launch public test system (Task P1.4).tugas T261469

Phase completion condition::

  • As a user, I am given proper validation responses when using items about their type. For example the Head of a list should be checked for safety, i.e. if(head([true]), false, true) validates but if(head(["text"]), false, true) does not. [This condition might be simplified.]
  • (Stretch condition) As a user, I can implement the function curry using composition. [Must be done by phase κ.]

Phase θ (theta): thawing and freezing

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

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.

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