V0.10.0/dotnet nuget update - #40
Open
gimlichael wants to merge 18 commits into
Open
Conversation
Introduce complete NuGet dependency audit and update workflow with support for central package management and project-level versioning. Handles TFM-aware updates, stable/prerelease intent tracking, major version approval batching, and offline-testable scenarios. Includes bundled scripts for audit, comparison, and structured file edits.
Add dotnet-nuget-update to the Available Skills catalog table with full skill description, include the npx installation command in the setup section, and add a 'Why dotnet-nuget-update?' community health section explaining the need for complete dependency graph auditing, TFM-band awareness, and preservation of intentional pins and compatibility markers.
|
Enhance file encoding detection to support UTF-32 and UTF-16 variants. Improve line-ending preservation with better handling of mixed styles. Refactor XML and NuGet version parsing with more sophisticated patterns and error handling. Strengthen cross-line tag parsing and version validation for edge cases in package updates and audit workflows.
Improve central vs project package declaration routing to correctly handle updates targeting project files. Enhance conflict reporting to enumerate all conflicting sources when unspecified. Fix property resolution precedence to preserve first-matched declarations instead of overwriting with later files.
The Get-TargetFrameworks.ps1 static scanner resolves property declarations through Directory.Build.props/targets and recursive imports, but it does not evaluate MSBuild conditions or SDK-supplied properties. The documentation now clarifies this scope so users understand when to verify results with project-specific MSBuild evaluation.
Restructured the property-map walker to handle import chains and property-token resolution recursively. The scanner now traverses Directory.Build.props and .targets files in the correct order, resolves property references within each scope, and preserves unresolved tokens for later discovery. This fixes edge cases where projects in different directories share property names or where scoped .props files define properties that should not leak across project boundaries.
Added eval case #8 to verify that the framework scanner correctly handles projects in different directories with their own Directory.Build.props scope. The test fixture includes three projects with scoped properties to ensure the scanner does not borrow framework versions from sibling projects or resolve properties from unimported files. This eval validates the scoped-property fix in Get-TargetFrameworks.
Added test-target-frameworks.ps1 as a standalone validation harness for Get-TargetFrameworks.ps1. The script builds complex fixture hierarchies with nested Directory.Build.props, property tokens, and conditional framework declarations, then verifies the scanner correctly resolves each project's target frameworks. This enables rapid validation during development without requiring full skill evals.
The commit grouping guidance in SKILL.md is now sufficiently detailed to warrant a dedicated reference document. This extracts the 'Repo-aligned grouping example' and 'Commit body guidance' sections into references/grouping-examples.md for clarity and easier maintenance, while improving the overall skill structure without changing its core workflow or validation logic.
Adds three new eval cases to git-visual-commits testing: untracked file discovery (eval 26), path handling with spaces and untracked directories (eval 27), and explicit scope narrowing excluding in-scope changes (eval 28). These tests validate the skill handles file inventory, mixed staged/unstaged/untracked changes, and scope boundaries correctly.
Finalize 0.10.0 release notes with the release date and add description of git-visual-commits refactoring and enhancements that complete this release.
Update repository agent guidelines (AGENTS.md) and installation documentation (README.md) to explicitly specify concurrent suite dispatch for agent-driven validation, bounded concurrency of at least two workers, per-suite exit codes, and the prohibition on sequential aggregate runs. Clarify that agents must use the suite matrix from GitHub Actions workflows as the source of truth, include user-instruction overrides for testing suspension, and report limitations instead of falling back to sequential execution.
Update test assertions in validate-skill-templates.ps1 to match the refined quality-gate guidance in git-visual-commits SKILL.md. The assertion now verifies that agents explicitly refresh the Step 1 inventory and explain each path's rationale, audience, and lifecycle before classification rather than only checking git status.
| $skill = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/SKILL.md' -GitRef $Ref | ||
| $evals = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/evals/evals.json' -GitRef $Ref | ||
| $commitLanguage = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/references/commit-language.md' -GitRef $Ref | ||
| $groupingExamples = Get-FileText -RepoRoot $repoRoot -RelativePath 'skills/git-visual-commits/references/grouping-examples.md' -GitRef $Ref |
There was a problem hiding this comment.
Historical Ref Validation Fails
When -Ref selects a committed tree from before grouping-examples.md was introduced, this unconditional lookup reports the reference file as missing. The Git visual commits validation block then fails instead of validating that historical tree.
Knowledge Base Used: Skill template validation automation
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/validate-skill-templates.ps1
Line: 2752
Comment:
**Historical Ref Validation Fails**
When `-Ref` selects a committed tree from before `grouping-examples.md` was introduced, this unconditional lookup reports the reference file as missing. The Git visual commits validation block then fails instead of validating that historical tree.
**Knowledge Base Used:** [Skill template validation automation](https://app.greptile.com/geekle/-/custom-context/knowledge-base/codebeltnet/agentic/-/docs/skill-template-validation-automation.md)
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces the new
dotnet-nuget-updateskill, a deterministic tool for auditing and updating NuGet dependencies in .NET repositories. It ensures every declared package version is accounted for before any update, supports both central and project-level package management, preserves compatibility markers, and offers both interactive and automated update modes. The update also adds comprehensive documentation, test coverage, and offline-testable scripts.New skill:
dotnet-nuget-updatedotnet-nuget-updateskill for complete NuGet dependency auditing and updating, supporting central and project-level versioning, TFM-band awareness, stable/prerelease intent inference, and two interactive modes (normal and yolo). [1] [2]README.mdwith catalog entry, installation instructions, and a detailed "Why dotnet-nuget-update?" section explaining its approach to dependency management. [1] [2] [3]Release and documentation updates
0.10.0release entry inCHANGELOG.mddescribing the new skill and its features.