You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The nanoFramework.NET.Sdk repository has no CI/CD. Unlike the other org repositories (for example nf-Visual-Studio-extension and Samples, which carry an azure-pipelines.yml and GitHub Actions workflows), it has no Azure Pipelines definition, no GitHub Actions workflow, and no nfbot wiring. It does have version.json (Nerdbank.GitVersioning), but nothing consumes it.
This has two consequences on the critical path. First, the SDK repository's pull requests are not validated automatically: the SDK build, the SmokeTest, and the migration/tool test suites (over a hundred tests) do not run on push or PR. Second, the planned "publish the SDK to nuget.org" step has no automation behind it — there is no pipeline to pack and push the nanoFramework.NET.Sdk package (nor the nanoFramework.Tool / nanoFramework.Migrate tools), and nfbot versioning/changelog-on-merge cannot run without the pipeline.
How to solve the problem
Stand up CI/CD for the repository, modeled on the existing org repositories:
Continuous integration that restores, builds the SDK (src/nanoFramework.NET.Sdk) and the tools, and runs the test suites (NanoMigrate.Tests, the umbrella tool tests) and the SmokeTest, on pull requests and on pushes to move-to-sdk / the release branch.
Packaging that produces the nanoFramework.NET.Sdk NuGet package (and optionally the nanoFramework.Tool and nanoFramework.Migrate tool packages), versioned via the existing version.json (Nerdbank.GitVersioning).
A gated publish step to nuget.org on release, with nfbot handling versioning/changelog on squash-merge per the org convention.
A GitHub Actions build/test workflow is a reasonable first step because it runs immediately on the fork and gives PR validation without org infrastructure; the Azure Pipelines definition is the org-standard publish path.
Acceptance: pull requests run a build + full test pass automatically; a merge to the release branch produces the SDK NuGet package; the gated publish step pushes it to nuget.org; nfbot versions/changelogs on merge.
Describe alternatives you've considered
Continue building and publishing manually. Rejected: the PRs go unvalidated and the "publish the SDK" gate (which the whole rollout depends on) has no repeatable path; manual publishing is error-prone and diverges from every other org repo.
GitHub Actions only. A good immediate PR-validation gate, but the org standard for publishing/signing/nfbot is Azure Pipelines; both can coexist (Actions for PR validation, Azure for publish).
Additional context
The pieces that need org infrastructure — nfbot service connections, signing certificates, the nuget.org push token, and the org's pipeline templates — are maintainer-owned; the pipeline can be scaffolded with those left as clearly marked setup steps.
Description
The
nanoFramework.NET.Sdkrepository has no CI/CD. Unlike the other org repositories (for examplenf-Visual-Studio-extensionandSamples, which carry anazure-pipelines.ymland GitHub Actions workflows), it has no Azure Pipelines definition, no GitHub Actions workflow, and nonfbotwiring. It does haveversion.json(Nerdbank.GitVersioning), but nothing consumes it.This has two consequences on the critical path. First, the SDK repository's pull requests are not validated automatically: the SDK build, the SmokeTest, and the migration/tool test suites (over a hundred tests) do not run on push or PR. Second, the planned "publish the SDK to nuget.org" step has no automation behind it — there is no pipeline to pack and push the
nanoFramework.NET.Sdkpackage (nor thenanoFramework.Tool/nanoFramework.Migratetools), andnfbotversioning/changelog-on-merge cannot run without the pipeline.How to solve the problem
Stand up CI/CD for the repository, modeled on the existing org repositories:
src/nanoFramework.NET.Sdk) and the tools, and runs the test suites (NanoMigrate.Tests, the umbrella tool tests) and the SmokeTest, on pull requests and on pushes tomove-to-sdk/ the release branch.nanoFramework.NET.SdkNuGet package (and optionally thenanoFramework.ToolandnanoFramework.Migratetool packages), versioned via the existingversion.json(Nerdbank.GitVersioning).nfbothandling versioning/changelog on squash-merge per the org convention.Acceptance: pull requests run a build + full test pass automatically; a merge to the release branch produces the SDK NuGet package; the gated publish step pushes it to nuget.org;
nfbotversions/changelogs on merge.Describe alternatives you've considered
nfbotis Azure Pipelines; both can coexist (Actions for PR validation, Azure for publish).Additional context
nfbotservice connections, signing certificates, the nuget.org push token, and the org's pipeline templates — are maintainer-owned; the pipeline can be scaffolded with those left as clearly marked setup steps.nanoFramework.NET.Sdkrepo. Phase 1; unblocks the "publish the SDK" gate that Samples and the fleet depend on.