dennisdoomen / dennisdoomen/dotnet-library-starter-kit

[Feature]: Smoke-test the packed package on every supported target framework

Open
#124 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
77
Forks
5
PR merge metrics
No merged PRs in 30d

Description

### Background and motivation

Issue #44 added a build step that installs the locally produced package and checks for errors, which catches gross packaging failures. It does not catch the more common and more embarrassing problem: the package works on one target framework and is broken on another.

That failure mode is very real for these templates. The library multi-targets `netstandard2.0`, `netstandard2.1`, `net47` and `net10.0`, and the source-only variant ships per-framework `contentFiles` folders that are currently out of step with the project's target frameworks (see the related bug report). A consumer on the wrong framework gets missing files or a missing assembly, and no existing check would notice.

Proposal: extend the smoke test into a small consumer project that references the packed `.nupkg` from a local feed and builds against *every* supported target framework, asserting that a type from the library can be used.

### Alternative Concerns

* Building a consumer for all four target frameworks adds time to the build, though far less than the test suite does.
* `net47` cannot be built on a Linux agent, so either the smoke test stays on Windows or it skips that framework there and the limitation is documented.
* This partly overlaps with the compatible-framework side of package validation, but package validation compares API surfaces, whereas this proves that a real restore-and-build actually succeeds.

### Could you help with a pull-request?

No

Contributor guide

Open the contributing guide

Research direction

Locate the build step added by issue #44 and inspect how the packed .nupkg is consumed. Use a small consumer project and local feed against netstandard2.0, netstandard2.1, net47, and net10.0; verify that a library type builds, and document or condition the net47 limitation on Linux.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system, ci-cd, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.