Skip to content

Commit 7458f0b

Browse files
Copilotejsmithniemyjski
authored
Upgrade to .NET 10 and Aspire 13 (#2036)
* Initial plan * Upgrade to .NET 10 and Aspire 13 Co-authored-by: ejsmith <[email protected]> * Fix Aspire 13 breaking changes and build issues Co-authored-by: ejsmith <[email protected]> * Add upgrade notes documentation Co-authored-by: ejsmith <[email protected]> * Fix Kibana configuration, update VSCode paths, and remove upgrade notes Co-authored-by: niemyjski <[email protected]> * Fix Aspire SDK version and add TODO for Kibana lifecycle hook migration Co-authored-by: niemyjski <[email protected]> * PR Feedback * Updates package dependencies Updates various package dependencies across multiple projects. This includes updates to FluentValidation, Serilog.Sinks.Console, OpenTelemetry, Swashbuckle.AspNetCore.Newtonsoft, FluentRest.NewtonsoftJson, and Microsoft.NET.Test.Sdk. Also adds System.Net.Http and System.Text.RegularExpressions to resolve vulnerability warnings related to transitive dependencies. * WIP - Upgrade swashbuckle * Adds event serialization test Adds a test case to verify event serialization, including environment and request information, ensuring correct snake_case serialization of the JSON output. Also adds OpenAPI spec. * Fixed swagger gen issues and .NET 10 OpenAPi issues * Upgrades dependencies Updates project dependencies to the latest versions, including Aspire, FluentValidation, MaxMind.GeoIP2, Serilog, and OpenTelemetry, to leverage the newest features, improvements, and bug fixes. * Updates UI and testing configuration Refactors UI components by adjusting sizes and widths for better display. Changes the test runner entry point to use array syntax. * Fixed tests * Updated readme * Improves webhooks and stack management Adds webhook subscription and unsubscription endpoints. Enhances stack management by allowing marking stacks as fixed and adding links using JSON documents. Also includes minor fixes and improvements, such as using options objects directly in Startup.cs and correcting a parameter description in the ProjectController. * Fixed kibana it's now working again * fix package lock * Fixed build errors * Fixed linting --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: ejsmith <[email protected]> Co-authored-by: niemyjski <[email protected]> Co-authored-by: Blake Niemyjski <[email protected]>
1 parent e05167a commit 7458f0b

File tree

52 files changed

+9437
-1383
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+9437
-1383
lines changed

.github/workflows/build-arm64.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup .NET Core
2626
uses: actions/setup-dotnet@v5
2727
with:
28-
dotnet-version: 9.0.*
28+
dotnet-version: 10.0.*
2929
dotnet-quality: ga
3030
- name: Build Reason
3131
env:

.github/workflows/build.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Setup .NET Core
3939
uses: actions/setup-dotnet@v5
4040
with:
41-
dotnet-version: 9.0.*
41+
dotnet-version: 10.0.*
4242
dotnet-quality: ga
4343

4444
- name: Version
@@ -62,7 +62,7 @@ jobs:
6262
- name: Setup .NET Core
6363
uses: actions/setup-dotnet@v5
6464
with:
65-
dotnet-version: 9.0.*
65+
dotnet-version: 10.0.*
6666
dotnet-quality: ga
6767

6868
- name: Start Services

.github/workflows/copilot-setup-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup .NET Core
2626
uses: actions/setup-dotnet@v5
2727
with:
28-
dotnet-version: 9.0.*
28+
dotnet-version: 10.0.*
2929
dotnet-quality: ga
3030

3131
- name: Start Services

.github/workflows/elasticsearch-docker-7.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Setup .NET Core
1919
uses: actions/setup-dotnet@v5
2020
with:
21-
dotnet-version: 9.0.*
21+
dotnet-version: 10.0.*
2222
dotnet-quality: ga
2323
- name: Build Reason
2424
env:

.github/workflows/elasticsearch-docker-8.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Setup .NET Core
1919
uses: actions/setup-dotnet@v5
2020
with:
21-
dotnet-version: 9.0.*
21+
dotnet-version: 10.0.*
2222
dotnet-quality: ga
2323
- name: Build Reason
2424
env:

.vscode/extensions.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
"streetsidesoftware.code-spell-checker",
55
"tintoy.msbuild-project-tools",
66
"humao.rest-client",
7-
"ms-kubernetes-tools.vscode-kubernetes-tools",
87
"svelte.svelte-vscode",
98
"bradlc.vscode-tailwindcss",
109
"dbaeumer.vscode-eslint",
1110
"esbenp.prettier-vscode",
11+
"microsoft-aspire.aspire-vscode",
12+
"ms-kubernetes-tools.vscode-kubernetes-tools",
1213
"ms-playwright.playwright",
1314
"selemondev.vscode-shadcn-svelte",
1415
"vitest.explorer"

.vscode/launch.json

Lines changed: 107 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,109 @@
11
{
2-
"version": "0.2.0",
3-
"configurations": [
4-
{
5-
"name": "Aspire",
6-
"type": "coreclr",
7-
"request": "launch",
8-
"preLaunchTask": "build",
9-
"program": "${workspaceFolder}/src/Exceptionless.AppHost/bin/Debug/net9.0/Exceptionless.AppHost.dll",
10-
"args": [],
11-
"cwd": "${workspaceFolder}/src/Exceptionless.AppHost",
12-
"stopAtEntry": false,
13-
"serverReadyAction": {
14-
"action": "openExternally",
15-
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
16-
},
17-
"env": {
18-
"AppMode": "Development"
19-
}
20-
},
21-
{
22-
"name": "Web",
23-
"type": "coreclr",
24-
"request": "launch",
25-
"preLaunchTask": "build",
26-
"program": "${workspaceFolder}/src/Exceptionless.Web/bin/Debug/net9.0/Exceptionless.Web.dll",
27-
"args": [],
28-
"cwd": "${workspaceFolder}/src/Exceptionless.Web",
29-
"stopAtEntry": false,
30-
"serverReadyAction": {
31-
"action": "openExternally",
32-
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
33-
},
34-
"env": {
35-
"AppMode": "Development"
36-
}
37-
},
38-
{
39-
"name": "Job",
40-
"type": "coreclr",
41-
"request": "launch",
42-
"preLaunchTask": "build",
43-
"program": "${workspaceFolder}/src/Exceptionless.Job/bin/Debug/net9.0/Exceptionless.Job.dll",
44-
"args": [],
45-
"cwd": "${workspaceFolder}",
46-
"stopAtEntry": false,
47-
"console": "internalConsole",
48-
"env": {
49-
"AppMode": "Development"
50-
}
51-
},
52-
{
53-
"name": ".NET Core Attach",
54-
"type": "coreclr",
55-
"request": "attach"
56-
},
57-
{
58-
"name": "frontend: Attach to Chrome",
59-
"port": 9222,
60-
"request": "attach",
61-
"type": "chrome",
62-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp"
63-
},
64-
{
65-
"name": "frontend: Attach to Edge",
66-
"port": 9222,
67-
"request": "attach",
68-
"type": "msedge",
69-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp"
70-
},
71-
{
72-
"type": "msedge",
73-
"request": "launch",
74-
"name": "frontend: Web (Edge)",
75-
"url": "http://localhost:5173/next",
76-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
77-
"preLaunchTask": "npm run dev"
78-
},
79-
{
80-
"type": "msedge",
81-
"request": "launch",
82-
"name": "frontend: Web Dev Api (Edge)",
83-
"url": "http://localhost:5173/next",
84-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
85-
"preLaunchTask": "npm run dev:api"
86-
},
87-
{
88-
"type": "msedge",
89-
"request": "launch",
90-
"name": "frontend: Storybook (Edge)",
91-
"url": "http://localhost:6006",
92-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
93-
"preLaunchTask": "npm run storybook"
94-
},
95-
{
96-
"type": "chrome",
97-
"request": "launch",
98-
"name": "frontend: Web (Chrome)",
99-
"url": "http://localhost:5173/next",
100-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
101-
"preLaunchTask": "npm run dev"
102-
},
103-
{
104-
"type": "chrome",
105-
"request": "launch",
106-
"name": "frontend: Web Dev Api (Chrome)",
107-
"url": "http://localhost:5173/next",
108-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
109-
"preLaunchTask": "npm run dev:api"
110-
},
111-
{
112-
"type": "chrome",
113-
"request": "launch",
114-
"name": "frontend: Storybook (Chrome)",
115-
"url": "http://localhost:6006",
116-
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
117-
"preLaunchTask": "npm run storybook"
118-
}
119-
]
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"type": "aspire",
6+
"request": "launch",
7+
"name": "Aspire",
8+
"program": "${workspaceFolder}/src/Exceptionless.AppHost/Exceptionless.AppHost.csproj"
9+
},
10+
{
11+
"name": "Web",
12+
"type": "coreclr",
13+
"request": "launch",
14+
"preLaunchTask": "build",
15+
"program": "${workspaceFolder}/src/Exceptionless.Web/bin/Debug/net10.0/Exceptionless.Web.dll",
16+
"args": [],
17+
"cwd": "${workspaceFolder}/src/Exceptionless.Web",
18+
"stopAtEntry": false,
19+
"serverReadyAction": {
20+
"action": "openExternally",
21+
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
22+
},
23+
"env": {
24+
"AppMode": "Development"
25+
}
26+
},
27+
{
28+
"name": "Job",
29+
"type": "coreclr",
30+
"request": "launch",
31+
"preLaunchTask": "build",
32+
"program": "${workspaceFolder}/src/Exceptionless.Job/bin/Debug/net10.0/Exceptionless.Job.dll",
33+
"args": [],
34+
"cwd": "${workspaceFolder}",
35+
"stopAtEntry": false,
36+
"console": "internalConsole",
37+
"env": {
38+
"AppMode": "Development"
39+
}
40+
},
41+
{
42+
"name": ".NET Core Attach",
43+
"type": "coreclr",
44+
"request": "attach"
45+
},
46+
{
47+
"name": "frontend: Attach to Chrome",
48+
"port": 9222,
49+
"request": "attach",
50+
"type": "chrome",
51+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp"
52+
},
53+
{
54+
"name": "frontend: Attach to Edge",
55+
"port": 9222,
56+
"request": "attach",
57+
"type": "msedge",
58+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp"
59+
},
60+
{
61+
"type": "msedge",
62+
"request": "launch",
63+
"name": "frontend: Web (Edge)",
64+
"url": "http://localhost:5173/next",
65+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
66+
"preLaunchTask": "npm run dev"
67+
},
68+
{
69+
"type": "msedge",
70+
"request": "launch",
71+
"name": "frontend: Web Dev Api (Edge)",
72+
"url": "http://localhost:5173/next",
73+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
74+
"preLaunchTask": "npm run dev:api"
75+
},
76+
{
77+
"type": "msedge",
78+
"request": "launch",
79+
"name": "frontend: Storybook (Edge)",
80+
"url": "http://localhost:6006",
81+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
82+
"preLaunchTask": "npm run storybook"
83+
},
84+
{
85+
"type": "chrome",
86+
"request": "launch",
87+
"name": "frontend: Web (Chrome)",
88+
"url": "http://localhost:5173/next",
89+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
90+
"preLaunchTask": "npm run dev"
91+
},
92+
{
93+
"type": "chrome",
94+
"request": "launch",
95+
"name": "frontend: Web Dev Api (Chrome)",
96+
"url": "http://localhost:5173/next",
97+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
98+
"preLaunchTask": "npm run dev:api"
99+
},
100+
{
101+
"type": "chrome",
102+
"request": "launch",
103+
"name": "frontend: Storybook (Chrome)",
104+
"url": "http://localhost:6006",
105+
"webRoot": "${workspaceFolder}/src/Exceptionless.Web/ClientApp",
106+
"preLaunchTask": "npm run storybook"
107+
}
108+
]
120109
}

Dockerfile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
1+
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
22
WORKDIR /app
33

44
COPY ./*.slnx ./NuGet.Config ./
@@ -24,7 +24,7 @@ RUN dotnet build -c Release
2424

2525
FROM build AS testrunner
2626
WORKDIR /app/tests/Exceptionless.Tests
27-
ENTRYPOINT dotnet test --results-directory /app/artifacts --logger:trx
27+
ENTRYPOINT ["dotnet", "test", "--results-directory", "/app/artifacts", "--logger:trx"]
2828

2929
# job-publish
3030

@@ -35,7 +35,7 @@ RUN dotnet publish -c Release -o out
3535

3636
# job
3737

38-
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS job
38+
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS job
3939
WORKDIR /app
4040
COPY --from=job-publish /app/src/Exceptionless.Job/out ./
4141

@@ -52,7 +52,7 @@ RUN dotnet publish -c Release -o out /p:SkipSpaPublish=true
5252

5353
# api
5454

55-
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS api
55+
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS api
5656
WORKDIR /app
5757
COPY --from=api-publish /app/src/Exceptionless.Web/out ./
5858

@@ -72,7 +72,7 @@ RUN dotnet publish -c Release -o out
7272

7373
# app
7474

75-
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS app
75+
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS app
7676

7777
WORKDIR /app
7878
COPY --from=app-publish /app/src/Exceptionless.Web/out ./
@@ -146,7 +146,7 @@ USER elasticsearch
146146

147147
RUN wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh && \
148148
chmod +x dotnet-install.sh && \
149-
./dotnet-install.sh --channel 9.0 --runtime aspnetcore && \
149+
./dotnet-install.sh --channel 10.0 --runtime aspnetcore && \
150150
rm dotnet-install.sh
151151

152152
EXPOSE 8080 9200
@@ -206,7 +206,7 @@ USER elasticsearch
206206

207207
RUN wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh && \
208208
chmod +x dotnet-install.sh && \
209-
./dotnet-install.sh --channel 9.0 --runtime aspnetcore && \
209+
./dotnet-install.sh --channel 10.0 --runtime aspnetcore && \
210210
rm dotnet-install.sh
211211

212212
EXPOSE 8080 9200

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ _In appreciation for anyone who submits a non-trivial pull request, we will give
3232
- Please read the [contributing document](https://github.com/exceptionless/Exceptionless/blob/main/CONTRIBUTING.md)
3333
- Requirements
3434
- [Docker](https://www.docker.com/get-docker)
35-
- [.NET 9.0](https://dotnet.microsoft.com/)
36-
- [Node 20+](https://nodejs.org/)
35+
- [.NET 10.0](https://dotnet.microsoft.com/)
36+
- [Node 24+](https://nodejs.org/)
3737
- Visual Studio Code
3838
- Open Visual Studio Code and then open the Exceptionless root folder
3939
- Go to the `Terminal` menu and select `Run Task...` and then select `Start Elasticsearch` (you can stop the service when you are done using the `Stop Elasticsearch` task)

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.100-rc*",
3+
"version": "10.0.100",
44
"rollForward": "latestMinor"
55
}
66
}

0 commit comments

Comments
 (0)