Skip to content

Add outdated dependency check workflow#572

Open
Sahithbasani wants to merge 1 commit into
CommunityToolkit:mainfrom
Sahithbasani:feature/check-outdated-libraries
Open

Add outdated dependency check workflow#572
Sahithbasani wants to merge 1 commit into
CommunityToolkit:mainfrom
Sahithbasani:feature/check-outdated-libraries

Conversation

@Sahithbasani

Copy link
Copy Markdown
Contributor

Summary

Adds a check-outdated GitHub Actions workflow that runs dotnet-outdated across the main library, template, and sample solutions.

The workflow reports outdated packages in the CI job summary and creates or updates tracking issues for outdated package/version combinations, including the affected solutions/projects in the issue body.

Validation

  • PowerShell syntax check passed for .github/scripts/check-outdated.ps1
  • Ran template-only dry run with -DryRun -Groups Template
  • Confirmed dry run writes the summary and issue body files without creating or editing GitHub issues

Fixes #568

@Sahithbasani

Copy link
Copy Markdown
Contributor Author

Hi @adrianhall, I’ve opened PR #572 for this issue.

It adds the check-outdated workflow to scan the main library, template, and sample solutions with dotnet-outdated, writes the results to the CI summary, and creates/updates tracking issues for outdated packages.

All checks are passing. Could you please review when you get a chance? If the approach looks good, please feel free to merge.

@adrianhall adrianhall self-assigned this Jul 20, 2026
@adrianhall

Copy link
Copy Markdown
Collaborator

Three potential issues:

  1. High: Failed scans are treated as successful empty results .github/scripts/check-outdated.ps1:139-157, 270-278 only warns when dotnet-outdated fails. The summary can incorrectly report “No outdated libraries.” This is likely because every sample runs on Ubuntu without the Android/iOS/Windows workloads required by several solutions.

  2. High: Issue matching can overwrite another package’s issue
    .github/scripts/check-outdated.ps1:213-215 uses -like "Update $packageName*". For example, Microsoft.EntityFrameworkCore can match an issue for Microsoft.EntityFrameworkCore.SqlServer, replacing its title and body.

  3. High: A package can produce multiple conflicting issues
    .github/scripts/check-outdated.ps1:289 groups by both package and latest version. If different projects resolve different compatible latest versions, the script can create multiple issues for one library, contrary to CI: Create a job that checks for outdated libraries #568, or repeatedly edit one issue with an order-dependent final version.

  4. Medium: GitHub CLI failures may leave the workflow green
    .github/scripts/check-outdated.ps1:232,236,284-287 does not check gh exit codes. Failed issue listing can cause duplicates; failed create/edit operations may go unnoticed.

  5. Medium: Concurrent runs can create duplicate issues
    .github/workflows/check-outdated.yml has no concurrency control. Two runs can both take the same initial issue snapshot and create duplicate issues. This is likely, for instance, if I am running with workflow-dispatch while a cron system is running.

  6. Medium: Existing issue lookup is incomplete
    .github/scripts/check-outdated.ps1:286 checks only the first 200 open issues. A matching issue outside that set would be duplicated. Admittedly, low risk right now, but an increase in issue count will silently duplicate.

A couple of other issues around CI validation and secure supply chain, but easily remedied. These issues need to be fixed before merge.

@adrianhall adrianhall added the Blocked An issue that is blocked by an external depedency. label Jul 20, 2026
@Sahithbasani

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review. I’ll address the failure handling, exact issue matching, package-level grouping, GitHub CLI exit-code checks, concurrency protection, and complete issue lookup in this PR. I’ll push the updates to the existing branch and summarize the changes once ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Blocked An issue that is blocked by an external depedency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: Create a job that checks for outdated libraries

2 participants