Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 20 additions & 9 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ name: Publish NuGet
# stable release version, any other ref produces a preview version derived from
# the last tag + commit height. Packages are always built and uploaded as a
# workflow artifact; they are pushed to nuget.org only for `v*` tags (or when a
# manual run sets push_public=true). Compatible with GitHub and Gitea runners.
# manual run sets push_public=true).
#
# Publishing uses NuGet Trusted Publishing (OIDC) — no long-lived API key. A short-lived
# key is minted at push time via NuGet/login from the GitHub OIDC token. This requires:
# 1) a Trusted Publishing policy on nuget.org (Repository Owner: PyMCU,
# Repository: RP2040Sharp, Workflow File: publish.yml), and
# 2) a repo secret NUGET_USER set to your nuget.org profile name (NOT your email).
# ─────────────────────────────────────────────────────────────────────────────
on:
push:
Expand All @@ -21,6 +27,9 @@ on:
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # required for the GitHub OIDC token (Trusted Publishing)

steps:
# ── Checkout ────────────────────────────────────────────────────────────
Expand Down Expand Up @@ -82,19 +91,21 @@ jobs:
--no-build
--output ./nupkgs

# ── Trusted Publishing: mint a short-lived API key from the OIDC token ────
- name: NuGet login (OIDC → temporary API key)
if: ${{ startsWith(github.ref, 'refs/tags/v') || github.event.inputs.push_public == 'true' }}
uses: NuGet/login@v1
id: login
with:
user: ${{ secrets.NUGET_USER }}

# ── Push to nuget.org (tags, or a manual push_public run) ───────────────
- name: Push to nuget.org
env:
API_KEY: ${{ secrets.NUGET_API_KEY }}
if: >
${{ github.server_url == 'https://github.com' &&
env.API_KEY != '' &&
(startsWith(github.ref, 'refs/tags/v') ||
github.event.inputs.push_public == 'true') }}
if: ${{ startsWith(github.ref, 'refs/tags/v') || github.event.inputs.push_public == 'true' }}
run: >
dotnet nuget push "./nupkgs/*.nupkg"
--source https://api.nuget.org/v3/index.json
--api-key "${{ secrets.NUGET_API_KEY }}"
--api-key "${{ steps.login.outputs.NUGET_API_KEY }}"
--skip-duplicate

# ── Always upload the packages as an artifact ───────────────────────────
Expand Down
16 changes: 15 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.0.1-beta.6] - 2026-06-26

### Changed

- **Extracted the chip-agnostic nanoCLR introspection into the shared
[NfClr.Core](https://github.com/begeistert/NfClr) package.** `ClrInspector`, `ClrLayout`,
the heap walk and `ClrSession` now live once in `NfClr.Core` (`1.0.0-beta.1`);
`RP2040Sharp.NanoFramework.TestKit` keeps only the RP2040 `IClrMemory`/`IClrHost` adapter
(`Rp2040ClrHost` / `Rp2040ClrMemory`) and depends on `NfClr.Core` via **PackageReference**.
`NanoClrHarness` is now a thin facade over `ClrSession`. Firmware symbols, layout and
checksums derive from the nanoCLR ELF/DWARF when present.
- **Publishing migrated to NuGet Trusted Publishing (OIDC)** — no long-lived API key.

## [1.0.1-beta.5] - 2026-06-25

### Changed
Expand Down Expand Up @@ -153,7 +166,8 @@ First public release candidate. A high-performance RP2040 emulator in modern C#
- Flash programming uses C# hooks rather than the SSI XIP hardware path.
- USB host support is CDC-only (sufficient for the MicroPython REPL).

[Unreleased]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.5...HEAD
[Unreleased]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.6...HEAD
[1.0.1-beta.6]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.5...v1.0.1-beta.6
[1.0.1-beta.5]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.4...v1.0.1-beta.5
[1.0.1-beta.4]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.3...v1.0.1-beta.4
[1.0.1-beta.3]: https://github.com/PyMCU/RP2040Sharp/compare/v1.0.1-beta.2...v1.0.1-beta.3
Expand Down
235 changes: 0 additions & 235 deletions src/RP2040Sharp.NanoFramework.TestKit/ClrInspector.cs

This file was deleted.

Loading
Loading