Skip to content

Drop .NET 9, centralize .NET 10 package versions, add Dependabot#767

Merged
jfversluis merged 5 commits into
mainfrom
migration/drop-net9-centralize-net10
May 12, 2026
Merged

Drop .NET 9, centralize .NET 10 package versions, add Dependabot#767
jfversluis merged 5 commits into
mainfrom
migration/drop-net9-centralize-net10

Conversation

@jfversluis

Copy link
Copy Markdown
Member

Summary

This PR drops .NET 9 support (end of support), centralizes NuGet package version management for .NET 10 samples, and adds Dependabot for automated version updates.

Changes

Infrastructure

  • 10.0/Directory.Build.props - Centralized MauiVersion (10.0.60) and DotNetVersion (10.0.7) properties
  • .github/dependabot.yml - Grouped NuGet updates for 10.0/ and 11.0/ (single PR per group)
  • CI workflows - Removed 9.0.x SDK installation from both build-pr.yml and build-all.yml
  • eng/excluded_projects_*.txt - Cleaned up 9.0 exclusion entries

Package Version Centralization (112 csproj files)

All .csproj files under 10.0/ now use:

  • $(MauiVersion) for Microsoft.Maui.Controls, Microsoft.Maui.Controls.Compatibility, Microsoft.Maui.Controls.Maps, Microsoft.AspNetCore.Components.WebView.Maui, Microsoft.Maui.Core
  • $(DotNetVersion) for Microsoft.Extensions.Logging.Debug, Microsoft.Extensions.Http, Microsoft.Extensions.Http.Resilience, Microsoft.Extensions.ServiceDiscovery

.NET 9 Deprecation

  • Removed all 9.0/ content (~6,200 files)
  • Added 9.0/README.md with deprecation notice and upgrade guide link

Documentation

  • 10.0/PACKAGE-VERSIONS.md - Explains the centralized versioning pattern and tells users to use explicit versions in their own projects
  • 11.0/README.md - Documents sdk.paths for safe preview SDK testing
  • Root README.md - Added repository structure table and package versions section
  • .github/copilot-instructions.md - Updated with versioning conventions and migration patterns

How Dependabot Works

With the centralized Directory.Build.props, Dependabot will:

  1. Detect new versions of Microsoft.Maui.* and Microsoft.Extensions.* packages
  2. Create a single grouped PR updating the props file (not one PR per project)
  3. CI builds all 112 projects against the new versions automatically

Migration Pattern for Future Versions

When .NET 12 ships:

  1. 10.0/ becomes the archive (or gets deprecated like 9.0)
  2. 11.0/ gets promoted to the full sample set
  3. 12.0/ gets only net-new feature samples
  4. Dependabot handles version bumps automatically

- Remove all 9.0/ content, replace with deprecation README
- Create 10.0/Directory.Build.props with centralized MauiVersion (10.0.60) and DotNetVersion (10.0.7)
- Update 112 csproj files to use $(MauiVersion) and $(DotNetVersion) instead of hardcoded versions
- Create 10.0/PACKAGE-VERSIONS.md documenting the centralized versioning pattern
- Add .github/dependabot.yml with grouped NuGet updates for 10.0/ and 11.0/
- Remove 9.0.x SDK from CI workflows (build-pr.yml, build-all.yml)
- Clean up eng/excluded_projects_*.txt to remove 9.0 paths
- Create 11.0/README.md with sdk.paths documentation for safe preview testing
- Update root README.md with repository structure table
- Update .github/copilot-instructions.md with versioning conventions and migration patterns

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jfversluis jfversluis force-pushed the migration/drop-net9-centralize-net10 branch from 614f3ea to ae15133 Compare May 8, 2026 11:26
jfversluis and others added 4 commits May 8, 2026 16:39
- Suppress CA2252 in Directory.Build.props (MAUI source gen uses preview API)
- Update SpinPaint from net9.0 to net10.0 TFMs
- Fix BrowserStack MauiApp SupportedOSPlatformVersion (13.1 -> 15.0)
- Exclude PlatformIntegrationDemo from macOS CI (requires iOS signing)
- Exclude BillingService/PickerDemo from Windows CI (Syncfusion no net10.0 assets)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ChatClient, ChatClientWithTools, and DeveloperBalance also reference
Syncfusion.Maui.Toolkit which lacks net10.0 Windows native assets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Create .github/agents/version-migration.agent.md with full migration
  playbook, known issues, and validation checklist
- Expand copilot-instructions.md with detailed migration phases, CI
  gotchas, and exclusion management patterns
- All guidance is version-agnostic for future reuse

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Update WeatherTwentyOne DevOps pipelines (AzDO + GitHub Actions)
  from 6.0/9.0 paths and net7.0/net9.0 TFMs to 10.0 and net10.0
- Update .github/workflows/instructions/copilot-instructions.md to
  reflect current folder structure (remove 8.0/9.0 references)
- Update eng/excluded_projects_*.txt comment examples
- Add 'Scan for stale version references' as a migration phase in
  both copilot-instructions.md and version-migration.agent.md
- Add to validation checklist in migration agent

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jfversluis jfversluis merged commit 0180c4d into main May 12, 2026
3 checks passed
@jfversluis jfversluis deleted the migration/drop-net9-centralize-net10 branch May 12, 2026 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant