Wikinews:Grand bug du 14 décembre

Une nouvelle de Wikinews, la source d'informations que vous pouvez écrire.

Le Grand bug du 14 décembre 2012 de Wikinews est un bug qui s'est produit lors du passage de l'ancien modèle de publication au nouveau modèle de publication. Il a causé un problème au niveau de l'affichage ordonné des articles lorsqu'ils sont mis en liste par le modèle <DynamicPageList>. Le bug a été résolu par une solution temporaire qui pourra être annulée après un certain temps.

Description du bug[modifier le wikicode]

Origine du bug[modifier le wikicode]

Lors du passage de l'ancien modèle de publication au nouveau modèle de publication développé par Letartean avec l'aide plusieurs autres contributeurs, le développeur principal a fait une erreur de programmation[1] qui a causé le retrait de tous les articles de la catégorie Article publié. L'erreur de programmation a été réglée lors de la correction du modèle publication et a remis tous les articles dans la catégorie Article publié. Cette correction s'est produite le 14 décembre 2012.

Impact de la correction[modifier le wikicode]

L'erreur de programmation et sa correction ont eu pour impact de retirer tous les articles de la catégorie Article publié puis de les y remettre tous en même temps lors de la correction, le 14 décembre. Or, l'outil <DynamicPageList></DynamicPageList> est utilisé un peu partout pour créer la liste des derniers articles publiés dans un sujet particulier.[2] Cet outil est très pratique et fait le choix des articles en fonction de leur date d'ajout dans la première catégorie de l'intersection demandée. Avant le grand bug, la première catégorie listée dans l'appel était généralement « Article publié » ce qui permettait d'avoir la liste des derniers articles ajoutés à la catégorie Article publié et qui sont dans l'autre catégorie. Comme la catégorie article publié est ajoutée au moment de la première publication de l'article, ce moment est un bon moment pour déterminer l'ordre des articles. Suite au Grand bug, tous les articles ont été ajoutés à la catégorie en même temps, qu'ils aient été publié en 2005 ou en 2012, et l'ordre a été brisé. Dans les catégories ayant un grand roulement, le problème ne se fait pas ressentir ; par exemple, ces deux appels donnent à peu près le même résultat:

<DynamicPageList> category=France category=article publié namespace=0 addfirstcategorydate=true count=10 suppresserrors=true </DynamicPageList>

<DynamicPageList> category=article publié category=France namespace=0 addfirstcategorydate=true count=10 suppresserrors=true </DynamicPageList>

Cependant, ces deux appels donnent des résultats radicalement différents :

<DynamicPageList> category=Gambie category=article publié namespace=0 addfirstcategorydate=true count=10 suppresserrors=true </DynamicPageList>

<DynamicPageList> category=article publié category=Gambie namespace=0 addfirstcategorydate=true count=10 suppresserrors=true </DynamicPageList>

L'exemple à gauche représente l'état corrigé (voir la section sur la correction du bug) alors que l'exemple à droite représente l'état des pages utilisant l'outil DynamicPageList au lendemain du Grand bug. Le deuxième tableau propose l'intersection entre les catégories "Gambie" et "Article Publié", "Gambie" étant une catégorie peu active comparée à celle sur la France. Le problème est encore plus criant lorsqu'on prend l'intersection de « Article publié » avec deux autres catégories (ce qui est souvent le cas dans les pages géographiques, dans les sous-sections).

Solution temporaire[modifier le wikicode]

La solution temporaire utilisée pour rendre moins importantes les retombées du bug a été d'inverser l'ordre des catégories utilisées dans le DynamicPageList pour que la catégorie « Article Publié » ne soit plus la première et donc qu'on considère le moment d'entrée dans l'autre catégorie de l'intersection comme moment de publication. Cette solution temporaire fonctionne bien à condition que les articles soient bien catégorisés au moment de leur publication. Par exemple, une personne écrit un article sur un président français et oublie de le mettre dans la catégorie "France". Six mois plus tard, une personne repasse sur l'article et ajoute la catégorie "France". Alors, la page apparaîtra sur la Page:France seulement à ce moment et sera listé comme ayant été publiée au moment de l'ajout dans la catégorie.

Le désavantage de la solution temporaire étant pour l'instant moins grave que celui prévalant avant celle-ci, il est pertinent de laisser la chose telle quelle jusqu'à ce qu'assez de temps soit passé pour que les listes dynamiques concernant des catégories très rarement utilisées ne contiennent que des articles plus récents que le 14 décembre 2012. À ce moment, il sera possible de retourner à l'ancienne façon de faire qui datait le moment de la publication de l'article.

Fin prévue de la solution temporaire[modifier le wikicode]

Lorsque sera atteint le moment mentionné dans la section précédente, on pourra revenir à l'ancienne façon de faire. Le problème sera encore visible à quelques endroits (quelques listes contiendront des éléments datés du 14 décembre 2012) mais dans l'ensemble, on ne verra plus le problème et les articles seront bien classés, peu importe le moment de leur ajout dans une catégorie.

Pour revenir à la situation antérieure, il suffira d'inverser toutes les occurrences du code
category={{PAGENAME}}
category=article publié

par le code
category=article publié
category={{PAGENAME}}

dans cette page: Modèle:Page géographique. Il faudra aussi vérifier que tous les DynamicPageList contenant la catégorie « Article Publié » soient modifiés de cette façon.

À titre informatif, on peut penser que la similitude entre les deux listes suivantes indiquera que les répercussions du grand bug du 14 décembre 2012 sont assez loin derrière pour revenir à la façon de faire précédente.

Notes et références[modifier le wikicode]

  1. Explication plus détaillée : Le modèle était conçu pour ajouter la catégorie « article publié » si et seulement si la page dans laquelle le modèle est inclus se trouve dans l'espace principal de Wikinews. Or, Letartean s'est trompé dans le numéro de l'espace principal et a écris 1 à la place de 0 dans la commande {{#ifeq:{{NAMESPACENUMBER}}|1|[[Catégorie:Article publié]]}}. Ainsi, tous les articles qui étaient dans la catégorie Article publié en ont été retiré.
  2. Par exemple l'appel <DynamicPageList> category=France category=article publié namespace=0 addfirstcategorydate=true count=10 suppresserrors=true </DynamicPageList> affichera les dix derniers articles se trouvant dans l'intersection des catégories France et Article publié.