Skip to content

Prepare release-ready C# NuGet package workflow#1707

Draft
chavic wants to merge 2 commits into
payjoin:masterfrom
chavic:chavic/csharp-nuget-release-readiness-1448
Draft

Prepare release-ready C# NuGet package workflow#1707
chavic wants to merge 2 commits into
payjoin:masterfrom
chavic:chavic/csharp-nuget-release-readiness-1448

Conversation

@chavic

@chavic chavic commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Replaces the draft nuspec packaging with a packable SDK-style project that ships a compiled managed Payjoin.dll plus release-profile native libraries under runtimes/{rid}/native/ for all six supported RIDs — linux-arm64, linux-x64, osx-arm64, osx-x64, win-arm64, win-x64 — and adds CI that builds each native asset, packs the .nupkg, and installs it into a clean console app with a smoke test on every RID. RELEASING.md documents versioning and the manual publish path with a release-readiness checklist. Version 0.24.0-preview.1 tracks payjoin-ffi 0.24.0 and is an intentional package-model break from the 0.0.1 placeholder. musl/Alpine is the one platform left out — it needs a musl cross-toolchain rather than just a matrix entry.

Verified locally on linux-x64 end-to-end (release native build → pack → clean-app install from a local feed → FFI smoke run, 27/27 tests); the remaining RIDs are exercised by this PR's CI.

Closes #1448

Disclosure: co-authored by Claude Code

chavic added 2 commits July 2, 2026 22:41
Replace the draft nuspec package with a packable SDK-style project
that emits a public managed assembly and RID-specific native assets,
following the .NET guidance for packages that ship native libraries.

Add release-profile native asset scripts, package smoke validation in
a clean sample app, and CI jobs that build, pack, and install the
preview package across the supported RID matrix: linux-arm64,
linux-x64, osx-arm64, osx-x64, win-arm64, and win-x64.
Add maintainer documentation covering package versioning and the
publish steps to nuget.org, and link it from the package readme.

The package version tracks the payjoin-ffi crate version with a
preview suffix, and publication uses the CI-built package artifact
so releases always contain every supported RID native asset.
@coveralls

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 28620517276

Coverage remained the same at 85.938%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 15538
Covered Lines: 13353
Line Coverage: 85.94%
Coverage Strength: 350.9 hits per line

💛 - Coveralls

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.

Track release readiness for the real Payjoin C# NuGet package

2 participants