Erweiterung:WikiLambda

This page is a translated version of the page Extension:WikiLambda and the translation is 100% complete.
MediaWiki-Erweiterungen
WikiLambda
Freigabestatus: experimentell
Einbindung Parser-Funktion , ContentHandler
Beschreibung Bereitstellung einer Wikitext-Parser-Funktion für Wikimedia-Wikis, um die Auswertung von Funktionen aufzurufen, die in einem zentralen Wiki geschrieben, verwaltet und ausgewertet werden.
Autor(en) Wikimedia Foundation
Kompatibilitätspolitik Snapshots werden zusammen mit MediaWiki veröffentlicht. Der Master ist nicht abwärtskompatibel.
Datenbankänderungen Ja
Lizenz MIT-Lizenz
Herunterladen
  • $wgWikiLambdaOrchestratorLocation
  • $wgWikiLambdaObjectCache
  • $wgWikiLambdaEnableRepoMode
  • $wgWikiLambdaClientTargetAPI
  • $wgWikiLambdaEnableClientMode
  • wikilambda-connect-implementation
  • wikilambda-connect-tester
  • wikilambda-create
  • wikilambda-create-boolean
  • wikilambda-create-converter
  • wikilambda-create-enum-value
  • wikilambda-create-function
  • wikilambda-create-implementation
  • wikilambda-create-language
  • wikilambda-create-predefined
  • wikilambda-create-programming
  • wikilambda-create-tester
  • wikilambda-create-type
  • wikilambda-create-unit
  • wikilambda-disconnect-implementation
  • wikilambda-disconnect-tester
  • wikilambda-edit
  • wikilambda-edit-argument-label
  • wikilambda-edit-attached-implementation
  • wikilambda-edit-attached-tester
  • wikilambda-edit-boolean
  • wikilambda-edit-builtin-function
  • wikilambda-edit-connected-converter
  • wikilambda-edit-converter
  • wikilambda-edit-enum-value
  • wikilambda-edit-error-key-label
  • wikilambda-edit-implementation
  • wikilambda-edit-key-label
  • wikilambda-edit-language
  • wikilambda-edit-object-alias
  • wikilambda-edit-object-description
  • wikilambda-edit-object-label
  • wikilambda-edit-object-type
  • wikilambda-edit-predefined
  • wikilambda-edit-programming
  • wikilambda-edit-running-function
  • wikilambda-edit-running-function-definition
  • wikilambda-edit-tester
  • wikilambda-edit-type
  • wikilambda-edit-unit
  • wikilambda-edit-user-function
  • wikilambda-execute
  • wikilambda-execute-unsaved-code
  • wikifunctions-run
Quarterly downloads 12 (Ranked 124th)
Übersetze die WikiLambda-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Probleme Offene Aufgaben · Einen Fehler melden

Die Erweiterung WikiLambda ermöglicht einem Wiki das Bereitstellen von Funktionen, die von Benutzern geschrieben, verwaltet und ausgewertet werden, was zum Betrieb von wikifunctions.org genutzt wird. Sie bildet den Kern der Software von "Wikifunctions" als Teil der Arbeit für die Abstrakte Wikipedia. Das System befindet sich derzeit in der aktiven Entwicklung, wobei das Front-End in Vue.js geschrieben ist und die neue Schnittstellenbibliothek Codex verwendet. Wikifunctions wird über WikiLambda später Wikimedia-Wikis eine Wikitext-Parser-Funktion zur Verfügung stellen, um Auswertungen von Wikifunctions in ihrem lokalen Wiki vorzunehmen.

Einführung

 
Das aktuelle Architekturmodell auf oberster Ebene für die Funktionsweise von Wikifunctions

Wikifunctions ist eine MediaWiki-Installation, auf der Funktionsinhalte, jedoch keine Ausgaben, gespeichert werden. Diese Inhalte bestehen aus Programmbeschreibungen aller verfügbaren Funktionen ("Funktionen"), tatsächlichem, vom Benutzer geschriebenem Code für diese Funktionen ("Implementierungen"), Testsuiten für diese Funktionen ("Tests") und aus an Benutzer gerichtete Dokumentation zu diesen Funktionen, neben den üblichen Inhalten zur Verwaltung der Wiki-Community wie der Projektdiskussion, Diskussionsbereichen und Richtlinienseiten.

Anfragen für Funktionsaufrufe können direkt über eine Web-Anfrage oder über MediaWiki eingehen (wahrscheinlich über eine Parser-Funktion wie {{#wikifunction:…}}, aber das ist noch nicht entschieden). Der Funktionsorchestrierer ermittelt die Einzelheiten der Anfrage, überprüft den Cache, um festzustellen, ob der Ausgabewert kürzlich bereitgestellt wurde, und gibt diesen entweder zurück oder löst eine Auswertung aus. Dazu ruft er alle relevanten Inhalte aus dem Cluster ab, sei es veröffentlichter Inhalt der Funktion aus Wikifunctions (oder während der Bearbeitung noch unveröffentlichter Inhalt der Funktion, der "vorgeprüft" wird) oder strukturierter Inhalt aus Wikidata und Wikimedia Commons, auf den Funktionen angewendet werden können. Das vollständige Paket aus auszuführendem Code und auszuführenden Eingaben wird dann an den entsprechenden Funktionsausführer übergeben, der dann versucht, die Eingabe sicher auszuführen und die Ausgabe (oder einen Fehler) zurückgibt. Der Orchestrierer schreibt dann das erfolgreiche Ergebnis in den Cache und überträgt es an den Verbraucher.

Die WikiLambda-Erweiterung ist für die Inhaltsverwaltung des Wikifunctions-Wikis verantwortlich (wie die Erweiterung Wikibase Repository), bietet Bearbeitungsoberflächen, beschränkt Benutzer auf bestimmte Aktionen oder warnt sie vor ihnen, bietet eine Schnittstelle zum Lesen und Ausführen von Tests sowie die Integration von Inhaltsanforderungen aus allen Wikimedia-Wikis (wie die Erweiterung Wikibase Client). Vom Benutzer geschriebener Code wird nie im Kontext der Produktionsumgebung ausgeführt und hat daher nie Zugriff auf vertrauliche Inhalte, sondern wird nur in isolierten, verfügbaren Instanzen ausgeführt.

Erste Schritte

Installation

  • Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens WikiLambda im Ordner extensions/ ablegen.
    Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
    git clone --recurse-submodules https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLambda
  • Wird von git aus installiert, ist Composer auszuführen, um PHP-Abhängigkeiten zu installieren, indem composer install --no-dev im Erweiterungsverzeichnis ausgeführt wird. (Siehe task T173141 für mögliche Komplikationen.)
  • Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
    wfLoadExtension( 'WikiLambda' );
    
  • Führe das Aktualisierungsskript aus, welches automatisch die notwendigen Datenbanktabellen erstellt, die diese Erweiterung braucht.
  •   Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.

Installation der Back-End-Dienste

Wenn du die Back-End-Dienste installieren möchtest, um die WikiLambda-Software zu verwenden, musst du dies tun und sie konfigurieren. Anweisungen hierfür können sich ändern und sind daher nur im Repositorium enthalten.

Lokal testen

(TODO)

Code-Verwaltung

Siehe auch

Unterseiten