Mise à jour de MediaWiki à la version 1.40 et migration du serveur (Gestion:Tâches/Liste/543)

De Wikimedica
Mise à jour de MediaWiki à la version 1.40 et migration du serveur [En test]  Modifier cette tâche Aide
TypeAmélioration
CréationAntoine Mercier-Linteau
Responsable(s)Antoine Mercier-Linteau
ÉtatEn test
Date de création2022-02-11
Échéanceaucune
PrioritéNormale
Projet(s)
<noinclude>
</noinclude>

Cette tâche concerne la migration vers MediaWiki 1.40. Nous en avons aussi profité pour mettre à jour la machine virtuelle à SME 10 et la déménager sur son serveur dédié.


Créer une sous-tâche
Aucune sous-tâche à afficher.
Aucune sous-tâche assignée à cette tâche.
Sous-tâches
- Type Priorité Titre Responsable(s) État Création
Voir les sous-tâches terminées...

Étape Fait Commentaire
Mettre à jour la base de code X
Déactiver l'accès au générateur de livre pour les robots (les robots lancent la génération d'une tonne de livres en même temps et cela fait planter le serveur) X
  • Récupérer le robots.txt du serveur.
  • Empêcher la génération du lien pour télécharger la page en PDF: supprimer "SidebarBeforeOutput": "CollectionHooks::onSidebarBeforeOutput", dans le fichier extensions/Collection/extension.json
Désactiver les indicateurs X Dans includes/skins/SkinMustache.php. remplacer:

'array-indicators' => $this->getIndicatorsData( $out->getIndicators() ),

Par:

'array-indicators' => [],

Reproduire la modification de code à (Gestion:Tâches/Liste/564) X
S'assurer de la présence du dossier .well-known à la racine X Important pour le renouvellement du certificat
Tester l'extension VisualEditor X (local) Configuration d'Apache nécessaire
Test l'extension SemanticACL X Avec les cas d'utilisation dans Gestion:Tâches/Liste/123
Tester l'extension WikimedicaAccount et la mettre à jour si nécessaire X
  1. Création de compte par un utilisateur anonyme.
  2. Création de compte par un administrateur.
  3. Modification des informations professionnelles.
Tester l'authentification avec le CMQ X
Tester l'extension Flow X Flow ne fonctionne que si la base de donnée s'appelle wikimedica.
Tester l'extension Cite X
Tester l'extension Echo
  • supprimer le premier threshold (pour ne pas que les utilisateurs reçoivent une notification lors de la création de compte (qui compte comme une modification) dans includes/Hooks.php::onPageSaveComplete
X
Tester la génération de PDF
Tester Modèle:Flowchart X
Tester l'importation d'images avec le formulaire adapté pour le droit d'auteur X
Tester la version mobile
  • Activer le mode AMC
  • Reproduire la modification pour le menu utilisateur et le menu principal
X
Dans /skins/MinervaNeue/includes/Menu/User/AdvancedUserMenuBuilder.php<
		// SkinTemplateNavigation::Universal is not used because it does not allow the setting of icons easily.
		if(!$this->user->isAnon()) {
			$group->insertEntry( SingleMenuEntry::create(
				'draft',
				'Brouillons',
				\SpecialPage::getSafeTitleFor('Drafts')->getLocalURL(['user' => $this->user->getName()]),
				'',
				'sandbox'
			));

			$group->insertEntry( SingleMenuEntry::create(
				'MyTasks',
				'Tâches',
				\SpecialPage::getSafeTitleFor('MyTasks')->getLocalURL(['user' => $this->user->getName()]),
				'',
				'edit'
			));
		}
Dans /skins/MinervaNeue/includes/Menu/Main/AdvancedMainMenuBuilder.php
		$group = BuilderUtil::getDiscoveryTools( $this->definitions, $navigationTools );

		unset($group->entries[1]);

		// Done this way because unset does not free up index 1 and an error is later thrown.
		$group->entries[1] = \MediaWiki\Minerva\Menu\Entries\SingleMenuEntry::create(
			'about',
			'À propos',
			\Title::newFromText('À_propos', NS_PROJECT)->getLocalURL(),
			'',
		);

		$group->insertEntry( \MediaWiki\Minerva\Menu\Entries\SingleMenuEntry::create(
			'faq',
			'FAQ',
			\Title::newFromText('FAQ', NS_PROJECT)->getLocalURL(),
			'',
		));

		$group->insertEntry( \MediaWiki\Minerva\Menu\Entries\SingleMenuEntry::create(
			'management',
			'Gestion',
			\Title::newFromText('Accueil', NS_PROJECT)->getLocalURL(),
			'',
		));

		return $group;
Dans /skins/MinervaNeue/includes/Menu/Group.php changer la protection de $entries à public.
Tester l'extension ContentImporter et la mettre à jour si nécessaire X Installer les paquets avec /usr/bin/php73 composer.phar require google/cloud-translate:^1.2
Tester runJobs.php X
Augmentation du délai de timeout de 30s à 60s dans /resources/src/mediawiki.api/index.js (Wikimedica:Tâches/Liste/416) X
Appliquer les changements à l'extension ContributionScore X
@@ -40,17 +40,7 @@ class ContributionScores extends IncludableSpecialPage {
                        $revVar = $wgContribScoreUseRoughEditCount ? 'user_editcount' : 'COUNT(rev_id)';
 
                        $revWhere = ActorMigration::newMigration()->getWhere( $dbr, 'rev_user', $user );
-                       if ( $metric == 'score' ) {
-                               $row = $dbr->selectRow(
-                                       [ 'revision' ] + $revWhere['tables'],
-                                       [ 'wiki_rank' => "COUNT(DISTINCT rev_page)+SQRT($revVar-COUNT(DISTINCT rev_page))*2" ],
-                                       $revWhere['conds'],
-                                       __METHOD__,
-                                       [],
-                                       $revWhere['joins']
-                               );
-                               $output = $wgLang->formatNum( round( $row->wiki_rank, 0 ) );
-                       } elseif ( $metric == 'changes' ) {
+                       if ( $metric == 'score' || $metric == 'changes' ) {
                                $row = $dbr->selectRow(
                                        [ 'revision' ] + $revWhere['tables'],
                                        [ 'rev_count' => $revVar ],
@@ -179,12 +169,12 @@ class ContributionScores extends IncludableSpecialPage {
                                'user_real_name',
                                'page_count',
                                'rev_count',
-                               'wiki_rank' => 'page_count+SQRT(rev_count-page_count)*2',
+                               //'wiki_rank' => 'page_count+SQRT(rev_count-page_count)*2',
                        ],
                        [],
                        __METHOD__,
                        [
-                               'ORDER BY' => 'wiki_rank DESC',
+                               'ORDER BY' => 'rev_count DESC',
                                'GROUP BY' => 'user_name',
                                'LIMIT' => $limit,
                        ],
@@ -220,9 +210,9 @@ class ContributionScores extends IncludableSpecialPage {
                $output = "<table class=\"wikitable contributionscores plainlinks{$sortable}\" >\n" .
                        "<tr class='header'>\n" .
                        Html::element( 'th', [], $this->msg( 'contributionscores-rank' )->text() ) .
-                       Html::element( 'th', [], $this->msg( 'contributionscores-score' )->text() ) .
-                       Html::element( 'th', [], $this->msg( 'contributionscores-pages' )->text() ) .
                        Html::element( 'th', [], $this->msg( 'contributionscores-changes' )->text() ) .
+                       Html::element( 'th', [], $this->msg( 'contributionscores-pages' )->text() ) .
+                       //Html::element( 'th', [], $this->msg( 'contributionscores-changes' )->text() ) .
                        Html::element( 'th', [], $this->msg( 'contributionscores-username' )->text() );
 
                $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
@@ -264,11 +254,11 @@ class ContributionScores extends IncludableSpecialPage {
                                "<td class='content' style='padding-right:10px;text-align:right;'>" .
                                $lang->formatNum( $user_rank ) .
                                "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
-                               $lang->formatNum( round( $row->wiki_rank, 0 ) ) .
+                               $lang->formatNum( round( $row->rev_count, 0 ) ) .
                                "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
                                $lang->formatNum( $row->page_count ) .
-                               "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
-                               $lang->formatNum( $row->rev_count ) .
+                               //"\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
+                               //$lang->formatNum( $row->rev_count ) .
                                "\n</td><td class='content'>" .
                                $userLink;
Ajouter le bouton de don dans l'interface des skins Vector et MinervaNeue (Gestion:Tâches/Liste/320) ~X Dans /skins/Vector/includes/templates/Sidebar.mustache
<br>
<a id="sidebar-donate-button" href="https://wikimedica.s1.yapla.com/fr/campaign-3445" target="_blank" style="margin-left: 1em; display: block; height: 3.5em; zoom: 75%;"><span class="mw-ui-button mw-ui-destructive" role="button">Faire un don</span></a>
Confirmer que la génération de sitemaps fonctionne (Gestion:Tâches/Liste/597) ~X Mettre dans le crontab de l'utilisateur admin:

/usr/bin/php82 /home/.../maintenance/run.php generateSitemap --fspath=/home/.../sitemap --urlpath=/sitemap/ --server=https://wikimedi.ca --skip-redirects

Confirmer que la mise à jour du nombre d'utilisateurs actifs fonctionne (Gestion:Tâches/Liste/509) ~X
Tester les tours guidés X La listes des tours guidés se trouve à MediaWiki:Gadget-tour-loader.js
Tester le partage sur les réseaux sociaux X
Appliquer le filtre sur les Sitemaps (voir Gestion:Tâches/Liste/624) X

Discussion