Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 4, 2025

Fixes #36376

Description

The Kestrel overview page previously showed enhanced feature listing only for .NET 10. This PR extends that feature list to .NET 8 and later, while moving memory pool content to a dedicated article as requested by the maintainer.

Changes

  • New article: Created memory-management.md under Kestrel section (moniker: >= aspnetcore-10.0)

    • Covers automatic memory pool eviction (new in .NET 10)
    • Documents IMemoryPoolFactory usage and custom implementations
    • No include file references (clean standalone article)
  • Kestrel overview (kestrel.md): Contains only >= aspnetcore-10.0 content

    • Enhanced features list with memory management link
    • Get started and Additional resources sections
    • Uses not-latest-version-without-not-supported-content.md include
  • Kestrel 6.x include (kestrel6.md): Split moniker ranges to provide version-appropriate content

    • >= aspnetcore-8.0 <= aspnetcore-9.0: Enhanced features list (without memory management)
    • >= aspnetcore-6.0 < aspnetcore-8.0: Original scenarios list
    • Ensures no overlap with main file moniker ranges
  • Removed sections:

    • "Optional client certificates" from main overview and kestrel6.md include
    • Inline memory eviction content (now in dedicated article)
    • not-latest-version include reference from memory-management.md
  • TOC: Added memory management article after Diagnostics

Moniker Strategy

The corrected moniker strategy uses the include file pattern to avoid overlapping ranges:

  • kestrel.md: Only >= aspnetcore-10.0 (no overlap with include file)
  • kestrel6.md include:
    • >= aspnetcore-8.0 <= aspnetcore-9.0 with enhanced features
    • >= aspnetcore-6.0 < aspnetcore-8.0 with original content
    • Earlier versions handled in subsequent ranges

This approach eliminates duplicate H2 headers and build warnings while ensuring:

  • .NET 6-7: Shows original scenarios list
  • .NET 8-9: Shows enhanced feature list without memory management
  • .NET 10+: Shows enhanced feature list including memory management with link to new article

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Internal previews

📄 File 🔗 Preview link
aspnetcore/fundamentals/servers/kestrel.md aspnetcore/fundamentals/servers/kestrel
aspnetcore/fundamentals/servers/kestrel/memory-management.md aspnetcore/fundamentals/servers/kestrel/memory-management
aspnetcore/toc.yml aspnetcore/toc

Copilot AI and others added 3 commits December 4, 2025 23:23
Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copilot AI changed the title [WIP] Update Kestrel overview content for .NET 8 and later Show Kestrel overview feature list for .NET 8+ and move memory management to dedicated article Dec 4, 2025
Copilot AI requested a review from tdykstra December 4, 2025 23:31
Copilot finished work on behalf of tdykstra December 4, 2025 23:31
@tdykstra tdykstra marked this pull request as ready for review December 5, 2025 18:46
@tdykstra tdykstra requested a review from wadepickett December 5, 2025 18:51
@wadepickett
Copy link
Contributor

wadepickett commented Dec 5, 2025

@tdykstra, looks like we hav an learning opporrtunity here for copilot. A moniker mishap, see build warning. Otherwise the PR looks great. Once figured out we can add the solution to the copilot instructions. Copilot did lay out its moniker strategy above in the description and so it was following our repo level instruction set so that is good at least.

Copy link
Contributor

@wadepickett wadepickett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moniker issues, see build warnings. Dupe H2's etc as a result.

@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot Copilot manipulated monitor tags. The result worked correctly according to what was written in the issue, but the build reported errors in the way the moniker tags were used. Can you correct the moniker tag errors while still producing the effect the issue called for?

Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot Copilot manipulated monitor tags. The result worked correctly according to what was written in the issue, but the build reported errors in the way the moniker tags were used. Can you correct ...

Fixed in commit 73e5f4d. The issue was duplicating entire sections within separate moniker ranges. Changed to use a single >= aspnetcore-8.0 range for common content, with a nested >= aspnetcore-10.0 range only for the memory management bullet point that differs.

Copilot AI requested a review from tdykstra December 6, 2025 00:10
Copilot finished work on behalf of tdykstra December 6, 2025 00:10
@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot The build is still reporting warnings with the revised moniker tag strategy. Can you please take another look?

Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot The build is still reporting warnings with the revised moniker tag strategy. Can you please take another look?

Fixed in commit c0dbc36. The issue was that my >= aspnetcore-8.0 range in kestrel.md overlapped with the >= aspnetcore-6.0 <= aspnetcore-9.0 range in the kestrel6.md include file, causing duplicate headers for versions 8-9.

The solution: kestrel.md now only has >= aspnetcore-10.0 content, and I split the kestrel6.md range into two:

  • >= aspnetcore-8.0 <= aspnetcore-9.0 with enhanced features list
  • >= aspnetcore-6.0 < aspnetcore-8.0 with original scenarios list

This eliminates all overlaps while achieving the goal of showing enhanced features for .NET 8+.

Copilot finished work on behalf of tdykstra December 6, 2025 00:39
@wadepickett
Copy link
Contributor

@tdykstra, build warnings with this include involved, but it is not claer to me what is going on:

[!INCLUDE]

@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot The build is still reporting warnings. To fix them, please delete the reference to the not-latest-version.md Include file and replace it with not-latest-version-without-not-supported-content.md

…t-supported-content

Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot The build is still reporting warnings. To fix them, please delete the reference to the not-latest-version.md Include file and replace it with` not-latest-version-without-not-supported-conte...

Fixed in commit e7539d2. Replaced the not-latest-version.md include reference with not-latest-version-without-not-supported-content.md in both kestrel.md and memory-management.md files.

Copilot finished work on behalf of tdykstra December 6, 2025 18:50
@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

Fixed in commit e7539d2. Replaced the not-latest-version.md include reference with not-latest-version-without-not-supported-content.md in both kestrel.md and memory-management.md files.

@copilot Please revert this change in the memory management file

Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

Fixed in commit e7539d2. Replaced the not-latest-version.md include reference with not-latest-version-without-not-supp...

Reverted in commit 3717c27. The memory-management.md file now uses not-latest-version.md while kestrel.md continues to use not-latest-version-without-not-supported-content.md.

Copilot finished work on behalf of tdykstra December 6, 2025 19:22
@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot Please delete the reference to the include file not-latest-version in the memory -management file

Co-authored-by: tdykstra <1569635+tdykstra@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot Please delete the reference to the include file not-latest-version in the memory -management file

Deleted in commit 462b650. The not-latest-version include reference has been completely removed from memory-management.md.

Copilot finished work on behalf of tdykstra December 6, 2025 19:50
@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot @cdopilot I would like that change that we just made go into the same pull request that we have been working with but I don't see it showing up there.

Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot @cdopilot I would like that change that we just made go into the same pull request that we have been working with but I don't see it showing up there.

The change is already in the PR. Commit 462b650 was successfully pushed to the copilot/update-kestrel-overview-content branch. You can see it in the commit history - it's the most recent commit that removed the not-latest-version include reference from memory-management.md.

Copilot finished work on behalf of tdykstra December 6, 2025 20:00
@tdykstra
Copy link
Contributor

tdykstra commented Dec 6, 2025

@copilot With each of the previous commits I saw a build automatically show up in the PR output -- I don't see a build this time.

Copy link
Contributor Author

Copilot AI commented Dec 6, 2025

@copilot With each of the previous commits I saw a build automatically show up in the PR output -- I don't see a build this time.

The commit 462b650 has been successfully pushed to the remote branch. CI/build triggers are managed by GitHub Actions and should start automatically. The build may be queued or processing - you can check the "Checks" tab in the PR or the "Actions" tab in the repository to see the build status. Sometimes there can be a delay before builds appear, especially if other workflows are running.

Copilot finished work on behalf of tdykstra December 6, 2025 20:22
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.

Show updated Kestrel overview content for .NET 8 and later

3 participants