Skip to content

fix(manifest): stop calling skipped .NET projects not restored - #1704

Merged
Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit into
v1.xfrom
jfblaa/dotnet-not-restored-message
Nov 6, 2026
Merged

Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit into
v1.xfrom
jfblaa/dotnet-not-restored-message

Conversation

@jfblaa

@jfblaa Jeppe Fredsgaard Blaabjerg (jfblaa) commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

LLM Description written by Claude Code:claude-opus-5-5

When dotnet restore fails in one .NET project, the facts tool reported the other projects whose restore output it cannot confirm as current with "dotnet restore did not restore this project in this run". That is often false. NuGet skips the project.nuget.cache of a project it finds up to date, so a project restored by an earlier run, for example the solution scanned just before by --dynamic-sbom-inference, looks the same as one restore never reached. The tool already treats both as unknown, which is safe. Only the wording claimed more than it knows.

The message now reads: "the failed dotnet restore may have skipped this project as up to date, or never reached it, so its dependencies are unknown". No behaviour change.

Verified:

  • Rebuilt the tool and reran a real case: a net6.0 sample referencing a net10.0-only project. NU1201 is still reported. The two referenced projects now show the new wording.
  • The .NET compat smoke test (smoke-test.sh, SDK 10.0.403) passed 3 of 4 runs. The failing run had no unrestored projects recorded. That is consistent with the existing 2 s mtime tolerance in RestoredByThisRun, when the stale-restore case starts within 2 s of the previous restore of the same fixture. It does not depend on this wording change.

🤖 Generated with Claude Code


Note

Low Risk
Copy and changelog only: logic and exit behavior are unchanged; low risk.

Overview
When dotnet restore fails, projects that still lack verifiable restore output are still recorded as unscannable (dependencies unknown), but the message no longer implies they were definitely "not restored this run". It now says a failed restore may have skipped the project as up to date, or never reached it—matching NuGet skipping unchanged project.nuget.cache work.

CHANGELOG.md documents this under [Unreleased] → Fixed.

The dotnet compat smoke test (assert-facts.py) only updates the substring it asserts against so it matches the new wording; no change to what is considered unrestored.

Reviewed by Cursor Bugbot for commit c646195. Configure here.

After a failed `dotnet restore`, a project whose restore output cannot be
shown current was reported as "did not restore this project in this run".
NuGet does not rewrite project.nuget.cache for a project it finds up to
date, so such a project may well have been restored. Say what is known:
restore may have skipped it as up to date, or never reached it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) merged commit bfdb5fb into v1.x Nov 6, 2026
18 checks passed
@jfblaa
Jeppe Fredsgaard Blaabjerg (jfblaa) deleted the jfblaa/dotnet-not-restored-message branch November 6, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants