From f5da797a4e3e2028f33fb2c1dce0e0c388324bdb Mon Sep 17 00:00:00 2001 From: jcant0n Date: Sat, 1 Aug 2026 23:49:54 +0200 Subject: [PATCH] chore: consume the bindings toolbox and declare the upstream manifest Repoints CI and CD from evergine-standards@v2 to Evergine.Bindings@v1. The toolbox holds byte-identical copies of those reusable workflows, so this is a no-op verified by comparing the produced package against the run that preceded it. Adds binding.yml. Writing it turned up something worth recording rather than fixing here: the header is taken from Emscripten 3.1.56, while the README states the .NET SDK is coupled to Emscripten 3.1.36 for .NET 10. Whether that is intentional, stale documentation, or a real mismatch needs a person to decide, so the manifest marks the ref as frozen -- tooling may report that a newer Emscripten exists but must not propose the bump. sync-standards.yml is deliberately left pointing at evergine-standards. evergine-standards@v2 is untouched and remains the rollback path. --- .github/workflows/CI.yml | 2 +- .github/workflows/cd.yml | 86 ++++++++++++++++++++-------------------- binding.yml | 38 ++++++++++++++++++ 3 files changed, 82 insertions(+), 44 deletions(-) create mode 100644 binding.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 28d16ad..f324001 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -20,7 +20,7 @@ on: jobs: ci: - uses: EvergineTeam/evergine-standards/.github/workflows/binding-common-ci.yml@v2 + uses: EvergineTeam/Evergine.Bindings/.github/workflows/binding-common-ci.yml@v1 with: generator-project: "WebGPUGen/WebGPUGen/WebGPUGen.csproj" # Path to your generator .csproj generator-name: "WebGPU" # Name of your generator executable diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 9ce7aa9..1a3f3e9 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,44 +1,44 @@ -# Binding Simple CD - Template - -# This template is for pure .NET bindings (no XML update) to publish NuGets to Nuget.org. -# Copy this file to your repository as `.github/workflows/CD.yml` and customize the inputs below. - -name: CD - -on: - workflow_dispatch: - inputs: - skip-assets-publishing: - description: 'Skip assets publishing' - required: false - type: boolean - default: false - -jobs: - publish: - if: github.event_name != 'schedule' || github.ref_name == github.event.repository.default_branch - uses: EvergineTeam/evergine-standards/.github/workflows/binding-simple-cd.yml@v2 - with: - generator-project: "WebGPUGen/WebGPUGen/WebGPUGen.csproj" # Path to your generator .csproj - generator-name: "WebGPU" # Name of your generator executable - binding-project: "WebGPUGen/Evergine.Bindings.WebGPU/Evergine.Bindings.WebGPU.csproj" # Path to your binding .csproj - target-framework: "net10.0" # Target framework for generator/binding - dotnet-version: "10.x" # .NET SDK version - nuget-version: "6.x" # NuGet CLI version - runtime-identifier: "win-x64" # Runtime identifier (win-x64, linux-x64, etc.) - build-configuration: "Release" # Build configuration (Release, Debug, etc.) - revision: ${{ github.run_number }} # Revision for date-based version (bindings style). Use with bindings. - publish-enabled: ${{ !inputs.skip-assets-publishing }} - enable-email-notifications: true - runner-os: windows-latest - secrets: - NUGET_UPLOAD_TOKEN: ${{ secrets.EVERGINE_NUGETORG_TOKEN }} - WAVE_SENDGRID_TOKEN: ${{ secrets.WAVE_SENDGRID_TOKEN }} - EVERGINE_EMAILREPORT_LIST: ${{ secrets.EVERGINE_EMAILREPORT_LIST }} - EVERGINE_EMAIL: ${{ secrets.EVERGINE_EMAIL }} - -# Tips: -# - For direct version (add-ons style): -# version: "3.4.22.288-local" -# - For date-based version (bindings style): +# Binding Simple CD - Template + +# This template is for pure .NET bindings (no XML update) to publish NuGets to Nuget.org. +# Copy this file to your repository as `.github/workflows/CD.yml` and customize the inputs below. + +name: CD + +on: + workflow_dispatch: + inputs: + skip-assets-publishing: + description: 'Skip assets publishing' + required: false + type: boolean + default: false + +jobs: + publish: + if: github.event_name != 'schedule' || github.ref_name == github.event.repository.default_branch + uses: EvergineTeam/Evergine.Bindings/.github/workflows/binding-simple-cd.yml@v1 + with: + generator-project: "WebGPUGen/WebGPUGen/WebGPUGen.csproj" # Path to your generator .csproj + generator-name: "WebGPU" # Name of your generator executable + binding-project: "WebGPUGen/Evergine.Bindings.WebGPU/Evergine.Bindings.WebGPU.csproj" # Path to your binding .csproj + target-framework: "net10.0" # Target framework for generator/binding + dotnet-version: "10.x" # .NET SDK version + nuget-version: "6.x" # NuGet CLI version + runtime-identifier: "win-x64" # Runtime identifier (win-x64, linux-x64, etc.) + build-configuration: "Release" # Build configuration (Release, Debug, etc.) + revision: ${{ github.run_number }} # Revision for date-based version (bindings style). Use with bindings. + publish-enabled: ${{ !inputs.skip-assets-publishing }} + enable-email-notifications: true + runner-os: windows-latest + secrets: + NUGET_UPLOAD_TOKEN: ${{ secrets.EVERGINE_NUGETORG_TOKEN }} + WAVE_SENDGRID_TOKEN: ${{ secrets.WAVE_SENDGRID_TOKEN }} + EVERGINE_EMAILREPORT_LIST: ${{ secrets.EVERGINE_EMAILREPORT_LIST }} + EVERGINE_EMAIL: ${{ secrets.EVERGINE_EMAIL }} + +# Tips: +# - For direct version (add-ons style): +# version: "3.4.22.288-local" +# - For date-based version (bindings style): # revision: "" # Uses github.run_number or custom logic \ No newline at end of file diff --git a/binding.yml b/binding.yml new file mode 100644 index 0000000..49f2e3a --- /dev/null +++ b/binding.yml @@ -0,0 +1,38 @@ +# Binding manifest — see https://github.com/EvergineTeam/Evergine.Bindings +# Schema: https://github.com/EvergineTeam/Evergine.Bindings/blob/main/binding.schema.json +toolbox: 1.0.0 + +package: + id: Evergine.Bindings.WebGPU + project: WebGPUGen/Evergine.Bindings.WebGPU/Evergine.Bindings.WebGPU.csproj + target-framework: net10.0 + runtime-identifier: win-x64 + +upstream: + kind: git-tree + language: c + project: https://github.com/emscripten-core/emscripten + version-from: git-release + sources: + - repo: emscripten-core/emscripten + ref: "3.1.56" + remote-path: system/include/webgpu/webgpu.h + path: WebGPUGen/WebGPUGen/Headers/webgpu.h + format: c-header + +generator: + project: WebGPUGen/WebGPUGen/WebGPUGen.csproj + name: WebGPU + output: + - WebGPUGen/Evergine.Bindings.WebGPU/Generated + +# NOTE — do not let an agent bump `ref` here without a human deciding. +# +# Since June 2025 this binding targets browsers only, because the .NET SDK is pinned to +# a specific Emscripten version (the README cites 3.1.36 for .NET 10). The header ref +# above is 3.1.56, which does not match that number. Whether that is intentional, stale +# documentation, or a real mismatch needs a person to resolve -- it is exactly the kind +# of question the manifest is meant to surface rather than answer. +# +# Until it is resolved, treat `ref` as frozen: binding-updater may report that a newer +# Emscripten exists, but must not propose the bump.