Mise à jour de MediaWiki à la version 1.40.1 (Gestion:Tâches/Liste/635)

De Wikimedica
Mise à jour de MediaWiki à la version 1.40.1 [À faire]  Modifier cette tâche Aide
TypeTâche
CréationAntoine Mercier-Linteau
Responsable(s)aucun
ÉtatÀ faire
Date de création2023-12-13
Échéanceaucune
PrioritéNormale
Projet(s)
<noinclude>
</noinclude>

Créer une sous-tâche
À faire 3 / 3
En cours 0 / 3
En test 0 / 3
Terminées 0 / 3
Sous-tâches
- Type Priorité Titre Responsable(s) État Création
1 Bogue Normale mettre a jour extension Page_Forms Antoine Mercier-Linteau À faire 23 avril 2024
2 Tâche Normale WikimedicaAccount a mettre a jour / reecrire partiellement Antoine Mercier-Linteau À faire 23 avril 2024
3 Tâche Normale TaskManager a mettre a jour / reecrire partiellement Antoine Mercier-Linteau À faire 23 avril 2024
Voir les sous-tâches terminées...

Étape Fait Commentaire
Mettre à jour la base de code
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)
  • 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 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)
S'assurer de la présence du dossier .well-known à la racine Important pour le renouvellement du certificat
Tester l'extension VisualEditor Configuration d'Apache nécessaire
Test l'extension SemanticACL Avec les cas d'utilisation dans Gestion:Tâches/Liste/123
Tester l'extension WikimedicaAccount et la mettre à jour si nécessaire
Tester l'authentification avec le CMQ
Tester l'extension Flow Flow ne fonctionne que si la base de donnée s'appelle wikimedica.
Tester l'extension Cite
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
Tester la génération de PDF Si la page de rendu ne se rafraîchi pas, forcer le rechargement de la page en HTML en supprimant les balises <noscript> à la ligne 1174 de /extensions/Collection/includes/Specials/SpecialCollection.php.
Tester Modèle:Flowchart
Tester l'importation d'images avec le formulaire adapté pour le droit d'auteur
Tester la version mobile
  • Activer le mode AMC
  • Reproduire la modification pour le menu utilisateur et le menu principal
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 Installer les paquets avec /usr/bin/php73 composer.phar require google/cloud-translate:^1.2
Tester runJobs.php
Augmentation du délai de timeout de 30s à 60s dans /resources/src/mediawiki.api/index.js (Wikimedica:Tâches/Liste/416)
Appliquer les changements à l'extension ContributionScore
@@ -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) 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) 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)
Tester les tours guidés La listes des tours guidés se trouve à MediaWiki:Gadget-tour-loader.js et à Gestion:Ressources#Tous_guidés
Tester le partage sur les réseaux sociaux
Appliquer le filtre sur les Sitemaps (voir Gestion:Tâches/Liste/624)
Réparation de l'outil de résolution de conflits Dans includes/GlobalFunctions.php, commenter la ligne suivante. Il semblerait que PHP ne soit pas capable de faire un file_exists (sécurité?) sur /usr/bin/diff3, mais l'outil existe bel et bien (voir ceci).
        if ( !$haveDiff3 ) {
                wfDebug( "diff3 not found" );
                //return false;
        }
Faire fonctionner Mermaid avec le skin MinervaNeue Remplacer extensions/Mermaid/resources/ext.mermaid.js par:
/*!
 * @file
 * @ingroup SMW
 *
 * @licence GNU GPL v2+
 * @author mwjames
 */

/*global jQuery, mediaWiki, smw */
/*jslint white: true */

( function( $, mw ) {

	'use strict';

	var config = mw.config.get( 'mermaid' );

	mw.loader.using( [ 'mediawiki.api', 'ext.mermaid' ] ).then( function () {


	mw.initMermaid = function()
	{
		$( '.ext-mermaid' ).each( function() {
	
			var that = $( this );
			
			var id = 'ext-mermaid-' + ( new Date().getTime() );
			var data = that.data( 'mermaid' );
	
			that.find( '.mermaid-dots' ).hide();
			that.append( '<div id=' + id + '> ' + data.content + ' </div>' );
	
			mermaid.initialize( data.config );
			mermaid.init( undefined, $( "#" + id ) );
		} ); 
	}
	
	$( document ).ready( function() {

		if(mw.config.get("wgMinervaFeatures")) { // Will be set to true if using the Minerva skin.
			
			mw.checkSectionHeadings = function(){
				if($(".collapsible-heading").length == 0) { // Dirty but it works. Once this class is set this means the sections have been initialized and the graphs can be generated.
					setTimeout(mw.checkSectionHeadings, 500);
				}
				else { mw.initMermaid(); }
			};

			mw.checkSectionHeadings();

			return;
		}

		mw.initMermaid(); // Proceed normally.
	} );
} );

}( jQuery, mediaWiki ) );
Intégration du logo de l'UL dans Vector et MinervaNeue (voir Gestion:Tâches/Liste/650)
Réparation de l'édition visuelle avec TimedMediaHandler (voir Gestion:Tâches/Liste/658)

Discussion