Modifie cette page si tu souhaites l’améliorer. Mort de rire

Dico

Dico:Technique

sur le Dico des Ados : ton dictionnaire collaboratif, libre et gratuit !

Mise à jour MediaWiki 1.39[modifier le wikicode]

https://demo.fr.dicoado.org/dico/Dico:Accueil

Tableau des tâches[modifier le wikicode]

Intervenants Wiki Valley : Seb35 (SB)

Date Task duration

hours

Worker Status

TOTAL[modifier le wikicode]

21
2024-03-11 Re-résolution de problème graphique :
  • Barre de formulaire
  • Checkboxes
1,5 Mathis Done
2024-01-16 Résolution de problème graphique :
  • Taille des icones notifications
0,5 Mathis Done
2023-12-22 Résolution de divers problèmes graphiques :
  • place des notifications

Documentation des changements locaux sur le skin Foreground [1]

0,5+1=1,5 Mathis + Seb Done
2023-12-21 Résolution de divers problèmes graphiques :
  • icônes FontAwesome
  • header
  • script Masonry
1x2=2 Mathis + Seb Done
2023-12-20 Étude de divers problèmes graphiques : icônes FontAwesome 3x2=6 Mathis + Seb Done
2023-12-12 Aspects esthétiques 2 Mathis Done
Warning en bas des pages Deprecated: Use of BaseTemplate::getFooterIcons was deprecated in MediaWiki 1.35. [Called from foregroundTemplate::execute in /var/www/dicoado.demo/fr/httpdocs/w/skins/foreground/Foreground.skin.php at line 227] in /var/www/dicoado.demo/fr/httpdocs/w/includes/debug/MWDebug.php on line 381

Problème très mineur, peut être ignoré (comme tous les deprecated qui sont des avertissements que la fonctionnalité marche encore, mais que ça ne sera plus le cas lors des prochaines mises à jour majeures).

(lors de la mise en prod, il faudra bien paramétrer ini_set( ’display_errors’, 0 );)

2023-12-08 Icônes manquantes sur le formulaire d’édition, par exemple près de "Rechercher dans le Wiktionnaire" (ça a peut-être un lien avec le warning dans la console JS "Glyph bbox was incorrect")

La différence est que l’ancien site a FontAwesome 5.15.1 dans cette feuille de style qui définit la classe CSS "fas" (celle qui est utilisée dans le Modèle:Liens externes article) et le site de demo (avec le skin Foreground REL1_39) a FontAwesome 4.7.0 dans cette feuille de style qui ne définit pas la classe CSS "fas", juste "fa".

En regardant l’historique du fichier assets/stylesheets/font-awesome.css dans https://github.com/thingles/foreground puis dans https://github.com/wikimedia/mediawiki-skins-Foreground, j’ai l’impression que la version 5.15.1 est une modification locale, est-ce bien cela ? Réponse affirmative de Vivian sur Telegram.

Corrigé en copiant l’ancien fichier skins/foreground/assets/stylesheets/font-awesome.css et l’ancien répertoire skins/foreground/assets/webfonts dans l’installation 1.39. L’idéal serait de soumettre officiellement le changement à l’auteur du skin foreground.

4,5 SB Corrigé localement
2023-12-08 https://demo.fr.dicoado.org/dico/Sp%C3%A9cial:AjouterDonn%C3%A9es/Ajouter_un_mot/wikifier

Impossible d'enregistrer les modifications faites depuis un formulaire.

Un clic sur le bouton Enregistrer ne fait rien. Le bandeau en bas est un peu trop grand

SB Corrigé
2023-12-08 En mode wikicode en cliquant sur le crayon pour passer en mode VE

[c9397d552033de07d76d3a2c] Exception caught: DOMElement::setAttribute() expects parameter 2 to be string, null given

SB Corrigé
2023-12-08 Dans la console JavaScript, il y a une erreur "variable pf non définie" qui fait planter le module "ext.pageforms.rating" SB Corrigé
2023-12-08 Quand on modifie un mot avec le formulaire exemple https://demo.fr.dicoado.org/w/index.php?title=infundibuliforme&action=formedit

Notice: Uninitialized string offset: 35 in /var/www/dicoado.demo/fr/httpdocs/w/extensions/PageForms/includes/PF_FormPrinter.php on line 1004

Notice: Uninitialized string offset: 33 in /var/www/dicoado.demo/fr/httpdocs/w/extensions/PageForms/includes/PF_FormPrinter.php on line 1004

SB Corrigé
2023-12-08 Test fonctionnement extensions. (voir erreur ci dessus) 0.5 NN MB
2023-12-04- Revue des erreurs et bugs, gestion de projet 1 NN SB
On page Dico:Accueil

MediaWiki internal error.

Original exception: [ffffe8c7ce544d2a9bc9582c] 2023-10-27 17:43:48: Fatal exception of type "Error"

Exception caught inside exception handler.

Bug : $wgShowExceptionDetails = true; at the bottom of LocalSettings.php n'affiche rien :(

Solution : Commentaire de $wgUseFileCache = true; # Obsolète depuis 15 ans

TODO : A Remplacer par mécanisme de cache d'Apache

0.5
Extension Variables https://www.mediawiki.org/wiki/Topic:Xstgpcsbv122qkpe

utilisée dans les modèles Article, Liens externes, Liens externes articles, Lowercase title, Traduction, Uppercase title, Wikimedia Commons.

Est elle vraiment utile ?

GoogleRichCards ("A laisser si on peut")
ExtRegexFun

PHP Notice: Undefined property: Parser::$mExtRegexFun in /var/www/dicoado.demo/fr/httpdocs/w/includes/debug/DeprecationHelper.php on line 211, referer: https://demo.fr.dicoado.org/dico/Dico:Accueil

extension useful ?

could be replaced by Extension ReplaceText.

See on Special:Version

Deprecated: Use of InternalParseBeforeSanitize hook (used in VariablesHooks::onInternalParseBeforeSanitize) was deprecated in MediaWiki 1.35. [Called from MediaWiki\HookContainer\HookContainer::run in /var/www/dicoado.demo/fr/httpdocs/w/includes/HookContainer/HookContainer.php at line 137] in /var/www/dicoado.demo/fr/httpdocs/w/includes/debug/MWDebug.php on line 381

0 ✔️
2023-12-05 Special:Drilldown/Article

Solution : installer dernière version REL de 1.39 de Cargo

Erreur interne

[5b1396ff76f420a500bfe25e] /w/index.php?title=Sp%C3%A9cial:Drilldown/Article&limit=250&offset=0 TypeError: Argument 2 passed to Wikimedia\Rdbms\Database::assertQueryIsCurrentlyAllowed() must be of the type string, null given, called in /var/www/dicoado.demo/fr/httpdocs/w/includes/libs/rdbms/database/Database.php on line 936

Backtrace:

from /var/www/dicoado.demo/fr/httpdocs/w/includes/libs/rdbms/database/Database.php(1365)

#0 /var/www/dicoado.demo/fr/httpdocs/w/includes/libs/rdbms/database/Database.php(936): Wikimedia\Rdbms\Database->assertQueryIsCurrentlyAllowed()

#1 /var/www/dicoado.demo/fr/httpdocs/w/includes/libs/rdbms/database/Database.php(1711): Wikimedia\Rdbms\Database->query()

POUR LA SUITE VOIR COMMENTAIRE CI-DESSOUS

0.75 SB ✔️
2023-12-05 Error message on top of main page :

Deprecated: Use of InternalParseBeforeSanitize hook

Hook includes/HookContainer/DeprecatedHooks.php silenced by Seb35

0.25 SB ✔️

Performance[modifier le wikicode]

Ideas to improve performance:

  • Activate HTTP/2 in Apache
  • Install memcached and use it as main cache
  • Install an HTTP cache to replace $wgUseFileCache; might be with Apache or Varnish or something else

Farm[modifier le wikicode]

This is the initial proposition for MediaWikiFarm and options to be chosen.

Files[modifier le wikicode]

Actual:

/etc
  /apache2
    /sites-enabled
/home
  /www-dicoado
    /storage
      /images  <- - - - - - - - -  images for fr.dicoado.org
/var
  /www
    /dicoado
      /fr
        /httpdocs  <- - - - - - -  Apache DocumentRoot
          /w  <- - - - - - - - - - contains MediaWiki 1.39.5
            /LocalSettings.php
            /cache  <- - - - - - - contains all l10n_cache-*.cdb
            /images → /home/www-dicoado/storage/images


Target with MediaWikiFarm:

/etc
  /apache2
    /sites-enabled (CHANGED: add the new websites/virtual hosts)
  /mediawiki             (NEW)
    /farms.yml           (NEW)
    /CommonSettings.yml  (NEW)
    /PrivateSettings.yml (NEW)
    /frSettings.yml      (NEW)
    /deSettings.yml      (NEW)
    /itSettings.yml      (NEW)
    /enSettings.yml      (NEW)
/home
  /www-dicoado
    /storage
      /fr       (NEW)
        /images (NEW)
        /cache  (NEW)
        /tmp    (NEW)
        /assets (NEW)
        /config (NEW)
      /de       (NEW)
        /images (NEW)
        /cache  (NEW)
        /tmp    (NEW)
        /assets (NEW)
        /config (NEW)
      /it       (NEW)
        /images (NEW)
        /cache  (NEW)
        /tmp    (NEW)
        /assets (NEW)
        /config (NEW)
      /en       (NEW)
        /images (NEW)
        /cache  (NEW)
        /tmp    (NEW)
        /assets (NEW)
        /config (NEW)
      /rm       (NEW)
        /images (NEW)
        /cache  (NEW)
        /tmp    (NEW)
        /assets (NEW)
        /config (NEW)


/opt              (NEW)
  /mediawiki      (NEW)
    /1.39.5       (NEW)
    /1.39.5-test  (NEW)
/var
  /cache           (NEW)
    /mediawikifarm (NEW)

Config[modifier le wikicode]

2 URLs:

  • (?<lang>fr|de|en|it)\.dicoado\.org
  • (?<lang>fr|de|en|it)\.demo\.dicoado\.org

Multiple choices about organising the configuration files:

  1. Keep like currently the LocalSettings.php and add some "if( $lang === 'fr' ) { } else if( $lang === 'de' ) { }
    • PRO: the current order of the various thematics is kept (but there is no real ordering currently)
    • CON: could add confusion if there are many "if/else"
    • PRO: it keep the maximum expressivity (=ability to characterise very fine situations)
  2. We use a PHP array (or YAML): (prefered for MediaWikiFarm)
    • PRO: More "orthogonal", may be easier to understand because there are no PHP, and it fully uses the hierarchical configuration (define global settings, then specific settings)
    • PRO: The configuration is considered as data instead of code, which is also the trend for MediaWiki more generally (see the experimental configuration system)
    • PRO: We can keep an order in the thematics
    • CON: Light learning to understand the logic
    • CON: Less expressivity; but if we want to keep the PHP expressivity, we can use a dedicated PHP file (there is such feature in MediaWikiFarm)
    2 possible organisations:
    • (a) InitialiseSettings.yml + PrivateSettings.yml + ExecSettings.php: all non-private parameters for all languages in the 1st, the private settings in the 2nd, the 3rd is a raw PHP file to keep PHP expressivity (option)
    • (b) CommonSettings.yml + frSettings.yml + PrivateSettings.yml + ExecSettings.php: the 1st contains all commun parameters, the 2nd the parameters for the language "fr" (resp. other languages), the 3rd the private settings, the 4th is a raw PHP file to keep PHP expressivity (option)

Notes:

  • all filenames (CommonSettings.yml, InitialiseSettings.yml, ExecSettings.php…) are completely arbitrary
  • The Wikimedia Foundation has something like the organisation (a) but with some thematic files (partly like organisation (b)) – keep in mind it’s a huge wiki farm:
  • MediaWikiFarm is quite flexible: there may be as much config files as wished, and each config file could apply either to a single wiki either to all wikis either to some wikis defined in the config file itself (see InitialiseSettings.yml below)
  • Array formats:
    • PHP: maybe slightly more difficult to read than YAML, but it’s possible to use PHP syntax like constants (CACHE_NONE, CACHE_MEMCACHED…) or class names (MediaWiki\Deferred\DeferredUpdates::class
    • YAML: the syntax must be known (see Wikipedia), it’s not possible to use the constants and class names (only the basic types string, number, boolean, null, which is 99% of the values)
    • JSON: quite equivalent to YAML, but keep in mind it’s not possible to use comments in JSON

Organisation (a)[modifier le wikicode]

InitialiseSettings.yml with a YAML array:

# Website name
wgSitename:
  fr: 'Le Dico des Ados'
  de: 'Das Wörterbuch der Jugendlicher'
wgMetaNamespace:
  fr: 'Dico'
  de: 'Wörterbuch'
wgServer:
  fr: 'https://fr.dicoado.org'
  de: 'https://de.dicoado.org'

# Path settings
wgScriptPath:
  default: '/w'
wgArticlePath:
  default: '/dico/$1'
wgUsePathInfo:
  default: false

InitialiseSettings.php with a PHP array:

<?php

return [
        // Website name
        'wgSitename' => [
                'fr' => 'Le Dico des Ados',
                'de' => 'Das Wörterbuch der Jugendlicher',
        ],
        'wgMetaNamespace' => [
                'fr' => 'Dico',
                'de' => 'Wörterbuch',
        ],
        'wgServer' => [
                'fr' => 'https://fr.dicoado.org',
                'de' => 'https://de.dicoado.org',
        ],
        // Path settings
        'wgScriptPath' => [
                'default' => '/w',
        ],
        'wgArticlePath' => [
                'default' => '/dico/$1',
        ],
        'wgUsePathInfo' => [
                'default' => false,
        ],
];

Organisation (b)[modifier le wikicode]

CommonSettings.yml:

# This file contains commun settings for all wikis

# Path settings
wgScriptPath: '/w'
wgArticlePath: '/dico/$1'
wgUsePathInfo: false

frSettings.yml:

# This file is about fr.dicoado.org

# Website name
wgSitename: 'Le Dico des Ados'
wgMetaNamespace: 'Dico'
wgServer: 'https://fr.dicoado.org'

deSettings.yml:

# This file is about de.dicoado.org

# Website name
wgSitename: 'Das Wörterbuch der Jugendlicher'
wgMetaNamespace: 'Wörterbuch'
wgServer: 'https://de.dicoado.org'

To be decided[modifier le wikicode]

  1. Is there remarks about the files organisation? see #Files
  2. What is the prefered organisation of the config? see #Config
    • 1. Raw PHP files like currently OR
    • 2. YAML/PHP arrays like Wikimedia/MediaWikiFarm and possibly a small raw PHP file
      • In case of 2, something more like organisation (a) or (b) (or a mix)
      • In case of 2, what prefered format for arrays: PHP or YAML files