Skip to content

Commit ad44ea0

Browse files
author
CID Agent
committed
Update CID context: NuGet account and API key configured
NUGET_API_KEY GitHub Actions secret is now set. Update state.md, dotnet-bindings spec, and ci-cd spec to reflect NuGet publishing readiness and add NuGet to registry tables and checklists.
1 parent c902eb7 commit ad44ea0

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

.claude/context/specs/ci-cd.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ on:
7878
description: Publish iscc-lib to RubyGems
7979
type: boolean
8080
default: false
81+
nuget:
82+
description: Publish Iscc.Lib to NuGet
83+
type: boolean
84+
default: false
8185
```
8286
8387
### Job Conditions
@@ -93,6 +97,8 @@ Each job chain activates on either a tag push or its corresponding checkbox:
9397
`if: startsWith(github.ref, 'refs/tags/v') || inputs.maven`
9498
- **RubyGems jobs** (build-ruby-gems, publish-rubygems):
9599
`if: startsWith(github.ref, 'refs/tags/v') || inputs.rubygems`
100+
- **NuGet jobs** (pack-nuget, test-nuget, publish-nuget):
101+
`if: startsWith(github.ref, 'refs/tags/v') || inputs.nuget`
96102

97103
Tag pushes activate all jobs (no inputs are set, but the tag condition passes for all).
98104

@@ -104,6 +110,7 @@ Tag pushes activate all jobs (no inputs are set, but the tag condition passes fo
104110
| **PyPI** | OIDC trusted publishing | `pypa/gh-action-pypi-publish@release/v1` |
105111
| **npm** | Token (`NPM_TOKEN` secret) | `NODE_AUTH_TOKEN` env var |
106112
| **Maven Central** | GPG signing + Sonatype token | `MAVEN_GPG_PRIVATE_KEY`, `MAVEN_GPG_PASSPHRASE`, `MAVEN_USERNAME`, `MAVEN_PASSWORD` |
113+
| **NuGet** | API key (`NUGET_API_KEY`) | Scoped NuGet.org API key as GitHub Actions secret |
107114
| **RubyGems** | OIDC trusted publishing | RubyGems trusted publisher config (or `GEM_HOST_API_KEY` secret fallback) |
108115

109116
All jobs that use OIDC require `permissions: id-token: write`. Maven Central uses the Sonatype
@@ -192,6 +199,7 @@ Single build on ubuntu-latest, platform-independent.
192199
| WASM | npm | `@iscc/wasm` |
193200
| Java | Maven Central | `io.iscc:iscc-lib` |
194201
| Ruby | RubyGems | `iscc-lib` |
202+
| C# / .NET | NuGet | `Iscc.Lib` |
195203
| Go | pkg.go.dev | `github.com/iscc/iscc-lib/packages/go` (tag-based, no publish job) |
196204

197205
### Java JNI native libraries (cargo + Maven)
@@ -315,12 +323,14 @@ workflow triggers on push to `main`.
315323
- [x] `workflow_dispatch` with only `npm: true` builds and publishes only npm packages
316324
- [x] `workflow_dispatch` with only `maven: true` builds and publishes only to Maven Central
317325
- [ ] `workflow_dispatch` with only `rubygems: true` builds and publishes only to RubyGems
326+
- [x] `workflow_dispatch` with only `nuget: true` builds and publishes only to NuGet
318327
- [x] Each registry's jobs are independent — failure in one does not block others
319328
- [x] crates.io uses OIDC trusted publishing (no API key secret)
320329
- [x] PyPI uses OIDC trusted publishing (no API key secret)
321330
- [x] npm uses `NPM_TOKEN` repository secret
322331
- [x] Maven Central uses GPG signing + Sonatype Central Portal credentials
323332
- [ ] RubyGems uses OIDC trusted publishing (or `GEM_HOST_API_KEY` fallback)
333+
- [x] NuGet uses scoped API key (`NUGET_API_KEY` secret)
324334
- [x] Python wheels use abi3-py310 (one wheel per platform for Python 3.10+)
325335
- [x] Java JAR bundles 5-platform native libraries under `META-INF/native/`
326336
- [ ] Ruby precompiled gems available for 5 platforms (Linux x86_64/aarch64, macOS x86_64/arm64,

.claude/context/specs/dotnet-bindings.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends dotnet-sdk-8.0
180180
- .NET built-in Roslyn analyzers with `TreatWarningsAsErrors`
181181
- No external linting tools needed for thin wrapper
182182

183-
## Account Setup Required
183+
## Account Setup
184184

185-
1. **NuGet.org account**: Register under ISCC organization
186-
2. **Package reservation**: Reserve `Iscc.Lib` package ID prefix
187-
3. **API key**: Create scoped NuGet API key, store as `NUGET_API_KEY`
185+
- **NuGet.org account**: Registered ✅
186+
- **API key**: Scoped NuGet API key stored as `NUGET_API_KEY` GitHub Actions secret ✅
188187

189188
## Verification Criteria
190189

.claude/context/state.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ platform checksums have been added to `packages/cpp/portfile.cmake` and `SKIP_SH
105105
- `packages/dotnet/README.md` — 82 lines ✅
106106
- **Known limitation**: `MetaCodeResult`, `TextCodeResult`, `InstanceCodeResult` carry only
107107
`(string Iscc)` — extra fields require C FFI struct changes first; not blocking
108-
- **Manual action still needed**: NuGet.org account setup (NUGET_API_KEY secret, package ID
109-
reservation) before NuGet publish job can be triggered
108+
- `NUGET_API_KEY` GitHub Actions secret configured; NuGet publishing pipeline ready
110109

111110
## C++ Bindings
112111

@@ -202,8 +201,7 @@ platform checksums have been added to `packages/cpp/portfile.cmake` and `SKIP_SH
202201
- `pack-nuget``test-nuget``publish-nuget` pipeline in place ✅
203202
- v0.2.0 released successfully across all 8 registries
204203
- `iscc.hpp` bundled in FFI release tarballs (both Unix `cp` and Windows `Copy-Item` steps) ✅
205-
- **Manual action still needed**: NuGet.org account setup (NUGET_API_KEY secret, package ID
206-
reservation) before NuGet publish job can be triggered
204+
- `NUGET_API_KEY` GitHub Actions secret configured; NuGet publishing pipeline ready
207205

208206
## Next Milestone
209207

0 commit comments

Comments
 (0)