Signet 1.1.0

Publié le

dans

.
Des marque-pages

Lorsque j’ai commencĂ© les tests de compatibilitĂ© de mes extensions avec la premiĂšre bĂȘta de Retraceur 4.0.0, je ne m’attendais pas Ă  devoir publier une nouvelle version de Signet. Pourtant, ces essais ont rapidement mis en Ă©vidence une anomalie qui empĂȘchait le bloc de fonctionner correctement dans ce nouveau contexte.

Cette version 1.1.0 est donc avant tout une version de maintenance. Mais, comme c’est souvent le cas lorsqu’on prend le temps d’analyser un problĂšme jusqu’Ă  son origine, elle a Ă©galement permis d’amĂ©liorer Retraceur lui-mĂȘme.

Un problÚme révélé par Retraceur 4.0.0-beta1

Le développement de Retraceur 4.0.0 introduit plusieurs évolutions internes destinées à préparer les prochaines fonctionnalités du projet.

En testant les Ă©ventuels impacts de la premiĂšre bĂȘta de Retraceur 4.0.0 sur le comportement de Signet, j’ai constatĂ© que les blocs insĂ©rĂ©s dans les articles avant cette Ă©volution gĂ©nĂ©raient systĂ©matiquement une erreur dans l’Ă©diteur de blocs. MĂȘme si un clic sur le bouton de rĂ©paration permettait de corriger la difficultĂ©, il fallait que j’investigue pour comprendre ce qui clochait et trouver une solution durable.

AprĂšs plusieurs investigations, j’ai identifiĂ© l’origine du problĂšme et mis en place la correction correspondante dans Signet. Si vous souhaitez suivre le dĂ©tail de cette investigation, vous pouvez consulter l’issue Signet #5 qui retrace l’analyse et la correction de cette anomalie.

Cette correction permet à Signet de retrouver un fonctionnement normal avec Retraceur 4.0.0 tout en restant compatible avec les versions précédentes.

Une anomalie plus ancienne mise au jour

En poursuivant mes tests, j’ai dĂ©couvert que Signet ne parvenait jamais Ă  rĂ©cupĂ©rer la description des articles publiĂ©s sur ce blog.

Or, depuis la version 3.0.0, Retraceur embarque sa propre API OpenGraph afin de fournir des mĂ©tadonnĂ©es normalisĂ©es aux applications qui souhaitent prĂ©senter un aperçu d’une page.

Signet exploite naturellement cette API lorsqu’elle est disponible afin de pouvoir s’appuyer sur la balise <meta property="og:description"> pour obtenir cette fameuse description. Mon analyse m’a permis de dĂ©couvrir qu’une anomalie hĂ©ritĂ©e du code de WordPressÂź empĂȘchait la REST API de Retraceur d’exposer correctement cette information.

La correction apportĂ©e Ă  Retraceur permet dĂ©sormais de rĂ©cupĂ©rer correctement cette description. Elle profite donc non seulement Ă  Signet, mais Ă©galement Ă  toutes les applications qui s’appuient sur la REST API de Retraceur pour consulter les mĂ©tadonnĂ©es OpenGraph.

La correction apportĂ©e Ă  Retraceur est documentĂ©e dans l’issue Retraceur #232, qui dĂ©taille l’origine de cette anomalie ainsi que sa rĂ©solution.

Installer Signet

AprĂšs avoir tĂ©lĂ©chargĂ© l’archive signet.zip du bloc depuis la page GitHub de sa version 1.1.0, il s’agit de la charger sur votre site Ă  l’aide de l’interface d’administration de vos blocs.

Une illustration de l’intĂ©rĂȘt des tests

Ce travail illustre parfaitement l’intĂ©rĂȘt de tester rĂ©guliĂšrement ses extensions et ses blocs sur les prĂ©-versions de Retraceur.

D’une part, cela permet aux dĂ©veloppeurs d’extensions et de blocs de vĂ©rifier que leur code reste compatible avec les Ă©volutions du cadre dans lequel il s’exĂ©cute.

D’autre part, une anomalie observĂ©e dans une extension (ou un bloc) n’est pas toujours causĂ©e par cette derniĂšre. Elle peut rĂ©vĂ©ler une difficultĂ© plus profonde au sein mĂȘme de Retraceur. Dans ce cas, la rĂ©solution ne relĂšve plus uniquement du dĂ©veloppeur de l’extension mais Ă©galement des mainteneurs du cƓur.

C’est l’un des grands intĂ©rĂȘts d’un projet open source : chacun peut signaler une anomalie, analyser sa cause rĂ©elle et proposer une correction. Au-delĂ  de rĂ©soudre un problĂšme local, cette dĂ©marche contribue Ă  amĂ©liorer la qualitĂ© et la robustesse de Retraceur dans son ensemble.

Comme toujours, les anomalies, suggestions et contributions sont les bienvenues sur les dépÎts GitHub des projets.

Crédits de la photo en une : AngÚle Kamp sur Unsplash

NB : La marque WordPressÂź est la propriĂ©tĂ© intellectuelle de la Fondation WordPress. L’utilisation du nom WordPressÂź dans cet article est uniquement Ă  des fins d’identification et n’implique pas une approbation de la part de la Fondation WordPress.