Corriger un échec de publication au marketplace
Quand la modale Publier ou mettre à jour renvoie une erreur, ou que tu reçois un e-mail de notre part au sujet d'un échec de publication, trouve ton code d'erreur ci-dessous et suis la correction. Une fois que tu pousses la correction vers ton dépôt, clique de nouveau Publier ou mettre à jour pour revérifier immédiatement, ou attends le prochain passage quotidien de l'indexeur.
Chaque échec listé ici est quelque chose que tu peux corriger dans ton dépôt. Si tu ne vois pas ton erreur ici, vérifie la référence complète des erreurs de publication pour les codes moins courants.
terms_accepted non réglé
Tu vois ceci quand ton caputchin.json n'a pas "terms_accepted": true au niveau supérieur.
- Ouvre le
caputchin.jsonde ton dépôt. - Lis les Conditions de soumission au Marketplace.
- Ajoute
"terms_accepted": trueau niveau supérieur du manifeste. - Commit et pousse.
- Clique de nouveau Publier ou mettre à jour, ou attends le prochain passage d'indexation quotidien.
La valeur doit être le booléen JSON littéral true. Les chaînes ("true"), les nombres (1), ou l'omission du champ comptent tous comme non accepté.
Licence pas sur la liste approuvée
Tu vois ceci quand license est manquante, malformée, ou nomme un identifiant hors de notre liste approuvée.
- Choisis un identifiant SPDX de la liste approuvée qui couvre véritablement ton code et tes ressources embarquées.
- Ouvre
caputchin.jsonet règle le champlicenseau niveau supérieur, par exemple"license": "MIT". - Si ton code est sous double licence, utilise une expression SPDX
OR(par ex."MIT OR Apache-2.0"). Au moins une branche doit être sur la liste approuvée. - Si ton code est MIT mais embarque des ressources Creative Commons, utilise
AND(par ex."MIT AND CC-BY-4.0"). Chaque branche doit être sur la liste approuvée. - Commit, pousse, réessaie.
Si ton projet dépend d'une licence qui n'est pas sur notre liste approuvée (le plus souvent la famille GPL, AGPL ou LGPL), la seule correction est de re-licencier ou de retirer les composants affectés. Nous ne pouvons pas accorder d'exceptions au cas par cas par auteur.
Nous n'avons pas pu trouver ton dépôt
Tu vois ceci quand notre récupération de manifeste renvoie un 404.
Causes courantes et corrections :
- Ton dépôt est privé. Rends-le public, ou retire le topic
caputchin-gamepour cesser d'apparaître dans l'index. - Ton dépôt n'a pas le topic GitHub
caputchin-game. Ajoute-le via la section About sur la page du dépôt. - Ton dépôt n'a pas de
caputchin.jsonà la racine (ou, pour les jeux enfants d'une collection, pas decaputchin.jsonau répertoire feuille). - L'URL du dépôt que tu as saisie est fausse. Utilise
owner/nameou l'URL complètehttps://github.com/owner/name.
Pousse un caputchin.json vers ton dépôt, puis réessaie.
La structure du manifeste est malformée
Tu vois une manifest-error dont le détail commence par un nom de champ comme entry, npm, games, marketplace.support ou run.modules[0].name.
Le détail te dit exactement quel champ est faux :
entry: entry must be a clean relative path: ta valeurentrycontient une traversée (../), des barres obliques absolues, des chaînes de requête, ou des espaces. Utilise un chemin propre relatif au dépôt commedist/game.js.npm: npm package name is malformed: ton champnpmn'est pas une coordonnée npm valide. Utilisenameou@scope/name, alphanumériques + tirets + points + underscores seulement.games[i] must be a relative path inside the repo: un chemin d'enfant dans le tableaugamesde ta collection s'échappe du dépôt. Utilise des chemins commepackages/leaf-memory, pas../externalni/abs/path.run.entry must be a clean relative path: même règle d'hygiène queentry, appliquée à l'entrée de run découpée optionnelle.run.modules[i].name: le nom de module doit correspondre à[a-zA-Z0-9_-]+\.(wasm|js)$et ne peut pas êtreentry.jsniartifact.js.
Édite le champ nommé selon la règle, commit, pousse, réessaie.
marketplace.author a un e-mail invalide
Tu vois ceci quand marketplace.author.email est présent mais ne correspond pas à une forme d'e-mail normale (un @, un domaine pointé, pas d'espace).
- Ouvre
caputchin.json. - Trouve
marketplace.author.email. - Soit corrige la valeur en une vraie adresse e-mail (nous l'utilisons seulement pour les notifications d'échec de publication), soit retire entièrement le champ.
- Commit, pousse, réessaie.
Tu peux aussi retirer tout le bloc marketplace.author si tu ne veux pas recevoir de notifications d'échec de publication.
Ton artefact run est non déterministe
Tu vois ceci quand notre test de conformité exécute la fonction run(seed, trace) de ton jeu et qu'elle ne produit pas un verdict conforme.
Important : ce n'est pas un échec de publication fatal. Ton jeu est toujours listé dans le parcours du marketplace et peut être intégré. Il s'affiche juste Non rejouable et ne peut pas gater une clé de site jusqu'à ce que le problème de déterminisme soit corrigé.
Causes courantes :
- Ta simulation lit
Date.now(),performance.now(),Math.random(), ou d'autres globaux non déterministes. - Ta simulation lit un état externe (DOM, réseau, stockage) que nous ne fournissons pas au moment du rejeu.
- Ta simulation dépend d'une arithmétique à virgule flottante qui diffère entre runtimes.
Corrige la simulation pour qu'elle soit une fonction pure de la graine et de la trace, pousse, réessaie. Vois le contrat de rejeu pour la règle de déterminisme, et envisage le kit moteur optionnel, qui fournit un RNG ensemençable déterministe et une horloge.
La récupération du bundle a échoué
Tu vois ceci quand l'URL du bundle épinglée par entry et/ou npm ne peut pas être récupérée, renvoie un non-2xx, ou dépasse 12 Mo.
- Si tu viens de pousser une nouvelle version : le CDN peut ne pas encore avoir propagé. Attends une minute et réessaie.
- Si ton bundle dépasse 12 Mo : élague les ressources, découpe en modules via la déclaration
run, ou déplace les grosses ressources vers un autre chemin de livraison. - Si ton paquet
npmn'est pas encore publié : publie-le d'abord ; nous ne pouvons pas récupérer les versions non publiées.
Trop de requêtes de publication
Tu vois ceci sur la modale de publication manuelle quand tu as soumis plus de dix requêtes dans les 60 dernières secondes.
Attends 60 secondes et réessaie. Il n'y a aucun moyen d'élever la limite ; elle protège le point de terminaison de l'abus.
Arrêter les e-mails de notification
Si tu veux cesser de recevoir les e-mails d'échec de publication, vois Conditions de soumission section 10. L'adresse destinataire est ton marketplace.author.email dans le manifeste ; le retirer ou le changer arrête les e-mails.