diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5582f09..8044193 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -37,7 +37,7 @@ jobs: - name: setup dotnet uses: actions/setup-dotnet@v6 with: - dotnet-version: "8.0.x" + dotnet-version: "10.0.x" # always the project, never FluentMath.slnx; the solution also holds WPF v1, which needs net472 - name: restore diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index fe77867..14a6873 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -57,7 +57,7 @@ jobs: - name: setup dotnet uses: actions/setup-dotnet@v6 with: - dotnet-version: "8.0.x" + dotnet-version: "10.0.x" cache: true cache-dependency-path: FluentMath/FluentMath.csproj @@ -78,7 +78,7 @@ jobs: - name: report publish size shell: pwsh run: | - $publishDir = "FluentMath/bin/x64/Release/net8.0-windows10.0.19041.0/publish/win-x64" + $publishDir = "FluentMath/bin/x64/Release/net10.0-windows10.0.19041.0/publish/win-x64" $root = (Resolve-Path $publishDir).Path $files = Get-ChildItem $root -Recurse -File $total = ($files | Measure-Object -Property Length -Sum).Sum @@ -111,11 +111,11 @@ jobs: - name: setup dotnet uses: actions/setup-dotnet@v6 with: - dotnet-version: "8.0.x" + dotnet-version: "10.0.x" cache: true cache-dependency-path: FluentMath.Tests/FluentMath.Tests.csproj - # plain net8.0, so neither a platform nor a runtime identifier + # plain net10.0, so neither a platform nor a runtime identifier - name: engine tests run: dotnet test FluentMath.Tests/FluentMath.Tests.csproj -c Release @@ -131,7 +131,7 @@ jobs: - name: setup dotnet uses: actions/setup-dotnet@v6 with: - dotnet-version: "8.0.x" + dotnet-version: "10.0.x" # whitespace only, against the .editorconfig # (no -p:Platform, which dotnet format answers with its usage help; lf holds through .gitattributes) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 089866b..f32ce30 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: setup dotnet uses: actions/setup-dotnet@v6 with: - dotnet-version: "8.0.x" + dotnet-version: "10.0.x" # reads the version once so the csproj stays the only place it gets bumped by hand - name: read version from csproj @@ -62,7 +62,7 @@ jobs: run: | $staging = "Setup/Output/FluentMath_Portable_${{ steps.version.outputs.version }}" New-Item -ItemType Directory -Force -Path $staging | Out-Null - Copy-Item -Path "FluentMath/bin/x64/Release/net8.0-windows10.0.19041.0/publish/win-x64/*" -Destination $staging -Recurse -Force + Copy-Item -Path "FluentMath/bin/x64/Release/net10.0-windows10.0.19041.0/publish/win-x64/*" -Destination $staging -Recurse -Force Copy-Item -Path "Setup/Portable/portable.txt" -Destination $staging -Force Compress-Archive -Path $staging -DestinationPath "$staging.zip" -Force diff --git a/AGENTS.md b/AGENTS.md index 4167ca9..7f77329 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Fluent Math Development Guidelines -This project is a C#/.NET 8 WinUI 3 desktop app: a calculator for Windows that works the way a physical +This project is a C#/.NET 10 WinUI 3 desktop app: a calculator for Windows that works the way a physical pocket calculator does. The whole equation is typed first and evaluated on `=`, which is what guarantees the correct order of operations, rather than being evaluated after every operator the way the built-in Windows Calculator does. It also converts currencies from the European Central Bank daily reference @@ -94,7 +94,7 @@ FluentMath/ UpdateDialog, ReleaseNotesDialog, ReleaseNotesPage, PadEntrance, ICompactPage, SmallKeyLabels -FluentMath.Tests/ the engine tests, plain net8.0, no reference to the app +FluentMath.Tests/ the engine tests, plain net10.0, no reference to the app ``` `MainWindow` holds the `NavigationView` and the `Frame` the pages are shown in, extends into the title @@ -152,7 +152,7 @@ dotnet publish FluentMath/FluentMath.csproj -c Release -p:Platform=x64 -p:Publis ## Test `FluentMath.Tests/` covers the input engine, the evaluator, the result formatter, the keypad -routing in `CalculatorViewModel`, the converters and the persistence layer. It targets plain `net8.0` and links the sources it tests rather than +routing in `CalculatorViewModel`, the converters and the persistence layer. It targets plain `net10.0` and links the sources it tests rather than referencing the app, which is a `WinExe` on a Windows target framework and cannot be referenced from a plain library, so the suite runs on any dotnet runner. diff --git a/FluentMath.Tests/FluentMath.Tests.csproj b/FluentMath.Tests/FluentMath.Tests.csproj index 26c7f80..3559c49 100644 --- a/FluentMath.Tests/FluentMath.Tests.csproj +++ b/FluentMath.Tests/FluentMath.Tests.csproj @@ -1,6 +1,6 @@ - net8.0 + net10.0 enable disable false @@ -10,7 +10,7 @@ diff --git a/FluentMath/FluentMath.csproj b/FluentMath/FluentMath.csproj index 8775d98..12b0b85 100644 --- a/FluentMath/FluentMath.csproj +++ b/FluentMath/FluentMath.csproj @@ -1,7 +1,7 @@  WinExe - net8.0-windows10.0.19041.0 + net10.0-windows10.0.19041.0 2.4.1 diff --git a/FluentMath/Models/Layout/MathLayoutStyle.cs b/FluentMath/Models/Layout/MathLayoutStyle.cs index 8461abb..ad80ef3 100644 --- a/FluentMath/Models/Layout/MathLayoutStyle.cs +++ b/FluentMath/Models/Layout/MathLayoutStyle.cs @@ -3,7 +3,7 @@ namespace FluentMath.Models.Layout // the formula layout knobs: // every number that shapes the formula display; lengths in em, 1.0 being the font size of the part // they belong to, so the formula scales with FontSizePx - // (no WinUI types, the tests build this on plain net8.0; the colors stay in the markup) + // (no WinUI types, the tests build this on plain net10.0; the colors stay in the markup) public class MathLayoutStyle { // === the two display lines === diff --git a/FluentMath/Properties/PublishProfiles/win-x64.pubxml b/FluentMath/Properties/PublishProfiles/win-x64.pubxml index 4be1bf3..9e00e25 100644 --- a/FluentMath/Properties/PublishProfiles/win-x64.pubxml +++ b/FluentMath/Properties/PublishProfiles/win-x64.pubxml @@ -7,11 +7,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121. FileSystem x64 win-x64 - bin\x64\Release\net8.0-windows10.0.19041.0\publish\win-x64\ + bin\x64\Release\net10.0-windows10.0.19041.0\publish\win-x64\ true false Release - net8.0-windows10.0.19041.0 + net10.0-windows10.0.19041.0 false false diff --git a/Setup/FluentMath_Setup.iss b/Setup/FluentMath_Setup.iss index 1f16ec8..2a8d3fc 100644 --- a/Setup/FluentMath_Setup.iss +++ b/Setup/FluentMath_Setup.iss @@ -53,10 +53,10 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{ [Files] ; must stay in sync with PublishDir in FluentMath/Properties/PublishProfiles/win-x64.pubxml -Source: "..\FluentMath\bin\x64\Release\net8.0-windows10.0.19041.0\publish\win-x64\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "..\FluentMath\bin\x64\Release\net10.0-windows10.0.19041.0\publish\win-x64\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion ; Excludes keeps a local portable marker and its Persistence folder out, so no installed build writes ; into Program Files -Source: "..\FluentMath\bin\x64\Release\net8.0-windows10.0.19041.0\publish\win-x64\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "\portable.txt,\Persistence" +Source: "..\FluentMath\bin\x64\Release\net10.0-windows10.0.19041.0\publish\win-x64\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "\portable.txt,\Persistence" ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons]