[{"data":1,"prerenderedAt":27},["ShallowReactive",2],{"doc:fr:plugins\u002Fversioning":3},{"title":4,"lede":5,"html":6,"headings":7},"Les versions","Comment un plugin dit pour quelle Escouade il est écrit, ce qui se passe quand l’une ou l’autre change, et comment le store choisit la version à proposer.","\u003Ch2 id=\"la-version-du-plugin\">La version du plugin\u003C\u002Fh2>\n\u003Cp>\u003Ccode class=\"key\">version\u003C\u002Fcode>, dans le manifeste, est en trois nombres (\u003Ccode class=\"key\">1.2.0\u003C\u002Fcode>, \u003Ccode class=\"key\">0.3.0-beta.1\u003C\u002Fcode>), la même que l’étiquette git de la version (\u003Ccode class=\"key\">v1.2.0\u003C\u002Fcode>, ou \u003Ccode>plugins\u002F&lt;dossier&gt;\u002Fv1.2.0\u003C\u002Fcode> dans un dépôt de plusieurs plugins). Le store refuse une version qui n’est pas plus grande que la dernière publiée ; une version publiée est figée, son numéro ne revient pas.\u003C\u002Fp>\n\u003Ch2 id=\"pour-quelle-escouade\">Pour quelle Escouade\u003C\u002Fh2>\n\u003Cp>\u003Ccode class=\"key\">escouade\u003C\u002Fcode> dit trois choses :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode class=\"key\">api\u003C\u002Fcode> : la version majeure du \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fapi\u002F\">protocole\u003C\u002Fa> que parle le plugin, \u003Ccode class=\"key\">&quot;1&quot;\u003C\u002Fcode>. Escouade sert aujourd’hui la version 1.\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"key\">min\u003C\u002Fcode> : la plus ancienne Escouade avec laquelle il a été essayé (\u003Ccode class=\"key\">2.1.0\u003C\u002Fcode>, ou \u003Ccode class=\"key\">2.1\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"key\">max\u003C\u002Fcode>, facultatif : la plus récente. \u003Ccode class=\"key\">2.4\u003C\u002Fcode> comprend toutes les 2.4.x.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Hors de cette plage, ou d’une autre API, le plugin reste installé mais désactivé, et Escouade dit pourquoi : « Ce plugin demande Escouade 2.3.0 ou plus récent ; tu as la 2.1.0. Mets Escouade à jour. »\u003C\u002Fp>\n\u003Ch2 id=\"ce-qui-ne-casse-pas\">Ce qui ne casse pas\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Un champ inconnu du manifeste est ignoré\u003C\u002Fstrong> : un manifeste écrit pour une Escouade plus récente se charge quand même, et les champs ignorés sont listés.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Une méthode inconnue\u003C\u002Fstrong> répond l’erreur \u003Ccode class=\"key\">-32601\u003C\u002Fcode>, des deux côtés : un plugin qui ne sert pas un appel ne plante pas, et Escouade applique sa réponse par défaut.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un fait nouveau\u003C\u002Fstrong> n’est envoyé qu’au plugin qui le demande dans \u003Ccode class=\"key\">permissions.events\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"ce-qui-casse\">Ce qui casse\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Une autre version du protocole\u003C\u002Fstrong> : à \u003Ccode class=\"key\">initialize\u003C\u002Fcode>, un plugin qui ne parle pas celle d’Escouade est arrêté, avec la raison (« it speaks version 2 of the protocol; this Escouade speaks version 1 »).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un manifeste invalide\u003C\u002Fstrong> pour cette Escouade : il ne se charge pas, et la raison est dite champ par champ.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"les-mises-a-jour\">Les mises à jour\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Escouade\u003C\u002Fstrong> propose la \u003Cstrong>dernière version qu’elle peut faire tourner\u003C\u002Fstrong> : une version écrite pour une Escouade plus récente est sautée, une version retirée par son auteur aussi. Une mise à jour est proposée, jamais installée seule (voir \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Finstaller\u002F#les-mises-a-jour\">installer un plugin\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Une version qui demande plus\u003C\u002Fstrong> de permissions redemande l’accord de l’utilisateur.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Les plugins livrés avec Escouade\u003C\u002Fstrong> ont sa version et changent avec elle.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"retirer-une-version\">Retirer une version\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Son auteur\u003C\u002Fstrong> la retire du store depuis son compte : elle n’est plus proposée, et ceux qui l’ont la gardent, marquée « retirée par l’auteur » (voir \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Fpublishing\u002F\">publier sur le store\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Escouade\u003C\u002Fstrong> peut retirer une version dangereuse par sa liste de révocation : elle est alors arrêtée et désactivée chez chacun, avec la raison (voir \u003Ca href=\"\u002Fdocs\u002Fplugins\u002Finstaller\u002F#le-retrait-par-escouade\">le retrait par Escouade\u003C\u002Fa>).\u003C\u002Fli>\n\u003C\u002Ful>\n",[8,12,15,18,21,24],{"id":9,"text":10,"depth":11},"la-version-du-plugin","La version du plugin",2,{"id":13,"text":14,"depth":11},"pour-quelle-escouade","Pour quelle Escouade",{"id":16,"text":17,"depth":11},"ce-qui-ne-casse-pas","Ce qui ne casse pas",{"id":19,"text":20,"depth":11},"ce-qui-casse","Ce qui casse",{"id":22,"text":23,"depth":11},"les-mises-a-jour","Les mises à jour",{"id":25,"text":26,"depth":11},"retirer-une-version","Retirer une version",1793889379843]