Skip to content

Release 1.1.0-beta4: Python bindings + TestKit.Core split + Trusted Publishing#11

Merged
begeistert merged 1 commit into
mainfrom
release/1.1.0-beta4
Jun 26, 2026
Merged

Release 1.1.0-beta4: Python bindings + TestKit.Core split + Trusted Publishing#11
begeistert merged 1 commit into
mainfrom
release/1.1.0-beta4

Conversation

@begeistert

Copy link
Copy Markdown
Collaborator

Resumen

Corta la beta 1.1.0-beta4 y habilita la publicación de los testkits a NuGet.org.

Cambios C# / NuGet

  • Avr8Sharp.TestKit.Core (MIT, nuevo paquete): harness de simulación agnóstico de assertions (run loop, probes, board presets), extraído del TestKit para que tanto el TestKit (FluentAssertions) como la capa Native AOT lo reusen sin arrastrar FluentAssertions al AOT. Añade presets ATtinyX4 (24/44/84) y ATtiny13.
  • Avr8Sharp.TestKit ahora depende de TestKit.Core y solo añade los .Should().
  • Bump a 1.1.0-beta4 en los tres paquetes → la cadena TestKit → TestKit.Core → Avr8Sharp resuelve versiones coincidentes.
  • Avr8Sharp.Native: librería Native AOT que exporta una C-ABI plana (a8s_*) sobre el harness (base de los bindings Python; no es un nupkg).

Bindings Python (BUSL-1.1)

  • bindings/python/ → paquete avr8sharp autocontenido (ctypes + API fluida, hatchling). Sin runtime .NET para el usuario.

CI / Publicación

  • publish.yml ahora packea TestKit.Core (antes que TestKit, por orden de dependencia) y publica vía NuGet Trusted Publishing (OIDC) con NuGet/login en vez de la API key de larga vida (permissions: id-token: write).

Verificación

  • dotnet test: 507/507
  • Los tres paquetes empacan limpio en 1.1.0-beta4; nuspecs con deps correctas y licencia MIT.

🤖 Generated with Claude Code

Split the assertion-agnostic simulation harness (run loop, probes, board
presets) into a new Avr8Sharp.TestKit.Core project so it can be reused by
both the FluentAssertions-based TestKit and a Native AOT C-ABI layer without
dragging FluentAssertions into the AOT image.

New components:
- Avr8Sharp.TestKit.Core (MIT): shared harness, now the dependency of TestKit.
  Adds ATtinyX4 (24/44/84) and ATtiny13 board presets.
- Avr8Sharp.Native: Native AOT shared library exporting a flat C-ABI
  (a8s_*, [UnmanagedCallersOnly]) over the harness, handle-based via GCHandle.
- bindings/python (BUSL-1.1): self-contained `avr8sharp` PyPI package — ctypes
  loader + fluent API, packaged with hatchling (no .NET runtime for users).

Release:
- Bump Avr8Sharp, Avr8Sharp.TestKit and Avr8Sharp.TestKit.Core to 1.1.0-beta4
  so the TestKit -> TestKit.Core -> Avr8Sharp dependency chain resolves to
  matching versions on NuGet.org.
- publish.yml now packs TestKit.Core (before TestKit) and pushes to nuget.org
  via NuGet Trusted Publishing (OIDC) instead of a long-lived API key.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@begeistert begeistert merged commit c4f308b into main Jun 26, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant