Caputchin
Développement de jeu pour le marketplace

Référence des erreurs de publication

Chaque code d'erreur que le chemin de publication au marketplace peut renvoyer, avec le déclencheur et le lien vers la correction. Pour les corrections pas à pas, vois Corriger un échec de publication.

Codes d'erreur

CodeDéclencheurCorrection
invalid-repoLe champ de dépôt que tu as saisi dans la modale de publication ne se parse pas comme owner/name. Publication manuelle seulementUtilise owner/name ou l'URL complète https://github.com/owner/name
repo-not-foundNotre récupération de manifeste a renvoyé un 404. Ton dépôt est privé, manquant, n'a pas le topic caputchin-game, ou n'a pas de caputchin.json au chemin attenduRends le dépôt public + ajoute le topic + pousse un manifeste
manifest-errorTon caputchin.json a échoué à la validation. La chaîne de détail nomme le champ précis. Vois les sous-codes manifest-errorCorrige le champ que le détail nomme
bundle-fetch-failedL'URL du bundle épinglée par entry et/ou npm n'a pas pu être récupérée, a renvoyé un non-2xx, ou dépasse 12 MoVérifie l'URL et la taille du bundle
run-not-conformingLe test de l'artefact run optionnel (exécuté une fois avec une graine déterministe) n'a pas renvoyé un verdict conforme. Ton jeu est toujours listé, s'affiche juste Non rejouable et ne peut pas gaterRends ta simulation déterministe
rate-limitedTrop de requêtes de publication depuis ton IP dans les 60 dernières secondesAttends 60 secondes et réessaie

Sous-codes manifest-error

Quand tu reçois une manifest-error, la chaîne de détail commence par le champ en échec. Utilise cette table pour trouver la bonne correction.

Champ dans le détailSignificationCorrection
terms_acceptedLe champ est manquant ou n'est pas le booléen JSON littéral trueRègle-le à true après avoir lu les Conditions de soumission
licenseManquante, malformée, ou nomme un identifiant SPDX hors de la liste approuvéeChoisis un identifiant de la liste approuvée
(root)Le fichier JSON ne se parse pas comme un objet (tu as un tableau, une chaîne ou un null de premier niveau)Enveloppe-le dans { ... }
marketplaceLe bloc marketplace est présent mais n'est pas un objetSoit fais-en un objet, soit retire-le (les jeux auto-hébergés-seulement omettent le bloc)
marketplace.name / description / previewLe champ n'est pas une chaîneConvertis en chaîne ou retire
marketplace.authorLe bloc est présent mais n'est pas un objetUtilise la forme { name?, url?, email? }
marketplace.author.name / urlLe sous-champ n'est pas une chaîneConvertis en chaîne ou retire
marketplace.author.emailN'est pas une chaîne OU échoue à la vérification de forme d'e-mailCorrige l'adresse ou retire le champ
entryUn jeu unique n'a ni entry ni npm, ou la valeur contient une traversée (../), des barres obliques absolues, des séparateurs Windows, des chaînes de requête, ou des espacesFournis un chemin relatif propre
npmN'est pas une chaîne, ou échoue à la regex de nom npmUtilise un nom de paquet npm valide
entry/npm+gamesÀ la fois entry/npm et games déclarés au même niveauChoisis-en un : les jeux uniques utilisent entry/npm ; les wrappers de collection utilisent games
entry/npmUn jeu unique n'a ni l'un ni l'autreAjoutes-en un
gamesN'est pas un tableau, contient des entrées non-chaînes, contient une traversée/des chemins absolus, ou contient . / ./ (qui s'auto-référencerait à la racine du dépôt)Corrige le tableau
games[i]Un chemin d'enfant précis est invalideCorrige cette entrée
run / run.entry / run.modules[i].*La déclaration de run découpée optionnelle est malforméeCorrige selon le schéma

Licences approuvées

Seuls les manifestes caputchin.json dont le champ license s'évalue en un identifiant SPDX sur cette liste passent la barrière de licence. Vois Conditions de soumission au Marketplace section 4 pour la version contraignante.

Licences de code permissives

ID SPDXNom
MITMIT License
MIT-0MIT No Attribution
Apache-2.0Apache License 2.0
BSD-2-ClauseBSD 2-Clause "Simplified"
BSD-3-ClauseBSD 3-Clause "New" / "Revised"
0BSDBSD Zero Clause
ISCISC License
Zlibzlib License
UnlicenseThe Unlicense (public-domain dedication)
BSL-1.0Boost Software License 1.0
NCSAUniversity of Illinois / NCSA Open Source License
PostgreSQLPostgreSQL License
Python-2.0Python License 2.0
PHP-3.01PHP License 3.01
RubyRuby License
TCLTcl/Tk License
MS-PLMicrosoft Public License
AFL-3.0Academic Free License 3.0
MulanPSL-2.0Mulan Permissive Software License v2
WTFPLDo What The Fuck You Want To Public License

Copyleft faible à portée de fichier

ID SPDXNom
MPL-2.0Mozilla Public License 2.0
MS-RLMicrosoft Reciprocal License

Licences de ressources (art, audio, polices embarquées dans le jeu)

ID SPDXNom
CC0-1.0Creative Commons Zero v1.0
CC-BY-3.0Creative Commons Attribution 3.0
CC-BY-4.0Creative Commons Attribution 4.0
OFL-1.1SIL Open Font License 1.1

Règles d'expression SPDX

  • MIT : identifiant nu ; doit apparaître ci-dessus.
  • MIT OR Apache-2.0 : n'importe quelle branche d'un OR doit apparaître ci-dessus.
  • MIT AND CC-BY-4.0 : chaque branche d'un AND doit apparaître ci-dessus.
  • Apache-2.0 WITH LLVM-exception : les clauses WITH ne sont pas acceptées.
  • LGPL-2.1+ : le suffixe + (ou-ultérieure) n'est pas accepté.

Pourquoi certaines licences sont exclues

CatégorieExemplesPourquoi
Copyleft fortGPL-*, AGPL-*Viral ; le déclencheur réseau §13 d'AGPL est aigu puisque nous sommes l'hôte réseau. (GPL-2.0-only n'est accepté que pour les jeux maison publiés par Caputchin, pas pour les soumissions tierces.)
Copyleft de bibliothèque avec ambiguïté de bundlingLGPL-*« Transmettre la bibliothèque » se lit de façon ambiguë pour les bundles JavaScript et WebAssembly
Share-alike sur les ressourcesCC-BY-SA-*, CC-BY-NC-*, CC-BY-ND-*Le share-alike contamine l'intégration du site intégrateur ; NC exclut le déploiement commercial
Source-available (pas OSI)BUSL-1.1, SSPL-1.0, Elastic-2.0Restrictions de champ d'usage, restrictions de redistribution, ou les deux

Note que BSL-1.0 (Boost Software License) est permissive et acceptée ; BUSL-1.1 (Business Source License) ne l'est pas. Le parseur compare contre la chaîne canonique SPDX verbatim, donc les deux ne se heurtent jamais.

Voir aussi

Sur cette page