Saltar al contenido
Documentación
En esta página

Contribuir al SDK

Informa de los problemas del SDK en los issues del repositorio bullet-hero/sdk, y envía allí mismo los cambios de código como pull requests. Las reglas para contribuir están en el mismo repositorio, junto al código

El repositorio es bullet-hero/sdk, la rama predeterminada es master

Dónde informar

Sobre quéDónde
el SDK y su códigobullet-hero/sdk/issues
el juego: errores y peticiones de los jugadoresbullet-hero/releases/issues
el texto de la documentaciónbullet-hero/docs

Dónde están las reglas

Las reglas para contribuir están en el propio repositorio del SDK, junto al código que describen:

ArchivoQué contiene
README.mddependencias, paquetes de niveles, compilación de la DLL y del paquete, el ejemplo de comprobación
CLAUDE.mdel modelo mental, un índice de carpetas y las convenciones de toda la biblioteca
CLAUDE.md en cada carpetalas reglas locales de esa carpeta, por ejemplo Serialization, Validations, Publishing
Docs/VERSIONING.mdejes de versión, generaciones, migración y rechazo
Docs/IDENTIFIERS.mdcómo direcciona el modelo las entidades: Guid, int, fotograma, ruta de campo
Política de licencias de los niveles de usuarios (en este sitio)la política de licencias del contenido de los usuarios, que se edita junto con TrustedSourceCatalog
Versions/README.mdcómo escribir una instantánea y un migrador
Generators/README.mdel contrato de los generadores
Roslyn/README.mdlos analizadores y el generador de modelos, cómo recompilarlos
UnityIntegration/README.mdel contrato de doble compilación
CHANGELOG.mdlos cambios por versión sv, los más recientes arriba

Compilación y pruebas

dotnet build -c Release BH.SDK.csproj
dotnet test Tests/BH.SDK.Tests.csproj
dotnet pack -c Release BH.SDK.csproj
  • aquí se compilan sin Unity las mismas fuentes que compila Unity. Un archivo que rompe el contrato de independencia del motor rompe esta compilación
  • la salida va a bin~ y obj~
  • el comando pack solo crea un .nupkg. La publicación en nuget.org la hace el workflow release del repositorio cuando se sube una etiqueta sv
Precaución

Los analizadores y el generador de modelos se distribuyen como una BH.SDK.Roslyn.dll precompilada en la raíz del SDK. Después de editar cualquier cosa en Roslyn/, recompílala y cópiala encima. Si no, sigue funcionando el generador antiguo, aunque las fuentes digan otra cosa

cd Roslyn
dotnet build BH.SDK.Roslyn.csproj -c Release
cp bin~/Release/BH.SDK.Roslyn.dll ../BH.SDK.Roslyn.dll
dotnet test Tests~/BH.SDK.Roslyn.Tests.csproj -c Release

Dentro del editor de Unity, el elemento de menú Tools > BH.SDK.Roslyn > Build Analyzer hace lo mismo

Invariantes que conviene conocer de antemano

  • el núcleo no hace referencia a ningún tipo de UnityEngine. El código que necesita el motor va a UnityExtensions/ o a UnityIntegration/, detrás de #if BHSDK_UNITY y con una rama sin motor
  • el código funciona igual con archivos y con datos en memoria y solo usa la asincronía de la BCL
  • netstandard2.1 y C# 9 son con lo que compila el proyecto de Unity. No se suben
  • un modelo es una [GenerateModel] public sealed partial class. Cada campo serializado toma su clave de Names.cs
  • cualquier cambio del modelo es una nueva generación con una instantánea y un migrador. Más - Versiones y migraciones
  • la versión del SDK vive en tres lugares: SdkVersion.cs, package.json y <Version> en BH.SDK.csproj. SdkVersionAgreementTests falla si uno de ellos se ha movido por separado