Skip to content

Commit f42e7f9

Browse files
committed
moar updates
1 parent d76e678 commit f42e7f9

File tree

4 files changed

+192
-166
lines changed

4 files changed

+192
-166
lines changed
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
title: GitHub Copilot app modernization update example
3+
description: "some desc"
4+
titleSuffix: ""
5+
author: adegeo
6+
ms.author: adegeo
7+
ms.topic: concept-article
8+
ms.date: 09/04/2025
9+
10+
#customer intent: As a developer, I want to upgrade my project so that I can take advantage of the latest features.
11+
12+
---
13+
14+
# GitHub Copilot app modernization update example
15+
16+
BLAH
17+
18+
## Start the upgrade process
19+
20+
The first step to upgrading is generating a plan by interacting with GitHub Copilot. There are two ways to get Copilot to use the tool:
21+
22+
- Right-click on the solution or project and select **Modernize**.
23+
24+
..TODO: IMAGE..
25+
26+
—or—
27+
28+
- Open the **GitHub Copilot Chat** window and ask the `@Modernize` agent to upgrade.
29+
30+
## Generate a plan
31+
32+
Once the process starts, Copilot analyzes your projects and their dependencies, and then asks you a series of questions about the upgrade. After you answer these questions, an upgrade plan is written in the form of a Markdown file. If you tell Copilot to proceed with the upgrade, this plan describes the steps of the upgrade process.
33+
34+
You can adjust the plan by editing the Markdown file to change the upgrade steps or add more context.
35+
36+
> [!CAUTION]
37+
> The plan is generated based on the inter-dependencies of your projects. The upgrade won't succeed if you modify the plan in such a way that the migration path can't complete. For example, if **Project A** depends on **Project B** and you remove **Project B** from the upgrade plan, upgrading **Project A** might fail.
38+
39+
The following snippet demonstrates the structure of a plan:
40+
41+
```md
42+
# .NET 10.0 Upgrade Plan
43+
44+
## Execution Steps
45+
46+
1. Validate that an .NET 10.0 SDK required for this upgrade is installed on the machine and if not, help to get it installed.
47+
2. Ensure that the SDK version specified in global.json files is compatible with the .NET 10.0 upgrade.
48+
3. Upgrade projects to .NET 10.0.
49+
- 3.1. Upgrade RazorMovie.csproj
50+
- 3.2. Upgrade RazorMovie.Tests.csproj
51+
4. Run unit tests to validate upgrade in the projects listed below:
52+
- RazorMovie.Tests.csproj
53+
54+
## Settings
55+
56+
This section contains settings and data used by execution steps.
57+
58+
### Aggregate NuGet packages modifications across all projects
59+
60+
NuGet packages used across all selected projects or their dependencies that need version update in projects that reference them.
61+
62+
| Package Name | Current Version | New Version | Description |
63+
|:-------------------------------------------------|:-------------------:|:-----------:|:-------------------------|
64+
| HtmlSanitizer | 7.1.542 | 9.0.884 | Security vulnerability |
65+
| Microsoft.Data.SqlClient | 4.0.5 | 6.0.2 | Deprecated |
66+
| Microsoft.EntityFrameworkCore.Design | 6.0.0-rtm.21467.1 | 9.0.5 | Recommended for .NET 10.0 |
67+
| Microsoft.EntityFrameworkCore.SqlServer | 6.0.0-rc.1.21452.10 | 9.0.5 | Recommended for .NET 10.0 |
68+
| Microsoft.EntityFrameworkCore.Tools | 6.0.0-rc.1.21452.10 | 9.0.5 | Recommended for .NET 10.0 |
69+
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1 | 9.0.0 | Recommended for .NET 10.0 |
70+
71+
...
72+
```
73+
74+
## Perform the upgrade
75+
76+
Once an upgrade plan is ready, tell Copilot to start the upgrade. Once the upgrade process starts, Copilot lets you know what it's doing in the chat window and it opens the **Upgrade Progress Details** document, which lists the status of every step. If it runs into a problem, Copilot pauses and asks for your direction or help in fixing these problems.
77+
78+
The tool differs in experience based on whether or not Copilot _agent mode_ is enabled.
79+
80+
- **Copilot agent mode**
81+
82+
When Copilot agent mode is enabled and used, Copilot tries to identify the cause of a problem and apply a fix. If Copilot can't seem to correct the problem, it asks for your help. When you intervene, Copilot learns from the changes you make and tries to automatically apply them for you, if the problem is encountered again.
83+
84+
- **Copilot fix mode**
85+
86+
Copilot fix mode is used if agent mode is disabled or not used. Copilot reports the problems it finds and guides you through the fixes required. It relies on you to perform the actual code changes and then it verifies those fixes.
87+
88+
Each major step in the upgrade process is committed to the local Git repository.
89+
90+
## Upgrade results
91+
92+
When the upgrade completes, a report is generated that describes every step of the upgrade. The tool creates a Git commit for every portion of the upgrade process, so you can easily roll back the changes or get detailed information about what changed. The report contains the Git commit hashes.
93+
94+
The report also provides a _Next steps_ section that describes the steps you should take after the upgrade finishes. The following example shows the report of a completed upgrade that contained a test failure:
95+
96+
```md
97+
# .NET 10 Upgrade Report
98+
99+
## Project modifications
100+
101+
| Project name | Old Target Framework | New Target Framework | Commits |
102+
|:-----------------------------------------------|:-----------------------:|:----------------------------:|---------------------------|
103+
| RazorMovie | net6.0 | net9.0 | af8cf633, aa61a18d |
104+
| MvcMovie | net6.0 | net9.0 | cc8c9015 |
105+
| WpfMovie | net6.0-windows | net9.0-windows | 9c4b13f9 |
106+
| RazorMovie.Tests | net6.0 | net9.0 | b8d85e97 |
107+
| MvcMovie.Tests | net6.0 | net9.0 | b8d85e97 |
108+
| WpfMovie.Tests | net6.0-windows | net9.0-windows7.0 | b8d85e97 |
109+
110+
## NuGet Packages
111+
112+
| Package Name | Old Version | New Version | Commit Id |
113+
|:-------------------------------------------------|:-------------------:|:-----------:|-----------|
114+
| HtmlSanitizer | 7.1.542 | 9.0.884 | af8cf633 |
115+
| Microsoft.Data.SqlClient | 4.0.5 | 6.0.2 | bf8deeac |
116+
| Microsoft.EntityFrameworkCore.Design | 6.0.0-rtm.21467.1 | 9.0.5 | bf8deeac |
117+
| Microsoft.EntityFrameworkCore.SqlServer | 6.0.0-rc.1.21452.10 | 9.0.5 | bf8deeac |
118+
| Microsoft.EntityFrameworkCore.Tools | 6.0.0-rc.1.21452.10 | 9.0.5 | bf8deeac |
119+
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1 | 9.0.0 | bf8deeac |
120+
121+
## All commits
122+
123+
| Commit ID | Description |
124+
|:----------|:--------------------------------------------------------|
125+
| af8cf633 | Update HtmlSanitizer package in RazorMovie.csproj |
126+
| aa61a18d | Upgrade target framework in RazorMovie.csproj |
127+
| cc8c9015 | Upgrade to .NET 9 and update dependencies |
128+
| bf8deeac | Update package references in MvcMovie.csproj |
129+
| 9c4b13f9 | Update WpfMovie.csproj to target .NET 10.0 |
130+
| b8d85e97 | Update test projects to .NET 9 and enhance dependencies |
131+
132+
## Test Results
133+
134+
| Project Name | Passed | Failed | Skipped |
135+
|:-----------------------|:------:|:------:|:-------:|
136+
| RazorMovie.Tests | 0 | 0 | 0 |
137+
| MvcMovie.Tests | 2 | 0 | 0 |
138+
| WpfMovie.Tests | 6 | 1 | 0 |
139+
140+
## Next steps
141+
142+
- Review the test results and address the single failing test in `WpfMovie.Tests`.
143+
- Ensure all updated NuGet packages are compatible with your application.
144+
- Leverage new features and improvements in .NET 10.0 for your projects.
145+
```
146+
147+
## Related content
148+
149+
- [What is GitHub Copilot app modernization](github-copilot-app-modernization-overview.md)
150+
- [GitHub Copilot app modernization FAQ](github-copilot-app-modernization-faq.yml)
151+
- [Migrate to Azure with GitHub Copilot app modernization](/dotnet/azure/migration/appmod/overview)

docs/core/porting/github-copilot-app-modernization-faq.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ metadata:
88
ms.topic: faq
99
ms.date: 09/04/2025
1010

11-
title: GitHub Copilot app modernization - upgrade for .NET FAQ
11+
title: GitHub Copilot app modernization FAQ
1212
summary: |
13-
GitHub Copilot app modernization - upgrade for .NET is an interactive GitHub Copilot extension that adds powerful upgrade capabilities to Visual Studio. This article answers frequently asked questions. For more information about the tool, see [What is GitHub Copilot app modernization - upgrade for .NET?](github-copilot-app-modernization-overview.md).
13+
GitHub Copilot app modernization is an interactive GitHub Copilot agent that adds powerful upgrade capabilities to Visual Studio. This article answers frequently asked questions. For more information about the tool, see [What is GitHub Copilot app modernization?](github-copilot-app-modernization-overview.md).
1414
1515
The tool requires one of the following GitHub Copilot subscriptions:
1616
@@ -22,9 +22,9 @@ summary: |
2222
sections:
2323
- name: Scenarios
2424
questions:
25-
- question: What can the tool do?
25+
- question: What can the agent do?
2626
answer: |
27-
Currently, GitHub Copilot app modernization - upgrade for .NET helps you upgrade your .NET projects to newer versions of .NET. The tool is an extension for Visual Studio that performs the following steps in a GitHub Copilot chat session:
27+
Currently, GitHub Copilot app modernization helps you upgrade your .NET projects to newer versions of .NET. The agent is an extension for Visual Studio that performs the following steps in a GitHub Copilot chat session:
2828
2929
- Analyzes your projects and proposes an upgrade plan.
3030
- According to the plan, runs a series of tasks to upgrade your projects.
@@ -33,11 +33,11 @@ sections:
3333
- Reports progress and allow access to code changes & logs.
3434
- Learns from the interactive experience with you (within the context of the session) to improve subsequent transformations.
3535
36-
- question: What can the tool upgrade?
36+
- question: What can the agent upgrade?
3737
answer: |
38-
GitHub Copilot app modernization - upgrade for .NET currently focuses on migrating your projects from one version of .NET to another. For example, upgrading from .NET Core 3.1 or .NET 6, to .NET 9. It also upgrades dependencies and fixes errors in the code post-migration.
38+
GitHub Copilot app modernization currently focuses on migrating your projects from one version of .NET to another. For example, upgrading from .NET Core 3.1 or .NET 6, to .NET 9. It also upgrades dependencies and fixes errors in the code post-migration.
3939
40-
Besides upgrading the target framework, the tool can work with the following types of projects:
40+
Besides upgrading the target framework, the agent can work with the following types of projects:
4141
4242
- Azure Functions.
4343
- Console apps and class libraries.
@@ -59,17 +59,17 @@ sections:
5959
6060
- question: What data is collected?
6161
answer: |
62-
The tool only collects telemetry information about project types, intent to upgrade, and upgrade duration. The data is aggregated through Visual Studio itself and doesn't contain any user-identifiable information. For more information about Microsoft's privacy policy, see [Visual Studio Customer Experience Improvement Program](/visualstudio/ide/visual-studio-experience-improvement-program?view=vs-2022).
62+
The agent only collects telemetry information about project types, intent to upgrade, and upgrade duration. The data is aggregated through Visual Studio itself and doesn't contain any user-identifiable information. For more information about Microsoft's privacy policy, see [Visual Studio Customer Experience Improvement Program](/visualstudio/ide/visual-studio-experience-improvement-program?view=vs-2022).
6363
6464
- question: Can I disable telemetry?
6565
answer: |
6666
Yes, you can disable telemetry. In Visual Studio, select **Help** > **Privacy** > **Privacy Settings** > **"No, I would not like to participate."**
6767
6868
- question: Can I train the model based on my code base?
6969
answer: |
70-
No. Unlike traditional AI tools where you might enter freeform prompts, the tool operates in a more structured way. The AI is embedded within the build-and-fix process, meaning the prompts it uses are predefined and tied to the upgrade plan. So it's not something you can train on your codebase, and it's not something you can manually steer with custom instructions, beyond the changes you can make to the plan Markdown file.
70+
No. Unlike traditional AI tools where you might enter freeform prompts, the agent operates in a more structured way. The AI is embedded within the build-and-fix process, meaning the prompts it uses are predefined and tied to the upgrade plan. So it's not something you can train on your codebase, and it's not something you can manually steer with custom instructions, beyond the changes you can make to the plan Markdown file.
7171
72-
However, the tool does have some adaptability within a session. If you manually adjust a fix, it learns from that interaction in the short term and applies similar corrections if it encounters the same issue again. Think of it as refining its approach within the scope of that upgrade. We never store a user's codebase and never use your code for training the model. Once an upgrade is complete, session data is deleted and not stored.
72+
However, the agent does have some adaptability within a session. If you manually adjust a fix, it learns from that interaction in the short term and applies similar corrections if it encounters the same issue again. Think of it as refining its approach within the scope of that upgrade. We never store a user's codebase and never use your code for training the model. Once an upgrade is complete, session data is deleted and not stored.
7373
7474
additionalContent: |
7575
## Related content

0 commit comments

Comments
 (0)