Caputchin
Desarrollo de juegos del marketplace

Referencia de errores de publicación

Cada código de error que el camino de publicación del marketplace puede devolver, con el disparador y el enlace al arreglo. Para arreglos paso a paso, mira Arregla un fallo de publicación.

Códigos de error

CódigoDisparadorArreglo
invalid-repoEl campo de repositorio que introdujiste en el modal de publicación no parsea como owner/name. Solo publicación manualUsa owner/name o la URL completa https://github.com/owner/name
repo-not-foundNuestra descarga del manifiesto devolvió un 404. Tu repositorio es privado, falta, le falta el topic caputchin-game, o no tiene caputchin.json en la ruta esperadaHaz el repositorio público + añade el topic + empuja un manifiesto
manifest-errorTu caputchin.json falló la validación. La cadena de detalle nombra el campo concreto. Mira subcódigos de manifest-errorArregla el campo que el detalle nombra
bundle-fetch-failedLa URL del bundle fijada por entry y/o npm no se pudo descargar, devolvió un no-2xx, o excede 12MBVerifica la URL y el tamaño del bundle
run-not-conformingLa comprobación de humo del artefacto run opcional (corrido una vez con una semilla determinista) no devolvió un veredicto conforme. Tu juego sigue listado, solo muestra No reproducible y no puede ejercer de gateHaz tu simulación determinista
rate-limitedDemasiadas peticiones de publicación desde tu IP en los últimos 60 segundosEspera 60 segundos y reintenta

Subcódigos de manifest-error

Cuando recibes un manifest-error, la cadena de detalle empieza con el campo que falla. Usa esta tabla para encontrar el arreglo correcto.

Campo en el detalleSignificadoArreglo
terms_acceptedEl campo falta o no es el booleano literal de JSON trueFíjalo a true tras leer los Términos de Envío
licenseFalta, está malformada, o nombra un identificador SPDX fuera de la lista aprobadaElige un identificador de la lista aprobada
(root)El archivo JSON no parsea como un objeto (tienes un array, cadena, o null de nivel superior)Envuélvelo en { ... }
marketplaceEl bloque marketplace está presente pero no es un objetoO hazlo un objeto o quítalo (los juegos solo-autoalojados omiten el bloque)
marketplace.name / description / previewEl campo no es una cadenaConviértelo a cadena o quítalo
marketplace.authorEl bloque está presente pero no es un objetoUsa la forma { name?, url?, email? }
marketplace.author.name / urlEl subcampo no es una cadenaConviértelo a cadena o quítalo
marketplace.author.emailNo es una cadena O falla la comprobación de forma de correoArregla la dirección o quita el campo
entryEl juego único no tiene entry ni npm, o el valor contiene recorrido (../), barras absolutas, separadores de Windows, query strings, o espacios en blancoProvee una ruta relativa limpia
npmNo es una cadena, o falla el regex de nombre de npmUsa un nombre de paquete npm válido
entry/npm+gamesTanto entry/npm como games declarados en el mismo nivelElige uno: los juegos únicos usan entry/npm; los envoltorios de colección usan games
entry/npmEl juego único no tiene ningunoAñade uno
gamesNo es un array, contiene entradas que no son cadenas, contiene rutas de recorrido/absolutas, o contiene . / ./ (que se auto-referenciaría a la raíz del repo)Arregla el array
games[i]Una ruta hija concreta es inválidaArregla esa entrada
run / run.entry / run.modules[i].*La declaración de run dividido opcional está malformadaArregla según el esquema

Licencias aprobadas

Solo los manifiestos caputchin.json cuyo campo license evalúa a un identificador SPDX de esta lista pasan el gate de licencias. Mira los Términos de Envío del Marketplace sección 4 para la versión vinculante.

Licencias de código permisivas

SPDX IDNombre
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 débil de alcance de archivo

SPDX IDNombre
MPL-2.0Mozilla Public License 2.0
MS-RLMicrosoft Reciprocal License

Licencias de assets (arte, audio, fuentes empaquetadas en el juego)

SPDX IDNombre
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

Reglas de expresión SPDX

  • MIT: identificador a secas; debe aparecer arriba.
  • MIT OR Apache-2.0: cualquier rama de un OR debe aparecer arriba.
  • MIT AND CC-BY-4.0: cada rama de un AND debe aparecer arriba.
  • Apache-2.0 WITH LLVM-exception: las cláusulas WITH no se aceptan.
  • LGPL-2.1+: el sufijo + (o-posterior) no se acepta.

Por qué se excluyen algunas licencias

CategoríaEjemplosPor qué
Copyleft fuerteGPL-*, AGPL-*Viral; el disparador de red §13 de AGPL es agudo ya que nosotros somos el anfitrión de red. (GPL-2.0-only se acepta solo para juegos de primera parte publicados por Caputchin, no para envíos de terceros.)
Copyleft de librería con ambigüedad de empaquetadoLGPL-*"Transmitir la librería" se lee de forma ambigua para los bundles de JavaScript y WebAssembly
Share-alike en assetsCC-BY-SA-*, CC-BY-NC-*, CC-BY-ND-*El share-alike contamina la integración del sitio que incrusta; NC descarta el despliegue comercial
Source-available (no OSI)BUSL-1.1, SSPL-1.0, Elastic-2.0Restricciones de campo de uso, restricciones de redistribución, o ambas

Nota que BSL-1.0 (Boost Software License) es permisiva y se acepta; BUSL-1.1 (Business Source License) no. El parser compara contra la cadena canónica SPDX de forma literal, así que las dos nunca colisionan.

Véase también

En esta página