From 997ff0f599d15f3837b6675cf36f6b078bbd7b67 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Sun, 4 Oct 2026 14:49:15 +0200 Subject: [PATCH 01/45] update repo to .net11 rc1 and v-11.0.0-pre-04 --- .devcontainer/devcontainer.json | 2 +- .github/agents/dependency-update.md | 5 +- .github/workflows/admin-sample.cd.yml | 15 +- .github/workflows/all.ci.yml | 15 +- .github/workflows/bit.ci.Besql.yml | 7 +- .github/workflows/bit.ci.BlazorES2019.yml | 7 +- .github/workflows/bit.ci.BlazorUI.yml | 7 +- .github/workflows/bit.ci.Bmotion.yml | 13 +- .github/workflows/bit.ci.Brouter.e2e.yml | 17 +- .github/workflows/bit.ci.Brouter.yml | 9 +- .github/workflows/bit.ci.Bswup.e2e.yml | 19 ++- .github/workflows/bit.ci.Bswup.yml | 13 +- .github/workflows/bit.ci.Butil.e2e.yml | 29 ++-- .github/workflows/bit.ci.Butil.yml | 9 +- .github/workflows/bit.ci.Cli.yml | 2 +- .github/workflows/bit.ci.CodeAnalyzers.yml | 2 +- .github/workflows/bit.ci.Minifier.yml | 2 +- .github/workflows/bit.ci.SourceGenerators.yml | 2 +- .github/workflows/bit.ci.Templates.yml | 2 +- .github/workflows/bit.ci.Websites.yml | 2 +- .github/workflows/bit.ci.release.yml | 9 +- .github/workflows/blazorui.demo.cd.yml | 10 +- .github/workflows/todo-sample.cd.yml | 14 +- .vscode/mcp.json | 2 +- src/Besql/Bit.Besql/Bit.Besql.csproj | 5 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- .../Bit.Besql.Demo.Client.csproj | 4 +- .../Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj | 14 +- src/Besql/Demo/Bit.Besql.Demo/Program.cs | 6 +- .../Properties/launchSettings.json | 1 - src/Bit.Build.props | 15 +- .../Bit.BlazorUI.Assets.csproj | 5 +- .../Bit.BlazorUI.Extras.csproj | 5 +- .../Bit.BlazorUI.Icons.csproj | 4 +- .../Bit.BlazorUI.Legacy.csproj | 5 +- src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj | 11 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 9 +- .../Components/App.razor | 4 - .../Startup/Middlewares.cs | 11 +- .../Bit.BlazorUI.Demo.Shared.csproj | 14 +- .../Bit.BlazorUI.Demo.Client.Core.csproj | 14 +- .../BitMarkdownEditorDemo.razor.cs | 4 +- .../BitMarkdownEditorDemo.razor.samples.cs | 4 +- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 27 ++-- .../wwwroot/index.html | 2 +- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 8 +- .../Bit.BlazorUI.Demo.Client.Web.csproj | 8 +- .../wwwroot/service-worker.published.js | 4 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 12 +- .../Program.cs | 3 +- src/BlazorUI/Demo/Directory.Build.props | 2 +- .../Bit.BlazorUI.Tests.Mcp.csproj | 2 +- .../Bit.BlazorUI.Tests.csproj | 7 +- ...BlazorUI.Tests.Performance.TestHost.csproj | 10 +- .../Bit.BlazorUI.Tests.Performance.csproj | 6 +- .../Client/Bit.Brouter.Demo.Client.csproj | 5 +- .../Client/Pages/GeneratorPage.razor | 4 +- .../Client/Pages/GettingStartedPage.razor | 4 +- .../Server/Bit.Brouter.Demo.Server.csproj | 4 +- .../Bit.Brouter.Demo/Server/Program.cs | 6 +- .../Server/Properties/launchSettings.json | 1 - src/Brouter/Bit.Brouter/Bit.Brouter.csproj | 4 +- .../Bit.Brouter.Samples.Auto.Client.csproj | 5 +- .../Bit.Brouter.Samples.Auto.csproj | 4 +- .../Auto/Bit.Brouter.Samples.Auto/Program.cs | 6 +- .../Properties/launchSettings.json | 1 - .../Core/Bit.Brouter.Samples.Core.csproj | 2 +- .../Server/Bit.Brouter.Samples.Server.csproj | 2 +- .../Bit.Brouter.Samples.Wasm.Client.csproj | 5 +- .../Bit.Brouter.Samples.Wasm.csproj | 4 +- .../Wasm/Bit.Brouter.Samples.Wasm/Program.cs | 6 +- .../Properties/launchSettings.json | 1 - .../Bit.Brouter.Benchmarks.csproj | 4 +- .../Bit.Brouter.Tests.E2E.csproj | 2 +- .../Bit.Brouter.Tests.E2E/HybridModeTests.cs | 2 +- .../Infrastructure/E2EEnvironment.cs | 4 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Brouter.Tests.E2E/publish-gate.sh | 4 +- .../Bit.Brouter.Tests.Generators.csproj | 2 +- .../Bit.Brouter.Tests.Harness.Hybrid.csproj | 5 +- ...it.Brouter.Tests.Harness.Web.Client.csproj | 3 +- .../Bit.Brouter.Tests.Harness.Web.csproj | 3 +- .../Properties/launchSettings.json | 1 - .../Bit.Brouter.Tests.Harness.csproj | 2 +- .../AssemblySetup.cs | 2 +- .../Bit.Brouter.Tests.Hosting.csproj | 7 +- .../SamplesHostingTests.cs | 2 +- .../Bit.Brouter.Tests.Mcp.csproj | 4 +- .../Bit.Brouter.Tests.csproj | 2 +- .../Client/Bit.Bswup.Demo.Client.csproj | 5 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Server/Bit.Bswup.Demo.Server.csproj | 4 +- src/Bswup/Bit.Bswup.Demo/Server/Program.cs | 6 +- .../Server/Properties/launchSettings.json | 1 - src/Bswup/Bit.Bswup/Bit.Bswup.csproj | 3 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/Bit.Bswup.BasicSample.csproj | 7 +- .../Properties/launchSettings.json | 1 - .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/Bit.Bswup.FullSample.Client.csproj | 5 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Server/Bit.Bswup.FullSample.Server.csproj | 4 +- .../Samples/FullSample/Server/Program.cs | 6 +- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bswup.Tests.E2E.csproj | 2 +- .../Infrastructure/E2EEnvironment.cs | 6 +- .../Bit.Bswup.Tests.Harness.Wasm.csproj | 3 +- .../Bit.Bswup.Tests.Harness.Web.Client.csproj | 3 +- .../Bit.Bswup.Tests.Harness.Web.csproj | 12 +- .../Properties/launchSettings.json | 2 - .../Sessions/HarnessMiddleware.cs | 7 +- .../Bit.Bswup.Tests.Harness.csproj | 3 +- .../Bit.Bswup.Tests.Hosting/AssemblySetup.cs | 2 +- .../Bit.Bswup.Tests.Hosting.csproj | 7 +- .../FullSampleHostingTests.cs | 2 +- .../Bit.Bswup.Tests.Mcp.csproj | 4 +- src/Butil/Bit.Butil/Bit.Butil.csproj | 3 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../Demo/Client/Bit.Butil.Demo.Client.csproj | 5 +- .../Demo/Server/Bit.Butil.Demo.Server.csproj | 4 +- src/Butil/Demo/Server/Program.cs | 6 +- .../Server/Properties/launchSettings.json | 1 - .../Bit.Butil.Samples.Core.csproj | 4 +- .../Bit.Butil.Samples.Maui.csproj | 18 +-- .../Bit.Butil.Samples.Web.csproj | 7 +- .../Properties/launchSettings.json | 1 - .../Bit.Butil.Tests.Benchmarks.csproj | 2 +- .../Bit.Butil.Tests.E2E.csproj | 2 +- .../Infrastructure/E2EEnvironment.cs | 6 +- .../Infrastructure/RepoLayout.cs | 2 +- .../tests/Bit.Butil.Tests.E2E/publish-gate.sh | 4 +- .../Bit.Butil.Tests.Harness.Hybrid.csproj | 5 +- .../Bit.Butil.Tests.Harness.Web.Client.csproj | 3 +- .../Bit.Butil.Tests.Harness.Web.csproj | 3 +- .../Properties/launchSettings.json | 1 - .../Bit.Butil.Tests.Hosting.csproj | 3 +- .../Bit.Butil.Tests.Manual.csproj | 2 +- .../Bit.Butil.Tests.Mcp.csproj | 2 +- .../Bit.Butil.Tests.PublishFixture.csproj | 2 +- src/Cli/Bit.Cli/Bit.Cli.csproj | 10 +- src/Cli/README.md | 4 +- .../Tests/Bit.Cli.Tests/Bit.Cli.Tests.csproj | 2 +- src/Minifier/Bit.Minifier/Bit.Minifier.csproj | 2 +- .../Bit.Minifier.Tests.Friend.csproj | 2 +- .../Bit.Minifier.Tests.Library.csproj | 2 +- .../Bit.Minifier.Tests.csproj | 2 +- .../BlazorEmpty.Client.csproj | 12 +- .../BlazorEmpty/BlazorEmpty.csproj | 12 +- .../BlazorEmpty/Program.Main.cs | 8 - .../Bit.BlazorEmpty/BlazorEmpty/Program.cs | 8 - .../Properties/launchSettings.json | 3 - .../BlazorEmpty/Bit.BlazorEmpty/global.json | 4 +- .../Bit.Boilerplate.ProjectTemplate.csproj | 2 +- .../.azure-devops/workflows/cd.yml | 4 +- .../Bit.Boilerplate/.codex/config.toml | 2 +- .../Bit.Boilerplate/.cursor/mcp.json | 2 +- .../.devcontainer/devcontainer.json | 2 +- .../.docs/01- Entity Framework Core.md | 6 +- .../16- CI-CD Pipeline and Environments.md | 4 +- ... Automated Testing (Unitigration Tests).md | 4 +- .../.docs/19- Project Miscellaneous Files.md | 10 +- .../Bit.Boilerplate/.gemini/settings.json | 2 +- .../.github/agents/ai-dlc.agent.md | 2 +- .../.github/agents/scaffold-entity.agent.md | 2 +- .../.github/workflows/cd-template.yml | 8 +- .../Bit.Boilerplate/.junie/mcp/mcp.json | 2 +- .../Boilerplate/Bit.Boilerplate/.mcp.json | 2 +- .../Bit.Boilerplate/.vscode/mcp.json | 2 +- .../Boilerplate/Bit.Boilerplate/AGENTS.md | 4 +- .../Boilerplate/Bit.Boilerplate/global.json | 4 +- .../Boilerplate.Client.Core.csproj | 2 +- .../Components/Pages/Home/HomePage.razor | 14 ++ .../Components/Pages/Home/HomePage.razor.cs | 8 + .../Identity/SignIn/SignInPanel.razor.cs | 2 +- .../Infrastructure/Data/README.md | 4 +- .../IClientCoreServiceCollectionExtensions.cs | 7 +- .../Boilerplate.Client.Maui.csproj | 26 +-- .../Boilerplate.Client.Maui/MauiProgram.cs | 5 +- .../wwwroot/index.html | 2 +- .../Boilerplate.Client.Web.csproj | 2 +- .../Client/Boilerplate.Client.Web/Program.cs | 5 +- .../Properties/launchSettings.json | 1 - .../wwwroot/service-worker.published.js | 4 +- .../Boilerplate.Client.Windows.csproj | 4 +- .../ClientWindowsSettings.cs | 26 +++ .../Services/WindowsKioskGuard.cs | 72 +++++++++ .../Boilerplate.Client.Windows/Program.cs | 45 +++++- .../appsettings.json | 4 + .../Bit.Boilerplate/src/Directory.Build.props | 2 +- .../src/Directory.Packages.props | 122 +++++++------- .../Boilerplate.Tests.E2E.csproj | 2 +- .../DownloadSize/WebAppDownloadSizeTests.cs | 14 +- .../Features/Kiosk/WindowsKioskTests.cs | 153 ++++++++++++++++++ .../Infrastructure/Services/WindowsWindow.cs | 141 ++++++++++++++++ .../Boilerplate.Server.Api.csproj | 2 +- .../Infrastructure/SignalR/AppHubOptions.cs | 27 ++++ .../Program.Middlewares.cs | 2 +- .../Boilerplate.Server.AppHost.csproj | 2 +- .../Boilerplate.Server.Shared.csproj | 2 +- .../Boilerplate.Server.Web.csproj | 3 +- .../Components/App.razor | 4 +- .../Program.Middlewares.cs | 11 +- .../Properties/launchSettings.json | 1 - .../src/Shared/Boilerplate.Shared.csproj | 2 +- .../src/Shared/Resources/AppStrings.ar.resx | 9 ++ .../src/Shared/Resources/AppStrings.de.resx | 9 ++ .../src/Shared/Resources/AppStrings.es.resx | 9 ++ .../src/Shared/Resources/AppStrings.fa.resx | 9 ++ .../src/Shared/Resources/AppStrings.fr.resx | 9 ++ .../src/Shared/Resources/AppStrings.hi.resx | 9 ++ .../src/Shared/Resources/AppStrings.nl.resx | 9 ++ .../src/Shared/Resources/AppStrings.resx | 9 ++ .../src/Shared/Resources/AppStrings.sv.resx | 9 ++ .../src/Shared/Resources/AppStrings.zh.resx | 9 ++ .../src/Tests/Boilerplate.Tests.csproj | 3 +- .../ClientSettingsValidationTests.cs | 17 +- .../Documentation/DocumentationTruthTests.cs | 2 +- .../Identity/IStorageServiceContractTests.cs | 2 +- .../Products/AddOrEditProductPageTests.cs | 2 +- .../Features/ServerWeb/HostPageRenderTests.cs | 2 +- src/Templates/Boilerplate/Readme.md | 2 +- .../Bmotion/Bit.Bmotion/Bit.Bmotion.csproj | 3 +- .../Client/Bit.Bmotion.Demo.Client.csproj | 5 +- .../Server/Bit.Bmotion.Demo.Server.csproj | 4 +- src/Utilities/Bmotion/Demo/Server/Program.cs | 6 +- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bmotion.Tests.Mcp.csproj | 6 +- .../Bit.Bmotion.Tests.csproj | 2 +- .../Bit.Websites.Careers.Client.csproj | 22 +-- .../wwwroot/service-worker.published.js | 4 +- .../Bit.Websites.Careers.Server.csproj | 13 +- .../Components/App.razor | 4 +- .../Properties/launchSettings.json | 1 - .../Startup/Middlewares.cs | 9 +- .../Bit.Websites.Careers.Shared.csproj | 12 +- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 31 ++-- .../Templates02GettingStartedPage.razor | 6 +- .../wwwroot/service-worker.published.js | 4 +- .../Bit.Websites.Platform.Server.csproj | 13 +- .../Components/App.razor | 4 +- .../Properties/launchSettings.json | 1 - .../Startup/Middlewares.cs | 9 +- .../Bit.Websites.Platform.Shared.csproj | 12 +- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 22 +-- .../wwwroot/service-worker.published.js | 4 +- .../Bit.Websites.Sales.Server.csproj | 13 +- .../Components/App.razor | 4 +- .../Properties/launchSettings.json | 1 - .../Startup/Middlewares.cs | 9 +- .../Bit.Websites.Sales.Shared.csproj | 12 +- src/Websites/Sales/src/Directory.Build.props | 2 +- src/global.json | 2 +- 262 files changed, 1296 insertions(+), 692 deletions(-) create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Infrastructure/Services/WindowsKioskGuard.cs create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/Kiosk/WindowsKioskTests.cs create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Infrastructure/Services/WindowsWindow.cs create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 05964183340..d39519aea84 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ }, "ghcr.io/devcontainers/features/node:2": { "version": "24" } }, - "image": "mcr.microsoft.com/dotnet/sdk:10.0.402", + "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.1", "postStartCommand": "dotnet workload install wasm-tools && dotnet dev-certs https --trust", "waitFor": "onCreateCommand", "customizations": { diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index eba5f53d91d..0ce46ad333c 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `10.7.0-pre-02`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-04`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. @@ -127,7 +127,8 @@ the graph already brings `Fragment.Ktx` 1.9.0 (an empty stub), rather than pinni **Linux runners are held at `ubuntu-24.04`**, in the GitHub workflows and the Azure DevOps `vmImage`. `ubuntu-26.04` defaults to JDK 25 (`(default)` in the image readme's Java table), and .NET for Android 10 accepts up to 21 (`LatestSupportedJavaVersion` 21.0.99), so every Android build there fails. .NET 11 -raises the limit to 25.0.99; move the runners together with the .NET 11 move. +RC1 still says 21.0.99 and RC2 raises it to 25.0.99 (`Xamarin.Android.Common.props.in` on dotnet/android's +`release/11.0.1xx-rc*` branches); move the runners once the Android workload in use accepts 25. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 95fd01ff900..3ced671d3d3 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -271,7 +271,7 @@ jobs: - name: Publish - run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Web/AdminPanel.Client.Web.csproj -c Release -o client -p:WasmEnableSIMD=true -p:Version="${{ vars.APP_VERSION}}" -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Web/AdminPanel.Client.Web.csproj -c Release -o client -p:UseMonoRuntime=false -p:WasmEnableSIMD=true -p:Version="${{ vars.APP_VERSION}}" -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact @@ -335,6 +335,8 @@ jobs: Logging.Sentry.Dsn: ${{ secrets.ADMINPANEL_SENTRY_DSN }} GoogleRecaptchaSiteKey: ${{ secrets.GOOGLE_RECAPTCHA_SITE_KEY }} WindowsUpdate.FilesUrl: https://windows-adminpanel.bitplatform.dev + Kiosk.Enabled: true + Kiosk.PreventSleep: true - name: Install vpk shell: pwsh @@ -453,14 +455,15 @@ jobs: - name: Publish aab - run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Maui/AdminPanel.Client.Maui.csproj -c Release -p:EnableLLVM=true -p:AndroidEnableProfiledAot=false -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="AdminPanel.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="AdminPanel" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-android + # NETSDK1242 refuses Mono on .NET 11 android; the private opt-out turns it off, which is what makes EnableLLVM and AndroidEnableProfiledAot mean something again. + run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Maui/AdminPanel.Client.Maui.csproj -c Release -p:UseMonoRuntime=true -p:_DisableCheckForUnsupportedMonoMobileRuntime=true -p:EnableLLVM=true -p:AndroidEnableProfiledAot=false -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="AdminPanel.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="AdminPanel" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-android - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-bundle - path: AdminPanel/src/Client/AdminPanel.Client.Maui/bin/Release/net10.0-android/*-Signed.apk + path: AdminPanel/src/Client/AdminPanel.Client.Maui/bin/Release/net11.0-android/*-Signed.apk - name: Attest artifact uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -474,7 +477,7 @@ jobs: with: serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} packageName: ${{ env.APP_BUNDLE_ID }} - releaseFiles: AdminPanel/src/Client/AdminPanel.Client.Maui/bin/Release/net10.0-android/*-Signed.aab + releaseFiles: AdminPanel/src/Client/AdminPanel.Client.Maui/bin/Release/net11.0-android/*-Signed.aab releaseName: ${{ vars.APP_VERSION }} track: internal status: completed @@ -548,11 +551,11 @@ jobs: - name: Build ipa - run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Maui/AdminPanel.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="AdminPanel" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="AdminPanel" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-ios + run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Maui/AdminPanel.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="AdminPanel" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="AdminPanel" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-ios - name: Locate ipa id: ipa - run: echo "path=$(ls AdminPanel/src/Client/AdminPanel.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT + run: echo "path=$(ls AdminPanel/src/Client/AdminPanel.Client.Maui/bin/release/net11.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT - name: Attest ipa uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index 1c0c62c72b0..a3614f20f94 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -15,10 +15,13 @@ on: description: Boilerplate tests with PostgreSQL type: boolean default: true + # Off by default on .NET 11: MySql.EntityFrameworkCore has no EF 11 build, and the EF 10 one throws + # "Method not found: RelationalTypeMapping.Clone" the moment the DbContext is created. Turn it back + # on with the provider, not before - see the note next to the reference in Directory.Packages.props. boilerplate_mysql: description: Boilerplate tests with MySQL type: boolean - default: true + default: false boilerplate_mssql: description: Boilerplate tests with SQL Server type: boolean @@ -73,7 +76,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10 + - name: Setup .NET 11 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -158,7 +161,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10 + - name: Setup .NET 11 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -243,7 +246,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10 + - name: Setup .NET 11 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -327,7 +330,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10 + - name: Setup .NET 11 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -387,7 +390,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10 + - name: Setup .NET 11 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.Besql.yml b/.github/workflows/bit.ci.Besql.yml index 1d174d19471..e810c9f0f32 100644 --- a/.github/workflows/bit.ci.Besql.yml +++ b/.github/workflows/bit.ci.Besql.yml @@ -26,11 +26,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.BlazorES2019.yml b/.github/workflows/bit.ci.BlazorES2019.yml index 7fb2b4e93ac..5088aebab77 100644 --- a/.github/workflows/bit.ci.BlazorES2019.yml +++ b/.github/workflows/bit.ci.BlazorES2019.yml @@ -26,11 +26,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.BlazorUI.yml b/.github/workflows/bit.ci.BlazorUI.yml index f2085e68cc3..de9dc7360eb 100644 --- a/.github/workflows/bit.ci.BlazorUI.yml +++ b/.github/workflows/bit.ci.BlazorUI.yml @@ -27,11 +27,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.Bmotion.yml b/.github/workflows/bit.ci.Bmotion.yml index 0ff57df1136..e56390a9c36 100644 --- a/.github/workflows/bit.ci.Bmotion.yml +++ b/.github/workflows/bit.ci.Bmotion.yml @@ -26,11 +26,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -50,7 +55,7 @@ jobs: - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Utilities/Bmotion/Bit.Bmotion.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Utilities/Bmotion/Bit.Bmotion.slnx -t:InstallNodejsDependencies -m:1 -f net11.0 - name: dotnet build run: dotnet build src/Utilities/Bmotion/Bit.Bmotion.slnx @@ -58,11 +63,11 @@ jobs: - name: dotnet test (C# engine + component tests) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). Every target framework the - # library ships for: .NET 8, 9 and 10 each get their own run of the suite. + # library ships for: .NET 8, 9, 10 and 11 each get their own run of the suite. run: cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp && dotnet test -f net10.0 --no-build + run: cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp && dotnet test -f net11.0 --no-build - name: JS tests (bit-bmotion.js drag/scroll math) run: | diff --git a/.github/workflows/bit.ci.Brouter.e2e.yml b/.github/workflows/bit.ci.Brouter.e2e.yml index c2a1d36a3e0..04cfed392d4 100644 --- a/.github/workflows/bit.ci.Brouter.e2e.yml +++ b/.github/workflows/bit.ci.Brouter.e2e.yml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - framework: [ net10.0, net9.0, net8.0 ] + framework: [ net11.0, net10.0, net9.0, net8.0 ] steps: - name: Checkout source code @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -57,7 +62,7 @@ jobs: run: dotnet build src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Brouter/Tests/Bit.Brouter.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Brouter/Tests/Bit.Brouter.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -90,7 +95,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -161,7 +166,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -181,7 +186,7 @@ jobs: run: dotnet build src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Brouter/Tests/Bit.Brouter.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Brouter/Tests/Bit.Brouter.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: diff --git a/.github/workflows/bit.ci.Brouter.yml b/.github/workflows/bit.ci.Brouter.yml index 1308abfb9e1..d554ff9995e 100644 --- a/.github/workflows/bit.ci.Brouter.yml +++ b/.github/workflows/bit.ci.Brouter.yml @@ -30,11 +30,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -66,5 +71,5 @@ jobs: - name: dotnet test (source generator) run: cd src/Brouter/Tests/Bit.Brouter.Tests.Generators && dotnet test --no-build - - name: dotnet test (hosting - every render mode over HTTP, net8.0/net9.0/net10.0) + - name: dotnet test (hosting - every render mode over HTTP, net8.0/net9.0/net10.0/net11.0) run: cd src/Brouter/Tests/Bit.Brouter.Tests.Hosting && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bswup.e2e.yml b/.github/workflows/bit.ci.Bswup.e2e.yml index 7e2bdf05479..86c6df8fb2a 100644 --- a/.github/workflows/bit.ci.Bswup.e2e.yml +++ b/.github/workflows/bit.ci.Bswup.e2e.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - framework: [ net10.0, net9.0, net8.0 ] + framework: [ net11.0, net10.0, net9.0, net8.0 ] steps: - name: Checkout source code @@ -32,11 +32,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -58,7 +63,7 @@ jobs: run: dotnet build src/Bswup/Tests/Bit.Bswup.Tests.E2E/Bit.Bswup.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bswup/Tests/Bit.Bswup.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Bswup/Tests/Bit.Bswup.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -93,7 +98,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -102,18 +107,18 @@ jobs: with: node-version: 24 - # TargetFrameworks=net10.0 on top of -f: -f alone does not reach project references, which then still + # TargetFrameworks=net11.0 on top of -f: -f alone does not reach project references, which then still # evaluate (and, without their SDKs installed, fail on) every framework they target. - name: Publish the harness host run: > dotnet publish src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj - -c Release -f net10.0 -p:TargetFrameworks=net10.0 -o ${{ github.workspace }}/artifacts/bswup-harness + -c Release -f net11.0 -p:TargetFrameworks=net11.0 -o ${{ github.workspace }}/artifacts/bswup-harness - name: Build the E2E suite run: dotnet build src/Bswup/Tests/Bit.Bswup.Tests.E2E/Bit.Bswup.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bswup/Tests/Bit.Bswup.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Bswup/Tests/Bit.Bswup.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: diff --git a/.github/workflows/bit.ci.Bswup.yml b/.github/workflows/bit.ci.Bswup.yml index 736daa40bb8..6c6185212e5 100644 --- a/.github/workflows/bit.ci.Bswup.yml +++ b/.github/workflows/bit.ci.Bswup.yml @@ -30,11 +30,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -60,15 +65,15 @@ jobs: - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Bswup/Bit.Bswup.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Bswup/Bit.Bswup.slnx -t:InstallNodejsDependencies -m:1 -f net11.0 - name: dotnet build run: dotnet build src/Bswup/Bit.Bswup.slnx - name: dotnet test (MCP server) - run: cd src/Bswup/Tests/Bit.Bswup.Tests.Mcp && dotnet test -f net10.0 --no-build + run: cd src/Bswup/Tests/Bit.Bswup.Tests.Mcp && dotnet test -f net11.0 --no-build - - name: dotnet test (hosting - served assets, host documents and BswupProgress over HTTP, net8.0/net9.0/net10.0) + - name: dotnet test (hosting - served assets, host documents and BswupProgress over HTTP, net8.0/net9.0/net10.0/net11.0) run: cd src/Bswup/Tests/Bit.Bswup.Tests.Hosting && dotnet test --no-build # Runs against Bit.Bswup/wwwroot/*.js, which the build above produces, so this also covers diff --git a/.github/workflows/bit.ci.Butil.e2e.yml b/.github/workflows/bit.ci.Butil.e2e.yml index 0655e9e6b5a..bb677b64ef9 100644 --- a/.github/workflows/bit.ci.Butil.e2e.yml +++ b/.github/workflows/bit.ci.Butil.e2e.yml @@ -1,7 +1,7 @@ name: bit platform CI - Butil E2E # The cross-host suites: the standalone WebAssembly sample and every Blazor Web App render mode in Chromium (on -# net10.0/net9.0/net8.0 where the runtime is what differs), Blazor Hybrid in WebView2, and trimmed/AOT publishes. +# net11.0/net10.0/net9.0/net8.0 where the runtime is what differs), Blazor Hybrid in WebView2, and trimmed/AOT publishes. # They take far longer than the build, MCP and hosting pipeline (bit.ci.Butil.yml), so they run only when started # by hand. Every job runs the same suite against a different host (BUTIL_E2E_HOST); see # src/Butil/tests/Bit.Butil.Tests.E2E/README.md for what each host proves and how to run the same thing locally. @@ -26,13 +26,15 @@ jobs: fail-fast: false matrix: include: - - { host: standalone, framework: net10.0 } + - { host: standalone, framework: net11.0 } + - { host: server, framework: net11.0 } + - { host: server-noprerender, framework: net11.0 } + - { host: wasm, framework: net11.0 } + - { host: wasm-noprerender, framework: net11.0 } + - { host: auto, framework: net11.0 } + - { host: auto-noprerender, framework: net11.0 } - { host: server, framework: net10.0 } - - { host: server-noprerender, framework: net10.0 } - { host: wasm, framework: net10.0 } - - { host: wasm-noprerender, framework: net10.0 } - - { host: auto, framework: net10.0 } - - { host: auto-noprerender, framework: net10.0 } - { host: server, framework: net9.0 } - { host: wasm, framework: net9.0 } - { host: server, framework: net8.0 } @@ -44,11 +46,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -72,7 +79,7 @@ jobs: run: dotnet build src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Butil/tests/Bit.Butil.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Butil/tests/Bit.Butil.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -105,7 +112,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -177,7 +184,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -197,7 +204,7 @@ jobs: run: dotnet build src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Butil/tests/Bit.Butil.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Butil/tests/Bit.Butil.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: diff --git a/.github/workflows/bit.ci.Butil.yml b/.github/workflows/bit.ci.Butil.yml index e051eec3598..921fa78a5b2 100644 --- a/.github/workflows/bit.ci.Butil.yml +++ b/.github/workflows/bit.ci.Butil.yml @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -84,7 +89,7 @@ jobs: path: '**/butil-mcp.trx' if-no-files-found: ignore - # Every render mode of the Blazor Web App harness host over HTTP, on net8.0/net9.0/net10.0: the prerendered + # Every render mode of the Blazor Web App harness host over HTTP, on net8.0/net9.0/net10.0/net11.0: the prerendered # pages, the served scripts, and every member of every service called during a static render. Browser, hybrid # and trimmed/AOT publish coverage is in bit.ci.Butil.e2e.yml. - name: Hosting tests diff --git a/.github/workflows/bit.ci.Cli.yml b/.github/workflows/bit.ci.Cli.yml index 3571a94ebf7..8389e48226e 100644 --- a/.github/workflows/bit.ci.Cli.yml +++ b/.github/workflows/bit.ci.Cli.yml @@ -36,7 +36,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.CodeAnalyzers.yml b/.github/workflows/bit.ci.CodeAnalyzers.yml index 65ff6cccd9d..66f4949c010 100644 --- a/.github/workflows/bit.ci.CodeAnalyzers.yml +++ b/.github/workflows/bit.ci.CodeAnalyzers.yml @@ -26,7 +26,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.Minifier.yml b/.github/workflows/bit.ci.Minifier.yml index 79d4b9a4455..f9cb274f5cf 100644 --- a/.github/workflows/bit.ci.Minifier.yml +++ b/.github/workflows/bit.ci.Minifier.yml @@ -26,7 +26,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.SourceGenerators.yml b/.github/workflows/bit.ci.SourceGenerators.yml index e77ff29ac3a..99d92fadcac 100644 --- a/.github/workflows/bit.ci.SourceGenerators.yml +++ b/.github/workflows/bit.ci.SourceGenerators.yml @@ -26,7 +26,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.Templates.yml b/.github/workflows/bit.ci.Templates.yml index a48e7dc5bbd..813f8cca0e6 100644 --- a/.github/workflows/bit.ci.Templates.yml +++ b/.github/workflows/bit.ci.Templates.yml @@ -34,7 +34,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.Websites.yml b/.github/workflows/bit.ci.Websites.yml index ead31290e8f..45123762a64 100644 --- a/.github/workflows/bit.ci.Websites.yml +++ b/.github/workflows/bit.ci.Websites.yml @@ -32,7 +32,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json diff --git a/.github/workflows/bit.ci.release.yml b/.github/workflows/bit.ci.release.yml index 34017a37be7..e54c77c0874 100644 --- a/.github/workflows/bit.ci.release.yml +++ b/.github/workflows/bit.ci.release.yml @@ -24,11 +24,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -48,7 +53,7 @@ jobs: - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Bit.CI.Release.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Bit.CI.Release.slnx -t:InstallNodejsDependencies -m:1 -f net11.0 - name: dotnet build run: dotnet build src/Bit.CI.Release.slnx -c Release diff --git a/.github/workflows/blazorui.demo.cd.yml b/.github/workflows/blazorui.demo.cd.yml index 8411532379f..af108d279f4 100644 --- a/.github/workflows/blazorui.demo.cd.yml +++ b/.github/workflows/blazorui.demo.cd.yml @@ -270,14 +270,14 @@ jobs: run: ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools" - name: Publish aab - run: dotnet publish src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="BitBlazorUIDemo.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:CompressionEnabled=false -f net10.0-android + run: dotnet publish src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="BitBlazorUIDemo.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:CompressionEnabled=false -f net11.0-android - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-bundle - path: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/Release/net10.0-android/*-Signed.apk + path: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/Release/net11.0-android/*-Signed.apk - name: Attest artifact uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -291,7 +291,7 @@ jobs: with: serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} packageName: ${{ env.APP_BUNDLE_ID }} - releaseFiles: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/Release/net10.0-android/*-Signed.aab + releaseFiles: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/Release/net11.0-android/*-Signed.aab releaseName: ${{ vars.APP_VERSION }} track: internal status: completed @@ -351,11 +351,11 @@ jobs: api-private-key: ${{ secrets.APPSTORE_API_KEY_PRIVATE_KEY }} - name: Build ipa - run: dotnet publish src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="Bit Blazor UI Demo" -p:Version="${{ vars.APP_VERSION }}" -p:CompressionEnabled=false -f net10.0-ios + run: dotnet publish src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="Bit Blazor UI Demo" -p:Version="${{ vars.APP_VERSION }}" -p:CompressionEnabled=false -f net11.0-ios - name: Locate ipa id: ipa - run: echo "path=$(ls src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT + run: echo "path=$(ls src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/release/net11.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT - name: Attest ipa uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index a52006fbe13..87b8a2eee68 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -383,7 +383,7 @@ jobs: - name: Optimize DbContext run: | - cd TodoSample/src/Server/TodoSample.Server.Web && dotnet build -c Release && dnx dotnet-ef@10.0.13 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace TodoSample.Client.Core.Infrastructure.Data --project ../../Client/TodoSample.Client.Core/TodoSample.Client.Core.csproj --verbose + cd TodoSample/src/Server/TodoSample.Server.Web && dotnet build -c Release && dnx dotnet-ef@11.0.0-rc.1.26425.128 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace TodoSample.Client.Core.Infrastructure.Data --project ../../Client/TodoSample.Client.Core/TodoSample.Client.Core.csproj --verbose - name: Publish run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true @@ -432,7 +432,7 @@ jobs: GoogleRecaptchaSiteKey: ${{ secrets.GOOGLE_RECAPTCHA_SITE_KEY }} - name: Publish - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:UseMonoRuntime=false -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact @@ -634,14 +634,14 @@ jobs: - name: Publish aab - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-android + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-android - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-bundle - path: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net10.0-android/*-Signed.apk + path: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net11.0-android/*-Signed.apk - name: Attest artifact uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -655,7 +655,7 @@ jobs: with: serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} packageName: ${{ env.APP_BUNDLE_ID }} - releaseFiles: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net10.0-android/*-Signed.aab + releaseFiles: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net11.0-android/*-Signed.aab releaseName: ${{ vars.APP_VERSION }} track: internal status: completed @@ -749,11 +749,11 @@ jobs: - name: Build ipa - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-ios + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-ios - name: Locate ipa id: ipa - run: echo "path=$(ls TodoSample/src/Client/TodoSample.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT + run: echo "path=$(ls TodoSample/src/Client/TodoSample.Client.Maui/bin/release/net11.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT - name: Attest ipa uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 diff --git a/.vscode/mcp.json b/.vscode/mcp.json index ddd3364b296..adf42671d6a 100644 --- a/.vscode/mcp.json +++ b/.vscode/mcp.json @@ -2,7 +2,7 @@ "servers": { "bitplatform": { "type": "http", - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" }, "github": { "type": "http", diff --git a/src/Besql/Bit.Besql/Bit.Besql.csproj b/src/Besql/Bit.Besql/Bit.Besql.csproj index 943a1b09e2b..0bdab49407b 100644 --- a/src/Besql/Bit.Besql/Bit.Besql.csproj +++ b/src/Besql/Bit.Besql/Bit.Besql.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable $(NoWarn);IL2091;EF1001 enable @@ -29,8 +29,11 @@ + + + diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index ef871cf7dbf..1f0baa50e7f 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '10.7.0-pre-02'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-04'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj index 546ec59c4db..e213f82cbca 100644 --- a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj index 539c1b1bd85..73250a5656c 100644 --- a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj @@ -1,14 +1,14 @@  - net10.0 + net11.0 enable enable - + @@ -17,11 +17,11 @@ and open Nuget Package Manager Console, and select `Bit.Besql.Demo.Client` project as default project Then run either Add-Migration MigrationName -OutputDir Data\Migrations or Optimize-DbContext -OutputDir Data\CompiledModel commands. --> - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Besql/Demo/Bit.Besql.Demo/Program.cs b/src/Besql/Demo/Bit.Besql.Demo/Program.cs index e1bfb2039f5..fcf1980bd0f 100644 --- a/src/Besql/Demo/Bit.Besql.Demo/Program.cs +++ b/src/Besql/Demo/Bit.Besql.Demo/Program.cs @@ -13,11 +13,7 @@ var app = builder.Build(); // Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. diff --git a/src/Besql/Demo/Bit.Besql.Demo/Properties/launchSettings.json b/src/Besql/Demo/Bit.Besql.Demo/Properties/launchSettings.json index 7f09e1b5807..c64befa48f3 100644 --- a/src/Besql/Demo/Bit.Besql.Demo/Properties/launchSettings.json +++ b/src/Besql/Demo/Bit.Besql.Demo/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5050;http://localhost:5051", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Bit.Build.props b/src/Bit.Build.props index ac78597018e..0076146b99d 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 10.7.0-pre-02 + 11.0.0-pre-04 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) @@ -38,7 +38,7 @@ en preview enable - $(NoWarn);NU1605;CS1591;NU1701;CA1303;CA1308;CA2007;CA1014;CA2227;BL0007;CA1056;BL0005;CS1998 + $(NoWarn);NU1605;CS1591;NU1701;CA1303;CA1308;CA2007;CA1014;CA2227;BL0007;CA1056;BL0005;CS1998;BL0016 $(WarningsAsErrors);CS0114;RZ10012 bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml @@ -79,6 +79,17 @@ Text="%(_StaleReleaseVersionLiteral.Identity) does not declare the release version '$(ReleaseVersion)' (see ReleaseVersion in Bit.Build.props). Update its version literal." /> + + + <_UseJsonManifestPackaging>false + + True diff --git a/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj b/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj index e9e84e7a4fe..1b51eea3c28 100644 --- a/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj @@ -5,9 +5,9 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + net11.0 true enable @@ -20,6 +20,7 @@ + diff --git a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj index 880335aa142..800054e636f 100644 --- a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj @@ -5,9 +5,9 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + net11.0 true enable @@ -20,6 +20,7 @@ + diff --git a/src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj b/src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj index 2687157212b..bf85213aadd 100644 --- a/src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj @@ -5,9 +5,9 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + net11.0 Bit.BlazorUI 0 diff --git a/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj b/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj index 9c05adb0d4a..5e13e4c50f3 100644 --- a/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj @@ -3,9 +3,9 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + net11.0 true enable @@ -18,6 +18,7 @@ + diff --git a/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj b/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj index 0ec2337d797..c4167190016 100644 --- a/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj +++ b/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj @@ -5,11 +5,11 @@ - net10.0;net9.0;net8.0 - - net10.0 + net11.0;net10.0;net9.0;net8.0 + + net11.0 true enable @@ -34,6 +34,7 @@ + diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index 3ad617382f3..5f46e1335dc 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "10.7.0-pre-02"; + public static string Version { get; } = "11.0.0-pre-04"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index d9df44b678f..682eb62a649 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '10.7.0-pre-02'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-04'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index 9cf2db498f1..d008c4d9c61 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 fcf350f4-eef5-430b-a5cb-144713a68932 @@ -16,19 +16,19 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.cs index c3376510398..123339fd327 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.cs +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.cs @@ -1307,11 +1307,11 @@ private void DraftRestored(string? value) private void EditorBlurred() => focusStatus = "The editor lost the keyboard focus."; - private void SubmitFromEditor(string? value) + private async Task SubmitFromEditor(string? value) { formModel.ReleaseNotes = value; - if (formEditContext.Validate()) HandleValidSubmit(); + if (await formEditContext.ValidateAsync()) HandleValidSubmit(); } private void HandleValidSubmit() => submittedStatus = $"Published {formModel.ReleaseNotes?.Length ?? 0} characters."; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.samples.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.samples.cs index 9e2da8788f6..f1974d203f6 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.samples.cs +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Extras/MarkdownEditor/BitMarkdownEditorDemo.razor.samples.cs @@ -422,11 +422,11 @@ protected override void OnInitialized() private void EditorBlurred() => focusStatus = ""The editor lost the keyboard focus.""; -private void SubmitFromEditor(string? value) +private async Task SubmitFromEditor(string? value) { formModel.ReleaseNotes = value; - if (formEditContext.Validate()) HandleValidSubmit(); + if (await formEditContext.ValidateAsync()) HandleValidSubmit(); } private void HandleValidSubmit() => submittedStatus = $""Published {formModel.ReleaseNotes?.Length ?? 0} characters."";"; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 3af962508ea..88381d21f0f 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -1,11 +1,11 @@  - net10.0-android;net10.0-ios;net10.0-maccatalyst - $(TargetFrameworks);net10.0-windows10.0.19041.0 - net10.0-android + net11.0-android;net11.0-ios;net11.0-maccatalyst + $(TargetFrameworks);net11.0-windows10.0.19041.0 + net11.0-android - + Exe true true @@ -19,8 +19,6 @@ com.bitplatform.BlazorUI.Demo AC87AA5B-4B37-4E52-8468-2D5DF24AF258 - - True $(NoWarn);ClassWithoutModifierAnalyzer @@ -49,16 +47,9 @@ r8 True - True - true - true android-arm64 - - True - -all - @@ -98,12 +89,11 @@ - - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -116,8 +106,9 @@ - - + + + - net10.0 + net11.0 @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index d79f5b41fc1..cac47e9b7cb 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 true false @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index e4e4851c4cd..4db2c0552fc 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; @@ -18,7 +18,7 @@ self.externalAssets = [ "url": "Bit.BlazorUI.Demo.Server.styles.css" }, { - url: "_framework/bit.blazor.web.es2019.js" + url: "_framework/blazor.web.js" } ]; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index c86fa274bd1..a82f18c6b18 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -2,7 +2,7 @@ WinExe - net10.0-windows + net11.0-windows enable enable true @@ -29,18 +29,18 @@ - - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Program.cs b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Program.cs index 01cf3696b09..dafd24400be 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Program.cs +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Program.cs @@ -74,7 +74,8 @@ public static void Main(string[] args) Text = "bit BlazorUI", WindowState = FormWindowState.Maximized, BackColor = ColorTranslator.FromHtml("#0D2960"), - Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath) + Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath), + FormRevealMode = FormRevealMode.Deferred }; var blazorWebView = new BlazorWebView diff --git a/src/BlazorUI/Demo/Directory.Build.props b/src/BlazorUI/Demo/Directory.Build.props index bee09090485..ca1e9a5c3d5 100644 --- a/src/BlazorUI/Demo/Directory.Build.props +++ b/src/BlazorUI/Demo/Directory.Build.props @@ -13,7 +13,7 @@ en-US 15.0 - 15.0 + 17.0 26.0 10.0.17763.0 10.0.17763.0 diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Mcp/Bit.BlazorUI.Tests.Mcp.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Mcp/Bit.BlazorUI.Tests.Mcp.csproj index 5accb3944f7..f580f416094 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Mcp/Bit.BlazorUI.Tests.Mcp.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Mcp/Bit.BlazorUI.Tests.Mcp.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 14.0 enable enable diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj index df4f4fa7786..e38c10857e8 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj @@ -3,10 +3,10 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + only, CI passes -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. --> + net11.0 false 14.0 enable @@ -71,6 +71,7 @@ + diff --git a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance.TestHost/Bit.BlazorUI.Tests.Performance.TestHost.csproj b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance.TestHost/Bit.BlazorUI.Tests.Performance.TestHost.csproj index 23595be4068..5aa9d8a4e93 100644 --- a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance.TestHost/Bit.BlazorUI.Tests.Performance.TestHost.csproj +++ b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance.TestHost/Bit.BlazorUI.Tests.Performance.TestHost.csproj @@ -1,18 +1,18 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. Without this the net10.0/net9.0/net8.0 + TFMs of this host would reference a Debug Bit.BlazorUI that only builds net11.0. --> + net11.0 enable enable preview - + diff --git a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance/Bit.BlazorUI.Tests.Performance.csproj b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance/Bit.BlazorUI.Tests.Performance.csproj index 1776478ff6a..9c0dd48822b 100644 --- a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance/Bit.BlazorUI.Tests.Performance.csproj +++ b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.Performance/Bit.BlazorUI.Tests.Performance.csproj @@ -3,10 +3,10 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. --> + net11.0 false 14.0 enable diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Bit.Brouter.Demo.Client.csproj b/src/Brouter/Bit.Brouter.Demo/Client/Bit.Brouter.Demo.Client.csproj index 3acacee05ab..c828e6584fa 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Bit.Brouter.Demo.Client.csproj +++ b/src/Brouter/Bit.Brouter.Demo/Client/Bit.Brouter.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -16,7 +17,7 @@ - + diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index b321eef9834..84aee0a1d6d 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="10.7.0-pre-02" /> -<PackageReference Include="Bit.Brouter.Generators" Version="10.7.0-pre-02" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-04" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-04" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 61dad00796f..631cf1f184d 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="10.7.0-pre-02" /> -<PackageReference Include="Bit.Brouter.Generators" Version="10.7.0-pre-02" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-04" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-04" PrivateAssets="all" />

diff --git a/src/Brouter/Bit.Brouter.Demo/Server/Bit.Brouter.Demo.Server.csproj b/src/Brouter/Bit.Brouter.Demo/Server/Bit.Brouter.Demo.Server.csproj index 1b29f2a8b50..175268debfe 100644 --- a/src/Brouter/Bit.Brouter.Demo/Server/Bit.Brouter.Demo.Server.csproj +++ b/src/Brouter/Bit.Brouter.Demo/Server/Bit.Brouter.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Brouter/Bit.Brouter.Demo/Server/Program.cs b/src/Brouter/Bit.Brouter.Demo/Server/Program.cs index 4626fa3d830..98e1e3f0708 100644 --- a/src/Brouter/Bit.Brouter.Demo/Server/Program.cs +++ b/src/Brouter/Bit.Brouter.Demo/Server/Program.cs @@ -72,11 +72,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Brouter/Bit.Brouter.Demo/Server/Properties/launchSettings.json b/src/Brouter/Bit.Brouter.Demo/Server/Properties/launchSettings.json index d63e94094d3..aed0dd13e20 100644 --- a/src/Brouter/Bit.Brouter.Demo/Server/Properties/launchSettings.json +++ b/src/Brouter/Bit.Brouter.Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7185;http://localhost:5185", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Brouter/Bit.Brouter/Bit.Brouter.csproj b/src/Brouter/Bit.Brouter/Bit.Brouter.csproj index 7481d776e8b..4aa175cbde1 100644 --- a/src/Brouter/Bit.Brouter/Bit.Brouter.csproj +++ b/src/Brouter/Bit.Brouter/Bit.Brouter.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 true @@ -19,9 +19,11 @@ + + diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj index 5506546cfea..177d75f4d2e 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj @@ -1,7 +1,8 @@ - net10.0 + net11.0 + false enable enable true @@ -10,7 +11,7 @@ - + diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj index b391debe9c0..87d8faf2cc4 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj @@ -1,14 +1,14 @@ - net10.0 + net11.0 enable enable true - + diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Program.cs b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Program.cs index 860cfd9940e..c4d497686d7 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Program.cs +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Program.cs @@ -10,11 +10,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Properties/launchSettings.json b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Properties/launchSettings.json index 2c2b4cf268a..36cec70ffe0 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Properties/launchSettings.json +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7183;http://localhost:5183", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Brouter/Samples/Core/Bit.Brouter.Samples.Core.csproj b/src/Brouter/Samples/Core/Bit.Brouter.Samples.Core.csproj index 016007bc608..e32bd929df8 100644 --- a/src/Brouter/Samples/Core/Bit.Brouter.Samples.Core.csproj +++ b/src/Brouter/Samples/Core/Bit.Brouter.Samples.Core.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable diff --git a/src/Brouter/Samples/Server/Bit.Brouter.Samples.Server.csproj b/src/Brouter/Samples/Server/Bit.Brouter.Samples.Server.csproj index 9087b840f04..15caf164210 100644 --- a/src/Brouter/Samples/Server/Bit.Brouter.Samples.Server.csproj +++ b/src/Brouter/Samples/Server/Bit.Brouter.Samples.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj index 5506546cfea..177d75f4d2e 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj @@ -1,7 +1,8 @@ - net10.0 + net11.0 + false enable enable true @@ -10,7 +11,7 @@ - + diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj index 5363068d95d..3f6eeb69423 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj @@ -1,14 +1,14 @@ - net10.0 + net11.0 enable enable true - + diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Program.cs b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Program.cs index 91fb3d96f3d..952338d2d0a 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Program.cs +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Program.cs @@ -10,11 +10,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Properties/launchSettings.json b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Properties/launchSettings.json index d75510e51d7..f34753cfdd3 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Properties/launchSettings.json +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7182;http://localhost:5182", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Brouter/Tests/Bit.Brouter.Benchmarks/Bit.Brouter.Benchmarks.csproj b/src/Brouter/Tests/Bit.Brouter.Benchmarks/Bit.Brouter.Benchmarks.csproj index b1d132f44cc..5c4b3ff3f3e 100644 --- a/src/Brouter/Tests/Bit.Brouter.Benchmarks/Bit.Brouter.Benchmarks.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Benchmarks/Bit.Brouter.Benchmarks.csproj @@ -2,10 +2,10 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj index 744c7c0b7a5..a5f73f6d541 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Bit.Brouter.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/HybridModeTests.cs b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/HybridModeTests.cs index 6f433bbfe6c..b2a2200d9dc 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/HybridModeTests.cs +++ b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/HybridModeTests.cs @@ -18,7 +18,7 @@ public class HybridModeTests : InteractiveHarnessTests { protected override string BaseUrl => HybridHarnessHost.AppOrigin; - protected override string Framework => "net10.0"; + protected override string Framework => "net11.0"; protected override bool Prerenders => false; diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/E2EEnvironment.cs index db5699ec868..62f9bdb8978 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/E2EEnvironment.cs +++ b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/E2EEnvironment.cs @@ -8,9 +8,9 @@ public static class E2EEnvironment { /// /// BROUTER_E2E_FRAMEWORK: the target framework the web harness host runs on - /// (net10.0, net9.0 or net8.0). Defaults to net10.0. The hybrid host is always net10.0-windows. + /// (net11.0, net10.0, net9.0 or net8.0). Defaults to net11.0. The hybrid host is always net11.0-windows. /// - public static string Framework { get; } = Read("BROUTER_E2E_FRAMEWORK") ?? "net10.0"; + public static string Framework { get; } = Read("BROUTER_E2E_FRAMEWORK") ?? "net11.0"; /// /// BROUTER_E2E_CONFIGURATION: the build configuration of the harness hosts. Defaults to the diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/RepoLayout.cs index 44da9a9508e..6c20de62726 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/Infrastructure/RepoLayout.cs @@ -17,7 +17,7 @@ public static string WebHostAssembly(string framework, string configuration) => Path.Combine(Path.GetDirectoryName(WebHostProject())!, "bin", configuration, framework, $"{WebHostName}.dll"); public static string HybridHostExecutable(string configuration) => - Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net10.0-windows", $"{HybridHostName}.exe"); + Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net11.0-windows", $"{HybridHostName}.exe"); private static string FindUpward(string relativePath) { diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/publish-gate.sh b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/publish-gate.sh index ba7dd09eadd..b49791d7135 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.E2E/publish-gate.sh +++ b/src/Brouter/Tests/Bit.Brouter.Tests.E2E/publish-gate.sh @@ -17,8 +17,8 @@ set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" -# TargetFrameworks=net10.0 on top of -f: -f alone does not reach project references, which then still +# TargetFrameworks=net11.0 on top of -f: -f alone does not reach project references, which then still # evaluate every framework they target - and with RunAOTCompilation each of those demands its own # wasm-tools workload. exec bash "$here/../../../publish-gate.sh" Bit.Brouter Tests "$here/../Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj" \ - "$1" -f net10.0 -p:TargetFrameworks=net10.0 "${@:2}" + "$1" -f net11.0 -p:TargetFrameworks=net11.0 "${@:2}" diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Generators/Bit.Brouter.Tests.Generators.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Generators/Bit.Brouter.Tests.Generators.csproj index 93144130e3f..36eb0288ea4 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Generators/Bit.Brouter.Tests.Generators.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Generators/Bit.Brouter.Tests.Generators.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj index 8f63fa8d120..75faa81e85b 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj @@ -8,7 +8,7 @@ WinExe - net10.0-windows + net11.0-windows true true @@ -18,7 +18,8 @@ - + + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj index 1d7a2ceebfc..0e2015053a7 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -14,6 +14,7 @@ + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj index 3a5f3ef0352..4133f996120 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj @@ -8,7 +8,7 @@ Bit.Brouter ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -19,6 +19,7 @@ + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Properties/launchSettings.json b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Properties/launchSettings.json index 684ed5905e3..b4e3b844dea 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Properties/launchSettings.json @@ -18,7 +18,6 @@ "commandName": "Project", "commandLineArgs": "--BrouterHarness:Mode=wasm", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5290", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness/Bit.Brouter.Tests.Harness.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness/Bit.Brouter.Tests.Harness.csproj index 86fa52004fe..7c9ec6d7efc 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness/Bit.Brouter.Tests.Harness.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness/Bit.Brouter.Tests.Harness.csproj @@ -6,7 +6,7 @@ suites run the same assertions against every host and attribute a difference to the host. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/AssemblySetup.cs b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/AssemblySetup.cs index 335413f586f..145f2d54d20 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/AssemblySetup.cs +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/AssemblySetup.cs @@ -13,7 +13,7 @@ public static class AssemblySetup public static async Task CleanupAsync() { await HarnessHostFactory.DisposeSharedAsync(); -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER await SampleHostFactories.DisposeAsync(); #endif } diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj index 86a0e4ef45d..dd77e230ff8 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj @@ -7,7 +7,7 @@ runs on every target framework in the regular CI job. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -23,14 +23,15 @@ + - - + + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/SamplesHostingTests.cs b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/SamplesHostingTests.cs index d93a645d8b5..3d5794a53f1 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/SamplesHostingTests.cs +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/SamplesHostingTests.cs @@ -1,4 +1,4 @@ -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER using System.Net; using Microsoft.AspNetCore.Mvc.Testing; diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj index 70f8365ea03..f0069aca06e 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj @@ -3,7 +3,7 @@ - net10.0 + net11.0 enable enable false @@ -18,7 +18,7 @@ - + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests/Bit.Brouter.Tests.csproj b/src/Brouter/Tests/Bit.Brouter.Tests/Bit.Brouter.Tests.csproj index 39457135df2..ef606a1d30a 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests/Bit.Brouter.Tests.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests/Bit.Brouter.Tests.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj b/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj index 6c344da72e6..b8efdcdc37a 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj +++ b/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj @@ -1,10 +1,11 @@ - net10.0 + net11.0 enable enable true + false true @@ -20,7 +21,7 @@ - + diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index 80adb16e7e9..e7cf07cdfd6 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index 23c9c1fa012..ad4e2286654 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj b/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj index 9dc7c93567f..96181fd047d 100644 --- a/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj +++ b/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Bswup/Bit.Bswup.Demo/Server/Program.cs b/src/Bswup/Bit.Bswup.Demo/Server/Program.cs index ccd0d9095f3..4d6c8d46bf4 100644 --- a/src/Bswup/Bit.Bswup.Demo/Server/Program.cs +++ b/src/Bswup/Bit.Bswup.Demo/Server/Program.cs @@ -160,11 +160,7 @@ called bare answers with the whole catalog. var app = builder.Build(); // Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. diff --git a/src/Bswup/Bit.Bswup.Demo/Server/Properties/launchSettings.json b/src/Bswup/Bit.Bswup.Demo/Server/Properties/launchSettings.json index edb877f3e85..daf13ea51ae 100644 --- a/src/Bswup/Bit.Bswup.Demo/Server/Properties/launchSettings.json +++ b/src/Bswup/Bit.Bswup.Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5024;https://localhost:5025", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Bswup/Bit.Bswup/Bit.Bswup.csproj b/src/Bswup/Bit.Bswup/Bit.Bswup.csproj index 29a90e18b61..567e60bb5b3 100644 --- a/src/Bswup/Bit.Bswup/Bit.Bswup.csproj +++ b/src/Bswup/Bit.Bswup/Bit.Bswup.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 true - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -24,6 +24,7 @@ + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj index 394f790031d..0eb9f292f01 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj @@ -5,7 +5,7 @@ project of an app built from the Blazor Web App template. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -23,6 +23,7 @@ + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj index 69b4f91dbe7..2c896c73df6 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj @@ -8,7 +8,7 @@ the suites can run the harness on every runtime Bit.Bswup ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -18,6 +18,16 @@ + + + + + + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Properties/launchSettings.json b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Properties/launchSettings.json index ca37faaa95b..41301a6a225 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "commandLineArgs": "--BswupHarness:Mode=wasm", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5390", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, @@ -12,7 +11,6 @@ "commandName": "Project", "commandLineArgs": "--BswupHarness:Mode=wasm-noprerender", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5390", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Sessions/HarnessMiddleware.cs b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Sessions/HarnessMiddleware.cs index 7b5bf389b99..719a3487eae 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Sessions/HarnessMiddleware.cs +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Sessions/HarnessMiddleware.cs @@ -52,7 +52,12 @@ public async Task InvokeAsync(HttpContext context) // A hosted client's referenced libraries are served from the host's root _content/, while the // standalone app - mounted under /standalone/ - resolves them (and lists them in its manifest) // relative to its base. Map them the way a reverse proxy mounting the app on a sub-path would. - if (path.StartsWith("/standalone/_content/", StringComparison.OrdinalIgnoreCase)) + // blazor.webassembly.js joins them on .NET 11: a WebAssembly client keeps it for its own publish + // and no longer hands it to a project referencing it, so the host serves the copy its own + // StaticWebAssetGroup keeps (see the csproj). Without this the boot script request reaches the + // fallback document and the app dies on "SyntaxError: Unexpected token '<'". + if (path.StartsWith("/standalone/_content/", StringComparison.OrdinalIgnoreCase) + || path.StartsWith("/standalone/_framework/blazor.webassembly.js", StringComparison.OrdinalIgnoreCase)) { context.Request.Path = path["/standalone".Length..]; } diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness/Bit.Bswup.Tests.Harness.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness/Bit.Bswup.Tests.Harness.csproj index 4b78806aa1c..a707e6d7851 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness/Bit.Bswup.Tests.Harness.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness/Bit.Bswup.Tests.Harness.csproj @@ -8,7 +8,7 @@ manifests, which is what makes them usable as precached assets the suites can fault. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -24,6 +24,7 @@ + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/AssemblySetup.cs b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/AssemblySetup.cs index ef7bd1395bc..8f03aada29d 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/AssemblySetup.cs +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/AssemblySetup.cs @@ -13,7 +13,7 @@ public static class AssemblySetup public static async Task CleanupAsync() { await HarnessHostFactory.DisposeSharedAsync(); -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER await SampleHostFactories.DisposeAsync(); #endif } diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/Bit.Bswup.Tests.Hosting.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/Bit.Bswup.Tests.Hosting.csproj index ee421ca1cff..725b39ab8e5 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/Bit.Bswup.Tests.Hosting.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/Bit.Bswup.Tests.Hosting.csproj @@ -7,7 +7,7 @@ on every target framework in the regular CI job. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -23,14 +23,15 @@ + - - + + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/FullSampleHostingTests.cs b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/FullSampleHostingTests.cs index 2326d4139a2..769f00eb097 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/FullSampleHostingTests.cs +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Hosting/FullSampleHostingTests.cs @@ -1,4 +1,4 @@ -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER using System.Net; using Bit.Bswup.Tests.Hosting.Infrastructure; using Microsoft.AspNetCore.Mvc.Testing; diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Mcp/Bit.Bswup.Tests.Mcp.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Mcp/Bit.Bswup.Tests.Mcp.csproj index c4a78c55f89..688a0f73789 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Mcp/Bit.Bswup.Tests.Mcp.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Mcp/Bit.Bswup.Tests.Mcp.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 Exe @@ -18,7 +18,7 @@ - + diff --git a/src/Butil/Bit.Butil/Bit.Butil.csproj b/src/Butil/Bit.Butil/Bit.Butil.csproj index 6d07f15b035..92b47f8ec3f 100644 --- a/src/Butil/Bit.Butil/Bit.Butil.csproj +++ b/src/Butil/Bit.Butil/Bit.Butil.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 true $(NoWarn);NU5100 @@ -27,6 +27,7 @@ + diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 00649f28b0d..2c947ea38c9 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '10.7.0-pre-02'; \ No newline at end of file +BitButil.version = window['bit-butil version'] = '11.0.0-pre-04'; diff --git a/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj b/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj index 136205295d2..7176f216fa8 100644 --- a/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj +++ b/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -13,7 +14,7 @@ - + diff --git a/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj b/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj index ff94d25b078..65a52d14cc4 100644 --- a/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj +++ b/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -9,7 +9,7 @@ - + diff --git a/src/Butil/Demo/Server/Program.cs b/src/Butil/Demo/Server/Program.cs index 3ee45da414e..78fd382f7d9 100644 --- a/src/Butil/Demo/Server/Program.cs +++ b/src/Butil/Demo/Server/Program.cs @@ -112,11 +112,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Butil/Demo/Server/Properties/launchSettings.json b/src/Butil/Demo/Server/Properties/launchSettings.json index f73192c3cd8..7742f084f40 100644 --- a/src/Butil/Demo/Server/Properties/launchSettings.json +++ b/src/Butil/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5253;http://localhost:5252", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Butil/Samples/Bit.Butil.Samples.Core/Bit.Butil.Samples.Core.csproj b/src/Butil/Samples/Bit.Butil.Samples.Core/Bit.Butil.Samples.Core.csproj index 3a4d3372209..05ebe4684d1 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Core/Bit.Butil.Samples.Core.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Core/Bit.Butil.Samples.Core.csproj @@ -2,8 +2,8 @@ - net10.0;net9.0;net8.0 + these pages on every runtime Bit.Butil ships for. The sample apps themselves pick net11.0. --> + net11.0;net10.0;net9.0;net8.0 diff --git a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj index 4d60efb0cec..a80d99347cc 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj @@ -1,11 +1,11 @@  - net10.0-android;net10.0-ios;net10.0-maccatalyst - $(TargetFrameworks);net10.0-windows10.0.19041.0 - net10.0-android + net11.0-android;net11.0-ios;net11.0-maccatalyst + $(TargetFrameworks);net11.0-windows10.0.19041.0 + net11.0-android - + Exe true true @@ -22,9 +22,6 @@ 1.0.0 1 - - True - $(NoWarn);ClassWithoutModifierAnalyzer @@ -50,9 +47,10 @@ - - - + + + + diff --git a/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj b/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj index f0605f39b99..9477d6ff729 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj @@ -1,14 +1,15 @@  - net10.0 + net11.0 + false enable enable - - + + diff --git a/src/Butil/Samples/Bit.Butil.Samples.Web/Properties/launchSettings.json b/src/Butil/Samples/Bit.Butil.Samples.Web/Properties/launchSettings.json index 5dae728713a..804970b4729 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Web/Properties/launchSettings.json +++ b/src/Butil/Samples/Bit.Butil.Samples.Web/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5040;https://localhost:5041", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Butil/tests/Bit.Butil.Tests.Benchmarks/Bit.Butil.Tests.Benchmarks.csproj b/src/Butil/tests/Bit.Butil.Tests.Benchmarks/Bit.Butil.Tests.Benchmarks.csproj index addbe0c5c46..6cb8260e9b8 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Benchmarks/Bit.Butil.Tests.Benchmarks.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Benchmarks/Bit.Butil.Tests.Benchmarks.csproj @@ -2,7 +2,7 @@ Exe - net10.0 + net11.0 enable enable preview diff --git a/src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj b/src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj index 1c3868d53ff..4119686149f 100644 --- a/src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.E2E/Bit.Butil.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/E2EEnvironment.cs index 3314d9f2777..224b83320cc 100644 --- a/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/E2EEnvironment.cs +++ b/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/E2EEnvironment.cs @@ -14,10 +14,10 @@ public static class E2EEnvironment public static string Host { get; } = HarnessHostKinds.Validate(Read("BUTIL_E2E_HOST") ?? HarnessHostKinds.Standalone); /// - /// BUTIL_E2E_FRAMEWORK: the target framework the web harness host runs on (net10.0, net9.0 or - /// net8.0). Defaults to net10.0. The standalone sample and the hybrid host are net10.0 only. + /// BUTIL_E2E_FRAMEWORK: the target framework the web harness host runs on (net11.0, net10.0, net9.0 or + /// net8.0). Defaults to net11.0. The standalone sample and the hybrid host are net11.0 only. /// - public static string Framework { get; } = Read("BUTIL_E2E_FRAMEWORK") ?? "net10.0"; + public static string Framework { get; } = Read("BUTIL_E2E_FRAMEWORK") ?? "net11.0"; /// /// BUTIL_E2E_CONFIGURATION: the build configuration of the harness hosts. Defaults to the diff --git a/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/RepoLayout.cs index 4092f040605..9792c50a875 100644 --- a/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Butil/tests/Bit.Butil.Tests.E2E/Infrastructure/RepoLayout.cs @@ -53,5 +53,5 @@ public static string HybridHarnessProject() => FindUpward(Path.Combine("tests", HybridHarnessName, $"{HybridHarnessName}.csproj")); public static string HybridHarnessExecutable(string configuration) - => Path.Combine(Path.GetDirectoryName(HybridHarnessProject())!, "bin", configuration, "net10.0-windows", $"{HybridHarnessName}.exe"); + => Path.Combine(Path.GetDirectoryName(HybridHarnessProject())!, "bin", configuration, "net11.0-windows", $"{HybridHarnessName}.exe"); } diff --git a/src/Butil/tests/Bit.Butil.Tests.E2E/publish-gate.sh b/src/Butil/tests/Bit.Butil.Tests.E2E/publish-gate.sh index 1058ea1578f..1dce3f4d67b 100644 --- a/src/Butil/tests/Bit.Butil.Tests.E2E/publish-gate.sh +++ b/src/Butil/tests/Bit.Butil.Tests.E2E/publish-gate.sh @@ -15,8 +15,8 @@ set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" -# ButilHarnessFramework=net10.0 on top of -f: -f alone does not reach project references, so the WebAssembly +# ButilHarnessFramework=net11.0 on top of -f: -f alone does not reach project references, so the WebAssembly # client would still evaluate every framework it targets - and with RunAOTCompilation each of those demands its # own wasm-tools workload. Not -p:TargetFrameworks, which would also reach the netstandard2.0 Bit.Butil.Build. exec bash "$here/../../../publish-gate.sh" Bit.Butil 'Samples|Tests' "$here/../Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj" \ - "$1" -f net10.0 -p:ButilHarnessFramework=net10.0 "${@:2}" + "$1" -f net11.0 -p:ButilHarnessFramework=net11.0 "${@:2}" diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj index f915e40e98f..739b19132c5 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj @@ -8,7 +8,7 @@ WinExe - net10.0-windows + net11.0-windows true true @@ -21,7 +21,8 @@ - + + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj index a10cfa03aa7..3d98cb949f3 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj @@ -4,7 +4,7 @@ browser. It carries no pages of its own - they come from Samples.Core - only the client's startup. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 $(ButilHarnessFramework) enable @@ -19,6 +19,7 @@ + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj index 845275c3489..f90c68e20fb 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj @@ -8,7 +8,7 @@ is: the suites can run the harness on every runtime Bit.Butil ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 @@ -25,6 +25,7 @@ + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Properties/launchSettings.json b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Properties/launchSettings.json index fe3b67e9348..276cc2a9f55 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Properties/launchSettings.json @@ -21,7 +21,6 @@ "commandLineArgs": "--ButilHarness:Mode=wasm", "launchBrowser": true, "launchUrl": "e2e", - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5390", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, diff --git a/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj b/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj index b3d4b527d28..07d873c666d 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj @@ -7,7 +7,7 @@ browser, so this runs on every target framework in the regular CI job. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -27,6 +27,7 @@ + diff --git a/src/Butil/tests/Bit.Butil.Tests.Manual/Bit.Butil.Tests.Manual.csproj b/src/Butil/tests/Bit.Butil.Tests.Manual/Bit.Butil.Tests.Manual.csproj index 25a18802f68..caac1141b9e 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Manual/Bit.Butil.Tests.Manual.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Manual/Bit.Butil.Tests.Manual.csproj @@ -2,7 +2,7 @@ Exe - net10.0 + net11.0 enable enable preview diff --git a/src/Butil/tests/Bit.Butil.Tests.Mcp/Bit.Butil.Tests.Mcp.csproj b/src/Butil/tests/Bit.Butil.Tests.Mcp/Bit.Butil.Tests.Mcp.csproj index ad4381decd6..422b67f0fa2 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Mcp/Bit.Butil.Tests.Mcp.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Mcp/Bit.Butil.Tests.Mcp.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Butil/tests/Bit.Butil.Tests.PublishFixture/Bit.Butil.Tests.PublishFixture.csproj b/src/Butil/tests/Bit.Butil.Tests.PublishFixture/Bit.Butil.Tests.PublishFixture.csproj index cd0fbd67a75..b150dcbdf1c 100644 --- a/src/Butil/tests/Bit.Butil.Tests.PublishFixture/Bit.Butil.Tests.PublishFixture.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.PublishFixture/Bit.Butil.Tests.PublishFixture.csproj @@ -18,7 +18,7 @@ --> - net10.0 + net11.0 enable enable false diff --git a/src/Cli/Bit.Cli/Bit.Cli.csproj b/src/Cli/Bit.Cli/Bit.Cli.csproj index 44e47bda7cd..0578c71dfda 100644 --- a/src/Cli/Bit.Cli/Bit.Cli.csproj +++ b/src/Cli/Bit.Cli/Bit.Cli.csproj @@ -4,7 +4,7 @@ Exe - net10.0 + net11.0 Major enable enable @@ -30,10 +30,10 @@ - - - - + + + + diff --git a/src/Cli/README.md b/src/Cli/README.md index e8d85113c67..324abbda4c7 100644 --- a/src/Cli/README.md +++ b/src/Cli/README.md @@ -13,7 +13,7 @@ Or run it without installing anything: dnx Bit.Cli --prerelease -- new MyApp ``` -It needs a .NET 10 SDK or later. `dnx` asks once before it downloads the package. +It needs a .NET 11 SDK or later. `dnx` asks once before it downloads the package. ## bit new @@ -310,7 +310,7 @@ bit about shows the version, the commit and the GitHub Actions run that built it. Release packages are built from this repository by GitHub Actions, which signs the bit assemblies inside them, `bit.dll` included, and attests the provenance and the SBOM of every package and of those assemblies. On Windows, `bit about` says who signed the `bit.dll` it runs once Windows has checked the signature. For a release, it also asks GitHub whether it holds a build attestation for that exact `bit.dll`, and prints the command that verifies it fully: ```bash -gh attestation verify ~/.dotnet/tools/.store/bit.cli//bit.cli//tools/net10.0/any/bit.dll --repo bitfoundation/bitplatform +gh attestation verify ~/.dotnet/tools/.store/bit.cli//bit.cli//tools/net11.0/any/bit.dll --repo bitfoundation/bitplatform ``` ## Exit codes diff --git a/src/Cli/Tests/Bit.Cli.Tests/Bit.Cli.Tests.csproj b/src/Cli/Tests/Bit.Cli.Tests/Bit.Cli.Tests.csproj index e3f8c15fa13..7e6874d8f9e 100644 --- a/src/Cli/Tests/Bit.Cli.Tests/Bit.Cli.Tests.csproj +++ b/src/Cli/Tests/Bit.Cli.Tests/Bit.Cli.Tests.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Minifier/Bit.Minifier/Bit.Minifier.csproj b/src/Minifier/Bit.Minifier/Bit.Minifier.csproj index 950a713eacc..b8bcd875a5c 100644 --- a/src/Minifier/Bit.Minifier/Bit.Minifier.csproj +++ b/src/Minifier/Bit.Minifier/Bit.Minifier.csproj @@ -9,7 +9,7 @@ An executable rather than an MSBuild task: Mono.Cecil then never shares a process with the copy ILLink.Tasks may have loaded, and one binary serves both MSBuild flavours. net8.0 + RollForward=Major runs on whatever runtime the SDK doing the publish carries, whichever version of it an app is on - the - tools a person runs themselves (the bit CLI's decode command) target net10.0 instead. --> + tools a person runs themselves (the bit CLI's decode command) target net11.0 instead. --> Exe net8.0 diff --git a/src/Minifier/Tests/Bit.Minifier.Tests.Friend/Bit.Minifier.Tests.Friend.csproj b/src/Minifier/Tests/Bit.Minifier.Tests.Friend/Bit.Minifier.Tests.Friend.csproj index 95cbdace82a..219a4c8eff1 100644 --- a/src/Minifier/Tests/Bit.Minifier.Tests.Friend/Bit.Minifier.Tests.Friend.csproj +++ b/src/Minifier/Tests/Bit.Minifier.Tests.Friend/Bit.Minifier.Tests.Friend.csproj @@ -2,7 +2,7 @@ - net10.0 + net11.0 enable enable false diff --git a/src/Minifier/Tests/Bit.Minifier.Tests.Library/Bit.Minifier.Tests.Library.csproj b/src/Minifier/Tests/Bit.Minifier.Tests.Library/Bit.Minifier.Tests.Library.csproj index 73b9a6449c6..c1af99f9aa0 100644 --- a/src/Minifier/Tests/Bit.Minifier.Tests.Library/Bit.Minifier.Tests.Library.csproj +++ b/src/Minifier/Tests/Bit.Minifier.Tests.Library/Bit.Minifier.Tests.Library.csproj @@ -2,7 +2,7 @@ - net10.0 + net11.0 enable enable false diff --git a/src/Minifier/Tests/Bit.Minifier.Tests/Bit.Minifier.Tests.csproj b/src/Minifier/Tests/Bit.Minifier.Tests/Bit.Minifier.Tests.csproj index b96ec003aa1..c1744b80a46 100644 --- a/src/Minifier/Tests/Bit.Minifier.Tests/Bit.Minifier.Tests.csproj +++ b/src/Minifier/Tests/Bit.Minifier.Tests/Bit.Minifier.Tests.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index 51d93fa72b9..b00d81b0c17 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,9 +1,9 @@ - + - net10.0 + net11.0 enable enable true @@ -11,18 +11,18 @@ - + - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index c3180da12a5..b6b12bda72a 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,9 +1,9 @@ - + - net10.0 + net11.0 enable enable True @@ -13,20 +13,20 @@ - + - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.Main.cs b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.Main.cs index f120ea4aa4f..2cae9147e95 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.Main.cs +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.Main.cs @@ -38,15 +38,7 @@ public static void Main(string[] args) var app = builder.Build(); // Configure the HTTP request pipeline. -#if (UseWebAssembly) - if (builder.Environment.IsDevelopment()) - { - app.UseWebAssemblyDebugging(); - } - else -#else if (builder.Environment.IsDevelopment() is false) -#endif { app.UseExceptionHandler("/Error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.cs b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.cs index f85bc66f67b..90767ebee65 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.cs +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.cs @@ -32,15 +32,7 @@ var app = builder.Build(); // Configure the HTTP request pipeline. -#if (UseWebAssembly) -if (builder.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else -#else if (builder.Environment.IsDevelopment() is false) -#endif { app.UseExceptionHandler("/Error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Properties/launchSettings.json b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Properties/launchSettings.json index 0df007392e7..22ca8deead5 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Properties/launchSettings.json +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Properties/launchSettings.json @@ -18,7 +18,6 @@ "dotnetRunMessages": true, "launchBrowser": true, //#if (UseWebAssembly) - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", //#endif "applicationUrl": "http://localhost:5500", "environmentVariables": { @@ -31,7 +30,6 @@ "dotnetRunMessages": true, "launchBrowser": true, //#if (UseWebAssembly) - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", //#endif "applicationUrl": "https://localhost:5501;http://localhost:5500", "environmentVariables": { @@ -43,7 +41,6 @@ "commandName": "IISExpress", "launchBrowser": true, //#if (UseWebAssembly) - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", //#endif "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json index 6ce09c7c748..9b40ef830e9 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.100", - "rollForward": "latestFeature" + "version": "11.0.100-rc.1.26425.128", + "rollForward": "disable" } } \ No newline at end of file diff --git a/src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj b/src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj index 66b8b8df608..f88a3966953 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj @@ -3,7 +3,7 @@ - net10.0 + net11.0 false content false diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml index dc1862cd727..796c10c28ee 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml @@ -247,11 +247,11 @@ jobs: displayName: 'Publish aab' inputs: targetType: 'inline' - script: 'dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -c Release -p:AndroidPackageFormat=aab -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="Boilerplate.keystore" -p:AndroidSigningKeyAlias=Boilerplate -p:AndroidSigningKeyPass="$(ANDROID_RELEASE_KEYSTORE_PASSWORD)" -p:AndroidSigningStorePass="$(ANDROID_RELEASE_SIGNING_PASSWORD)" -p:Version="$(APP_VERSION)" -f net10.0-android' + script: 'dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -c Release -p:AndroidPackageFormat=aab -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="Boilerplate.keystore" -p:AndroidSigningKeyAlias=Boilerplate -p:AndroidSigningKeyPass="$(ANDROID_RELEASE_KEYSTORE_PASSWORD)" -p:AndroidSigningStorePass="$(ANDROID_RELEASE_SIGNING_PASSWORD)" -p:Version="$(APP_VERSION)" -f net11.0-android' - script: | mkdir drop - cp ./src/Client/Boilerplate.Client.Maui/bin/Release/net10.0-android/*-Signed.* drop/ + cp ./src/Client/Boilerplate.Client.Maui/bin/Release/net11.0-android/*-Signed.* drop/ failOnStderr: true displayName: Copy apk/aab files to drop folder diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.codex/config.toml b/src/Templates/Boilerplate/Bit.Boilerplate/.codex/config.toml index 33081135f7c..09780629218 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.codex/config.toml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.codex/config.toml @@ -1,5 +1,5 @@ [mcp_servers.bitplatform] -url = "https://bitplatform.dev/mcp?v=10.7.0" +url = "https://bitplatform.dev/mcp?v=11.0.0" [mcp_servers.dev-mcp] url = "https://use-your-api-server-url-here.com/dev-mcp" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.cursor/mcp.json b/src/Templates/Boilerplate/Bit.Boilerplate/.cursor/mcp.json index 563aeaf744a..f1a7987820b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.cursor/mcp.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.cursor/mcp.json @@ -1,7 +1,7 @@ { "mcpServers": { "bitplatform": { - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" }, "dev-mcp": { "url": "https://use-your-api-server-url-here.com/dev-mcp" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json index 50b9b03a424..d57b8b18109 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Boilerplate", - "image": "mcr.microsoft.com/dotnet/sdk:10.0.402", + "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.1", "hostRequirements": { "cpus": 4 }, diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/01- Entity Framework Core.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/01- Entity Framework Core.md index f113297498e..6f3fd4191a3 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/01- Entity Framework Core.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/01- Entity Framework Core.md @@ -310,7 +310,7 @@ You do **NOT** need to run `dotnet ef database update` or `Update-Database` manu `bit new` adds the `Initial` migration to `/src/Server/Boilerplate.Server.Api/Infrastructure/Data/Migrations/` when it creates the project. A project created any other way starts without one, and `MigrateAsync()` refuses to run until it exists. Open a terminal in the `Boilerplate.Server.Api` project directory and run: ```bash -dnx dotnet-ef@10.0.13 -- migrations add Initial --output-dir Infrastructure/Data/Migrations --verbose +dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add Initial --output-dir Infrastructure/Data/Migrations --verbose ``` ### Adding Future Migrations @@ -318,7 +318,7 @@ dnx dotnet-ef@10.0.13 -- migrations add Initial --output-dir Infrastructure/Data When you modify entities or configurations, create a new migration; the app applies it on its next start: ```bash -dnx dotnet-ef@10.0.13 -- migrations add --output-dir Infrastructure/Data/Migrations --verbose +dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add --output-dir Infrastructure/Data/Migrations --verbose ``` If the model changes without a migration, `MigrateAsync()` stops the app with a "pending model changes" error until the migration is added. @@ -394,7 +394,7 @@ Add-Migration YourMigrationName -OutputDir Infrastructure\Data\Migrations -Conte Open a terminal in the `Boilerplate.Server.Web` project directory and run: ```bash -dnx dotnet-ef@10.0.13 -- migrations add YourMigrationName --context AppOfflineDbContext --output-dir Infrastructure/Data/Migrations --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose +dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add YourMigrationName --context AppOfflineDbContext --output-dir Infrastructure/Data/Migrations --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose ``` **Important Notes:** diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md index ec9da94f01a..f1d90e9f57e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md @@ -430,7 +430,7 @@ dotnet publish -c Release \ -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" \ -p:Version="1.0.0" \ -p:Environment=Production \ - -f net10.0-android + -f net11.0-android ``` 3. **Upload Artifact** @@ -488,7 +488,7 @@ dotnet publish -c Release \ -p:CodesignProvision="MyApp Provisioning" \ # Profile name -p:Version="1.0.0" \ -p:Environment=Production \ - -f net10.0-ios + -f net11.0-ios ``` 4. **Upload Artifact** diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/17- Automated Testing (Unitigration Tests).md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/17- Automated Testing (Unitigration Tests).md index 2dd4e3ada87..ca207fe4863 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/17- Automated Testing (Unitigration Tests).md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/17- Automated Testing (Unitigration Tests).md @@ -359,10 +359,10 @@ dotnet test --logger "console;verbosity=detailed" ### Playwright-Specific Commands: ```powershell # Install Playwright browsers (first time only) -pwsh src/Tests/bin/Debug/net10.0/playwright.ps1 install +pwsh src/Tests/bin/Debug/net11.0/playwright.ps1 install # Update Playwright browsers -pwsh src/Tests/bin/Debug/net10.0/playwright.ps1 install --force +pwsh src/Tests/bin/Debug/net11.0/playwright.ps1 install --force ``` --- diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index 8f809f09639..5bbca11fb2a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + @@ -436,7 +436,7 @@ dnx Bit.Cli --prerelease -- translate "servers": { "bitplatform": { "type": "http", - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" } } } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.gemini/settings.json b/src/Templates/Boilerplate/Bit.Boilerplate/.gemini/settings.json index dc2a6d1356d..5750d18f84f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.gemini/settings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.gemini/settings.json @@ -1,7 +1,7 @@ { "mcpServers": { "bitplatform": { - "httpUrl": "https://bitplatform.dev/mcp?v=10.7.0" + "httpUrl": "https://bitplatform.dev/mcp?v=11.0.0" }, "aspire": { "command": "aspire", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/ai-dlc.agent.md b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/ai-dlc.agent.md index 6214a317eac..c87cd3d2618 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/ai-dlc.agent.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/ai-dlc.agent.md @@ -36,7 +36,7 @@ description: Drives a feature end-to-end using the AI-Driven Development Lifecyc - After each task: verify correctness, run relevant checks ### 5. Validation -- Run build and tests after completing all tasks: `dotnet test` in `src/Tests`, after `pwsh src/Tests/bin/Debug/net10.0/playwright.ps1 install` once for the UI tests. Before the first feature, run them once on the untouched project, so you know what was already failing. **Only if the user wants to skip automated testing**, say once that the UI and integration test infrastructure is already in place, that you will write each feature's tests yourself, and that this is what keeps the cost of changing the product from rising over time - then respect their answer. See `.docs/17- Automated Testing (Unitigration Tests).md` +- Run build and tests after completing all tasks: `dotnet test` in `src/Tests`, after `pwsh src/Tests/bin/Debug/net11.0/playwright.ps1 install` once for the UI tests. Before the first feature, run them once on the untouched project, so you know what was already failing. **Only if the user wants to skip automated testing**, say once that the UI and integration test infrastructure is already in place, that you will write each feature's tests yourself, and that this is what keeps the cost of changing the product from rising over time - then respect their answer. See `.docs/17- Automated Testing (Unitigration Tests).md` - Invoke the **review** skill (`.github/agents/review.agent.md`) on the resulting changes - Confirm acceptance criteria are met - Against a deployment, read its real state through **dev-mcp** (below) rather than guessing diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/scaffold-entity.agent.md b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/scaffold-entity.agent.md index f56b45401d0..a00e05a2f31 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/scaffold-entity.agent.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/scaffold-entity.agent.md @@ -74,7 +74,7 @@ Generate a complete CRUD implementation for an entity including: - Configure unique indexes and relationships - Automatically registered in `AppDbContext` via `modelBuilder.ApplyConfigurationsFromAssembly()` - **Migration**: - - Run: `dnx dotnet-ef@10.0.13 -- migrations add {MigrationName} --output-dir Infrastructure/Data/Migrations --verbose` in `Boilerplate.Server.Api` project + - Run: `dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add {MigrationName} --output-dir Infrastructure/Data/Migrations --verbose` in `Boilerplate.Server.Api` project ### DTO - **Location**: `src/Shared/Features/{FeatureName}/` diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml index 1ec926a9f5b..e4f1f30646d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml @@ -318,14 +318,14 @@ jobs: ServerAddress: ${{ vars.SERVER_ADDRESS }} - name: Publish aab - run: dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -c Release -p:ApplicationId=${{ vars.APP_ID }} -p:AndroidPackageFormat=aab -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="Boilerplate.keystore" -p:AndroidSigningKeyAlias=Boilerplate -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:Environment=${{ inputs.ENV_NAME }} -f net10.0-android + run: dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -c Release -p:ApplicationId=${{ vars.APP_ID }} -p:AndroidPackageFormat=aab -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="Boilerplate.keystore" -p:AndroidSigningKeyAlias=Boilerplate -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:Environment=${{ inputs.ENV_NAME }} -f net11.0-android - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-bundle - path: src/Client/Boilerplate.Client.Maui/bin/Release/net10.0-android/*-Signed.* + path: src/Client/Boilerplate.Client.Maui/bin/Release/net11.0-android/*-Signed.* - name: Attest artifact if: github.event.repository.visibility == 'public' @@ -397,14 +397,14 @@ jobs: api-private-key: ${{ secrets.APPSTORE_API_KEY_PRIVATE_KEY }} - name: Build ipa - run: dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -p:ApplicationId=${{ vars.APP_ID }} -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="${{ vars.IOS_CODE_SIGN_PROVISION }}" -p:Version="${{ vars.APP_VERSION }}" -p:Environment=${{ inputs.ENV_NAME }} -f net10.0-ios + run: dotnet publish src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj -p:ApplicationId=${{ vars.APP_ID }} -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="${{ vars.IOS_CODE_SIGN_PROVISION }}" -p:Version="${{ vars.APP_VERSION }}" -p:Environment=${{ inputs.ENV_NAME }} -f net11.0-ios - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: iOS-bundle - path: src/Client/Boilerplate.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa + path: src/Client/Boilerplate.Client.Maui/bin/release/net11.0-ios/ios-arm64/publish/*.ipa - name: Attest artifact if: github.event.repository.visibility == 'public' diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.junie/mcp/mcp.json b/src/Templates/Boilerplate/Bit.Boilerplate/.junie/mcp/mcp.json index ee5fc6aae23..416781b21b8 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.junie/mcp/mcp.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.junie/mcp/mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "bitplatform": { "type": "http", - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" }, "dev-mcp": { "type": "http", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.mcp.json b/src/Templates/Boilerplate/Bit.Boilerplate/.mcp.json index 25811256262..de674b29738 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.mcp.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "bitplatform": { "type": "http", - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" }, "dev-mcp": { "type": "http", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.vscode/mcp.json b/src/Templates/Boilerplate/Bit.Boilerplate/.vscode/mcp.json index e2e2175fede..5e01d86bd7c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.vscode/mcp.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.vscode/mcp.json @@ -2,7 +2,7 @@ "servers": { "bitplatform": { "type": "http", - "url": "https://bitplatform.dev/mcp?v=10.7.0" + "url": "https://bitplatform.dev/mcp?v=11.0.0" }, "dev-mcp": { "type": "http", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/AGENTS.md b/src/Templates/Boilerplate/Bit.Boilerplate/AGENTS.md index e8a8d2fb549..65eda5e8a74 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/AGENTS.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/AGENTS.md @@ -5,7 +5,7 @@ You will be working with the following key technologies: * **C# 14.0** -* **ASP.NET Core 10.0** +* **ASP.NET Core 11.0** * **Blazor**: Component-based web UI framework * **.NET MAUI Blazor Hybrid**: Cross-platform app development * **ASP.NET Core Identity**: Authentication and authorization @@ -91,7 +91,7 @@ Before implementing any changes, you **MUST** complete the following: - **Android**: the WebView is debuggable, and its CDP endpoint is a local abstract socket on the device. Expose it with `adb shell pidof ` then `adb forward tcp:9222 localabstract:webview_devtools_remote_` (pick another local port if the Windows app already holds 9222), and attach with Playwright exactly like Windows. - **Assume hot reload is working**: `.cs`, `.razor`, `.scss` and `.ts` changes are picked up automatically by the running app, so after an edit do NOT rebuild the project and do NOT reload/refresh the web app. Only rebuild or refresh if you can't see what you were expecting after your change. - **Run tests**: Run `dotnet test` in the src/Tests directory. -- **Add new migrations**: Run `dnx dotnet-ef@10.0.13 -- migrations add --output-dir Infrastructure/Data/Migrations --verbose` in src/Server/Boilerplate.Server.Api project directory. +- **Add new migrations**: Run `dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add --output-dir Infrastructure/Data/Migrations --verbose` in src/Server/Boilerplate.Server.Api project directory. - **Generate Resx C# code**: Run `dotnet build -t:PrepareResources` in the src/Shared directory. ## 5. Coding Conventions & Best Practices diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/global.json b/src/Templates/Boilerplate/Bit.Boilerplate/global.json index 48af5972b20..17e6b39aff1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/global.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/global.json @@ -1,7 +1,7 @@ { "sdk": { - "version": "10.0.100", - "rollForward": "latestFeature" + "version": "11.0.100-rc.1.26425.128", + "rollForward": "disable" }, "test": { "runner": "Microsoft.Testing.Platform" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj index 8b1cc71c8b1..b125fd6f671 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor index 39a25392d9d..8a0188f9902 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor @@ -13,6 +13,20 @@
+ @if (IsKiosk) + { + + + @Localizer[nameof(AppStrings.KioskMessage)] + + + + @Localizer[nameof(AppStrings.KioskExitApp)] + + + + } + @Localizer[nameof(AppStrings.HomePanelTitle)]
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs index 09a3e573628..a1b15060bc1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs @@ -47,6 +47,14 @@ private string BuildSiteJsonLd() }.ToJsonString(); } + /// + /// The demo Windows app ships with kiosk mode on, so the page offers the way out that the lockdown takes away. + /// + private bool IsKiosk => AppPlatform.IsWindows && bool.TryParse(Configuration["Kiosk:Enabled"], out var enabled) && enabled; + + /// Nothing else closes a kiosk window: the close button is gone and WM_CLOSE is refused. + private void ExitApp() => Environment.Exit(0); + //#if(module != "Sales") private GitHubStats? gitHubStats; diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs index c77a54c1e0d..6301465b5b3 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs @@ -144,7 +144,7 @@ private async Task DoSignIn() { CleanModel(); - if (validatorRef?.EditContext.Validate() is false) return; + if (validatorRef is not null && await validatorRef.EditContext.ValidateAsync(CurrentCancellationToken) is false) return; if (isNewUser is false) { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Data/README.md b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Data/README.md index 4a5d069d132..42e39ed5c64 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Data/README.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Data/README.md @@ -28,7 +28,7 @@ Add-Migration YourMigrationName -OutputDir Infrastructure\Data\Migrations -Conte ``` Or open a terminal in your Boilerplate.Server.Web project directory and run followings: ```bash -dnx dotnet-ef@10.0.13 -- migrations add YourMigrationName --context AppOfflineDbContext --output-dir Infrastructure/Data/Migrations --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose +dnx dotnet-ef@11.0.0-rc.1.26425.128 -- migrations add YourMigrationName --context AppOfflineDbContext --output-dir Infrastructure/Data/Migrations --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose ``` *Note*: If you encounter any problem in running these commands, first make sure that the solution builds successfully. @@ -53,7 +53,7 @@ Optimize-DbContext -Context AppOfflineDbContext -OutputDir Infrastructure/Data/C **OR** Run the following command in Boilerplate.Server.Web directory: ```bash -dnx dotnet-ef@10.0.13 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace Boilerplate.Client.Core.Infrastructure.Data --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose +dnx dotnet-ef@11.0.0-rc.1.26425.128 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace Boilerplate.Client.Core.Infrastructure.Data --project ../../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj --verbose ``` By adhering to these steps, you leverage EF Core compiled models to boost the performance of your application, ensuring an optimized and efficient data access method. \ No newline at end of file diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs index dd9d10e88b1..36157bd8185 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs @@ -139,7 +139,7 @@ public IServiceCollection AddClientCoreProjectServices(IConfiguration configurat , dbContextInitializer: async (_, dbContext) => { if (AppEnvironment.IsDevelopment() is false && dbContext.Model.GetType() == typeof(EntityFrameworkCore.Metadata.RuntimeModel)) - throw new InvalidOperationException("AppOfflineDbContext has not been optimized. Run 'dnx dotnet-ef@10.0.13 -- dbcontext optimize --context AppOfflineDbContext' before publishing, and re-run it after every model or migration change. See Boilerplate.Client.Core/Infrastructure/Data/README.md."); + throw new InvalidOperationException("AppOfflineDbContext has not been optimized. Run 'dnx dotnet-ef@11.0.0-rc.1.26425.128 -- dbcontext optimize --context AppOfflineDbContext' before publishing, and re-run it after every model or migration change. See Boilerplate.Client.Core/Infrastructure/Data/README.md."); await Task.Run(async () => await dbContext.Database.MigrateAsync()); } @@ -178,6 +178,11 @@ public IServiceCollection AddClientCoreProjectServices(IConfiguration configurat } }) .WithAutomaticReconnect(sp.GetRequiredService()) + .WithAuthenticationRefresh(options => + { + options.EnableAutoRefresh = true; + options.RefreshBeforeExpiration = TimeSpan.FromMinutes(1); + }) .WithUrl(new Uri(absoluteServerAddressProvider.GetAddress(), "app-hub?origin=" + Uri.EscapeDataString(xOrigin)), options => { //#if (redis == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj index 7c36d549178..5564a04c5bc 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj @@ -1,11 +1,11 @@ - net10.0-android;net10.0-ios;net10.0-maccatalyst - $(TargetFrameworks);net10.0-windows10.0.19041.0 - net10.0-android + net11.0-android;net11.0-ios;net11.0-maccatalyst + $(TargetFrameworks);net11.0-windows10.0.19041.0 + net11.0-android - + Exe true true @@ -18,8 +18,6 @@ com.bitplatform.template - - True true $(NoWarn);ClassWithoutModifierAnalyzer @@ -59,19 +57,13 @@ r8 True - - false - True Platforms/iOS/Entitlements.Development.plist - True - - -all Platforms/iOS/Entitlements.Production.plist @@ -84,23 +76,15 @@ Platforms/MacCatalyst/Entitlements.Production.plist true - - -all - - - - - - @@ -157,9 +141,9 @@ - + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs index a122d0460b6..301439f483d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs @@ -107,7 +107,10 @@ bool HandleAppLink(NSUserActivity? userActivity) var mauiApp = builder.Build(); - mauiApp.Services.GetService()?.Validate(); + foreach (var startupValidator in mauiApp.Services.GetServices()) + { + startupValidator.ValidateAsync().GetAwaiter().GetResult(); + } mauiApp.Services.GetRequiredService() .Subscribe(ClientAppMessages.PAGE_DATA_CHANGED, async (args) => diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html index 73c2eb1b66e..262560fad64 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html @@ -164,7 +164,7 @@
- + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj index 3d4a7865f86..6a3a566dc9f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 false false diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs index d9b1c985ab0..e6ea152f1fe 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs @@ -43,7 +43,10 @@ public static async Task Main(string[] args) var host = builder.Build(); - host.Services.GetService()?.Validate(); + foreach (var startupValidator in host.Services.GetServices()) + { + await startupValidator.ValidateAsync(); + } AppDomain.CurrentDomain.UnhandledException += (_, e) => LogException(e.ExceptionObject, reportedBy: nameof(AppDomain.UnhandledException), host); TaskScheduler.UnobservedTaskException += (_, e) => diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json index 27ed8183566..33721d5a5fb 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:4030", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index 8c814af5477..dfe17a384c8 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) @@ -80,7 +80,7 @@ self.externalAssets = [ }, ...(isServerHosted ? [ { - url: "_framework/bit.blazor.web.es2019.js" + url: "_framework/blazor.web.js" }, { "url": "Boilerplate.Server.Web.styles.css" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj index 5b78ba022c0..65c4cd8ce33 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj @@ -2,7 +2,7 @@ WinExe - net10.0-windows + net11.0-windows enable enable true @@ -32,13 +32,13 @@ - + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs index 36f40d8b4e3..32bc279db64 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs @@ -1,5 +1,6 @@ //+:cnd:noEmit using Boilerplate.Client.Core; +using Boilerplate.Client.Windows.Infrastructure.Services; namespace Boilerplate.Client.Windows; @@ -7,6 +8,8 @@ public class ClientWindowsSettings : ClientCoreSettings { public WindowsUpdateOptions? WindowsUpdate { get; set; } + public KioskOptions? Kiosk { get; set; } + public override IEnumerable Validate(ValidationContext validationContext) { var validationResults = base.Validate(validationContext).ToList(); @@ -16,6 +19,11 @@ public override IEnumerable Validate(ValidationContext validat Validator.TryValidateObject(WindowsUpdate, new ValidationContext(WindowsUpdate), validationResults, true); } + if (Kiosk is not null) + { + Validator.TryValidateObject(Kiosk, new ValidationContext(Kiosk), validationResults, true); + } + return validationResults; } } @@ -26,3 +34,21 @@ public partial class WindowsUpdateOptions public string? FilesUrl { get; set; } } + +/// +/// Options of the .NET 11 and of . +/// +public partial class KioskOptions +{ + /// + /// Starts the app full screen, above the taskbar, and locks it there: neither F11 nor Escape leaves it, the + /// window cannot be closed, the key combinations that reach the desktop are swallowed and the browser's own + /// menus, dev tools, zoom and shortcuts are off. When off, F11 still toggles full screen and Escape leaves it. + /// + public bool Enabled { get; set; } + + /// + /// Keeps the display and the machine awake for as long as the app runs. + /// + public bool PreventSleep { get; set; } +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Infrastructure/Services/WindowsKioskGuard.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Infrastructure/Services/WindowsKioskGuard.cs new file mode 100644 index 00000000000..e979d62322b --- /dev/null +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Infrastructure/Services/WindowsKioskGuard.cs @@ -0,0 +1,72 @@ +//+:cnd:noEmit +using System.Runtime.InteropServices; + +namespace Boilerplate.Client.Windows.Infrastructure.Services; + +/// +/// The lockdown a kiosk needs on top of , which only takes the window full screen: +/// the key combinations that reach the desktop are swallowed, and the window refuses to close - the app's own exit +/// is the only way out. Ctrl+Alt+Del is out of reach of every user mode process - block it with the Windows policy +/// of the kiosk machine. +/// +public static partial class WindowsKioskGuard +{ + private const int WH_KEYBOARD_LL = 13; + private const int WM_KEYDOWN = 0x0100; + private const int WM_SYSKEYDOWN = 0x0104; + + private delegate nint HookProc(int code, nint wParam, nint lParam); + + private static Form kioskForm = default!; + + // The field roots the delegate; a local would let the GC collect what the hook calls back into. + private static HookProc hookProc = default!; + + /// + /// Locks down for as long as the process runs; Windows drops the hook when it exits. + /// + public static void Apply(Form form) + { + kioskForm = form; + hookProc = OnKey; + SetWindowsHookExW(WH_KEYBOARD_LL, hookProc, 0, 0); + + // Windows itself still gets to shut down; only the person in front of the machine is refused. + form.FormClosing += (_, e) => e.Cancel = e.CloseReason is CloseReason.UserClosing; + } + + private static nint OnKey(int code, nint wParam, nint lParam) + { + // Only while the kiosk window is in front: a global block would take the desktop away from whatever else runs. + if (code >= 0 && wParam is WM_KEYDOWN or WM_SYSKEYDOWN + && GetForegroundWindow() == kioskForm.Handle && IsBlocked((Keys)Marshal.ReadInt32(lParam))) + return 1; + + return CallNextHookEx(0, code, wParam, lParam); + } + + private static bool IsBlocked(Keys key) => key switch + { + Keys.LWin or Keys.RWin => true, // the start menu and every Win+? combination + Keys.Apps => true, // the context menu key + Keys.Tab or Keys.Escape or Keys.F4 or Keys.Space when IsDown(Keys.Menu) => true, // Alt+Tab, Alt+Esc, Alt+F4, Alt+Space + Keys.Escape when IsDown(Keys.ControlKey) => true, // Ctrl+Esc, Ctrl+Shift+Esc + _ => false + }; + + // GetAsyncKeyState, not Control.ModifierKeys: in a low level hook the key has not reached the queue the latter reads. + private static bool IsDown(Keys key) => (GetAsyncKeyState((int)key) & 0x8000) is not 0; + + [DllImport("user32.dll", SetLastError = true)] + private static extern nint SetWindowsHookExW(int idHook, HookProc lpfn, nint hMod, uint dwThreadId); + + // hhk is documented as ignored. + [DllImport("user32.dll")] + private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam); + + [DllImport("user32.dll")] + private static extern nint GetForegroundWindow(); + + [DllImport("user32.dll")] + private static extern short GetAsyncKeyState(int vKey); +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs index 487aac6b21b..43573da688b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs @@ -43,7 +43,10 @@ public static void Main(string[] args) services.AddClientWindowsProjectServices(configuration); Services = services.BuildServiceProvider(); - Services.GetService()?.Validate(); + foreach (var startupValidator in Services.GetServices()) + { + startupValidator.ValidateAsync().GetAwaiter().GetResult(); + } if (CultureInfoManager.InvariantGlobalization is false) { @@ -73,7 +76,20 @@ public static void Main(string[] args) WindowState = FormWindowState.Maximized, BackColor = backgroundColor, FormCaptionBackColor = backgroundColor, - Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath) + Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath), + FormRevealMode = FormRevealMode.Deferred + }; + + var kioskOptions = Services.GetRequiredService().Kiosk; + var isKiosk = kioskOptions?.Enabled is true; + kioskModeManagerReferenceToKeepAlive = new KioskModeManager + { + ContainerControl = form, + TopMostInFullScreen = true, + AlwaysOn = kioskOptions?.PreventSleep is true, + ToggleFullScreenKeys = isKiosk ? Keys.None : Keys.F11, + EscapeExitsFullScreen = isKiosk is false, + FullScreen = isKiosk }; var pubSubService = Services.GetRequiredService(); pubSubHandlerReferenceToKeepAlive = pubSubService.Subscribe(ClientAppMessages.PAGE_DATA_CHANGED, async args => @@ -123,11 +139,31 @@ or CoreWebView2PermissionKind.ClipboardRead args.Handled = true; args.State = CoreWebView2PermissionState.Allow; }; + + if (isKiosk) + { + var webViewSettings = blazorWebView.WebView.CoreWebView2.Settings; + webViewSettings.AreDevToolsEnabled = false; + webViewSettings.AreDefaultContextMenusEnabled = false; + webViewSettings.AreBrowserAcceleratorKeysEnabled = false; + webViewSettings.IsZoomControlEnabled = false; + webViewSettings.IsSwipeNavigationEnabled = false; + webViewSettings.IsStatusBarEnabled = false; + blazorWebView.WebView.AllowExternalDrop = false; + // A second window would be one the lockdown does not own, and its chrome is the way back to the desktop. + blazorWebView.WebView.CoreWebView2.NewWindowRequested += (_, args) => args.Handled = true; + } + _ = StartBlazor(blazorWebView); }; form.Controls.Add(blazorWebView); + if (isKiosk) + { + WindowsKioskGuard.Apply(form); + } + Application.Run(form); } @@ -182,4 +218,9 @@ private static void LogException(object? error, string reportedBy) /// Strong root for the PAGE_DATA_CHANGED subscription, which PubSubService itself only holds weakly. /// private static Action? pubSubHandlerReferenceToKeepAlive; + + /// + /// Strong root for the kiosk manager, which only the form it hooks would otherwise keep alive. + /// + private static KioskModeManager? kioskModeManagerReferenceToKeepAlive; } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json index 77d546e5b45..d221667ad53 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json @@ -16,5 +16,9 @@ "FilesUrl": null, "AutoReload": false }, + "Kiosk": { + "Enabled": false, + "PreventSleep": false + }, "$schema": "https://json.schemastore.org/appsettings.json" } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props index 71542fed745..d3666339d57 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props @@ -53,7 +53,7 @@ 14.0 15.0 - 15.0 + 17.0 26.0 10.0.17763.0 10.0.17763.0 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 7ac38671619..28664467d61 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,43 +1,43 @@ - + - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - - - - - - + + + + + + + + @@ -54,11 +54,11 @@ - - - - - + + + + + @@ -93,9 +93,9 @@ - + - + @@ -106,20 +106,24 @@ - - - - - - - - - + + + + + + + + + + - - + + @@ -127,27 +131,27 @@ - - + + - + - - - - + + + + - - - + + + - - - - + + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Boilerplate.Tests.E2E.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Boilerplate.Tests.E2E.csproj index b30500c213b..317e57787dd 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Boilerplate.Tests.E2E.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Boilerplate.Tests.E2E.csproj @@ -4,7 +4,7 @@ Repository-only: template.json excludes src/Internal/** from the packed template. --> - net10.0 + net11.0 enable 154C08DF-B089-4D8F-91F3-A95D2A4A27D2 $(MSBuildProjectDirectory)\.runsettings diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs index 4700b023eaf..e8dadda72d9 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs @@ -39,15 +39,15 @@ public partial class WebAppDownloadSizeTests : AppPageTest /// them from the failure message whenever a deliberate change moves an app's size. /// [TestMethod] - [DataRow(DeployedApps.AdminPanel, 5.5, DisplayName = nameof(DeployedApps.AdminPanel))] - [DataRow(DeployedApps.AdminPanelWasmStandalone, 5.4, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] + [DataRow(DeployedApps.AdminPanel, 5.6, DisplayName = nameof(DeployedApps.AdminPanel))] + [DataRow(DeployedApps.AdminPanelWasmStandalone, 5.9, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] - [DataRow(DeployedApps.Todo, 5.1, DisplayName = nameof(DeployedApps.Todo))] - [DataRow(DeployedApps.TodoAot, 8.6, DisplayName = nameof(DeployedApps.TodoAot))] - [DataRow(DeployedApps.TodoSmall, 3.7, DisplayName = nameof(DeployedApps.TodoSmall))] - [DataRow(DeployedApps.TodoOffline, 7.7, DisplayName = nameof(DeployedApps.TodoOffline))] + [DataRow(DeployedApps.Todo, 5.4, DisplayName = nameof(DeployedApps.Todo))] + [DataRow(DeployedApps.TodoAot, 9.6, DisplayName = nameof(DeployedApps.TodoAot))] + [DataRow(DeployedApps.TodoSmall, 4.4, DisplayName = nameof(DeployedApps.TodoSmall))] + [DataRow(DeployedApps.TodoOffline, 8.3, DisplayName = nameof(DeployedApps.TodoOffline))] - [DataRow(DeployedApps.Sales, 5.5, DisplayName = nameof(DeployedApps.Sales))] + [DataRow(DeployedApps.Sales, 5.7, DisplayName = nameof(DeployedApps.Sales))] public async Task FirstVisitDownloadSize_Should_NotRegress(string url, double expectedMegabytes) { // Qualified because the inherited BrowserType property shadows the type of the same name. diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/Kiosk/WindowsKioskTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/Kiosk/WindowsKioskTests.cs new file mode 100644 index 00000000000..6695ea2c266 --- /dev/null +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/Kiosk/WindowsKioskTests.cs @@ -0,0 +1,153 @@ +using Boilerplate.Tests.E2E.Infrastructure.Services; + +namespace Boilerplate.Tests.E2E.Features.Kiosk; + +/// +/// Kiosk mode, which only the AdminPanel Windows app is built with (Kiosk.Enabled in +/// .github/workflows/admin-sample.cd.yml) - so Todo and Sales are here as the contrast that proves each assertion is +/// about the kiosk rather than about every Client.Windows app. +/// +/// Not parallelized: every Client.Windows app answers on the same hard-coded CDP port 9222 (see +/// ). +/// +/// +[TestClass, TestCategory(TestCategories.Windows), DoNotParallelize, Retry(2)] +public partial class WindowsKioskTests : AppTestBase +{ + protected override IAppOpener AppOpener => new WindowsAppOpener(); + + /// + /// The lockdown takes away every way out of the app, so the home page offers one back - but only where it is + /// needed, since an exit button on a window a user can simply close is noise. + /// + [TestMethod] + [DataRow(App.AdminPanel, true, DisplayName = "AdminPanel (kiosk)")] + [DataRow(App.Todo, false, DisplayName = "Todo")] + [DataRow(App.Sales, false, DisplayName = "Sales")] + public async Task HomePage_Should_OfferTheWayOutOnlyInTheKioskApp(App app, bool isKiosk) + { + var page = await LaunchApp(app); + + await GoHome(page); + + var exit = ExitButton(page); + + if (isKiosk) + { + await Expect(exit).ToBeVisibleAsync(); + } + else + { + await Expect(exit).ToHaveCountAsync(0); + } + } + + /// + /// What KioskModeManager does to the window: no title bar and no resize border to reach a Close through, above the + /// taskbar, and over the whole monitor rather than the 1024x768 the form is built with. + /// + [TestMethod] + [DataRow(App.AdminPanel, true, DisplayName = "AdminPanel (kiosk)")] + [DataRow(App.Todo, false, DisplayName = "Todo")] + public async Task Window_Should_BeBorderlessAndTopMostOnlyInTheKioskApp(App app, bool isKiosk) + { + await LaunchApp(app); + + var window = WindowsWindow.Of(DeployedApps.WindowsAppIdOf(app)!); + + Assert.AreEqual(isKiosk is false, WindowsWindow.HasCaption(window), $"{app}'s window {(isKiosk ? "still has" : "lost")} its title bar."); + Assert.AreEqual(isKiosk, WindowsWindow.IsTopMost(window), $"{app}'s window is {(isKiosk ? "not " : "")}topmost."); + + if (isKiosk) + { + Assert.AreEqual(WindowsWindow.ScreenBounds(window), WindowsWindow.RestoredBounds(window), $"{app}'s window does not cover its monitor."); + } + } + + /// + /// The close a person performs - Alt+F4, or the X that is no longer there. Refused in the kiosk app and nowhere + /// else; a Windows shutdown and a Task Manager close arrive as other reasons and are let through, which is why + /// this sends SC_CLOSE rather than WM_CLOSE (see ). + /// + [TestMethod] + [DataRow(App.AdminPanel, true, DisplayName = "AdminPanel (kiosk)")] + [DataRow(App.Todo, false, DisplayName = "Todo")] + public async Task Window_Should_RefuseTheUsersCloseOnlyInTheKioskApp(App app, bool isKiosk) + { + await LaunchApp(app); + + var window = WindowsWindow.Of(DeployedApps.WindowsAppIdOf(app)!); + + WindowsWindow.RequestUserClose(window); + + var exited = window.WaitForExit(TimeSpan.FromSeconds(30)); + + Assert.AreEqual(isKiosk, exited is false, isKiosk + ? $"{app} closed although kiosk mode refuses the user's own close." + : $"{app} did not close within 30 seconds of the close every window accepts."); + } + + /// + /// The home page's button is the only way out of a kiosk, so it has to actually end the process - not navigate, + /// not sign out. + /// + [TestMethod] + public async Task ExitButton_Should_EndTheKioskApp() + { + var page = await LaunchApp(App.AdminPanel); + + await GoHome(page); + + var window = WindowsWindow.Of(DeployedApps.AdminPanelWindowsAppId); + + try + { + await ExitButton(page).ClickAsync(); + } + catch (PlaywrightException) + { + // Environment.Exit takes the WebView down with the process, which can land before the click is answered. + } + + Assert.IsTrue(window.WaitForExit(TimeSpan.FromSeconds(30)), "The exit button did not end the app."); + Assert.AreEqual(0, window.ExitCode, "The kiosk app did not exit cleanly."); + } + + /// + /// 's launch with a stop that tolerates an app these tests have already ended. + /// + private async Task LaunchApp(App app) + { + var windowsAppId = DeployedApps.WindowsAppIdOf(app); + + if (windowsAppId is null) + Assert.Inconclusive($"{app} has no Windows build."); + + var (page, stop) = await Playwright.LaunchWindowsApp(windowsAppId!); + + RegisterForCleanup(async () => + { + try + { + await stop(); + } + catch (PlaywrightException) + { + IPlaywrightExtensions.StopWindowsApps(); + } + }); + + return page; + } + + /// The home page, rendered by the running app - the banner is not in the prerendered html of any app. + private async Task GoHome(IPage page) + { + await WaitUntilInteractive(page); + await GoToWhenInteractive(page, PageUrls.Home); + + await Expect(page.Locator("section .root-stack").First).ToBeVisibleAsync(); + } + + private static ILocator ExitButton(IPage page) => page.GetByRole(AriaRole.Button, new() { Name = AppStrings.KioskExitApp }); +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Infrastructure/Services/WindowsWindow.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Infrastructure/Services/WindowsWindow.cs new file mode 100644 index 00000000000..02da17a0a1f --- /dev/null +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Infrastructure/Services/WindowsWindow.cs @@ -0,0 +1,141 @@ +using System.Drawing; +using System.Runtime.InteropServices; + +namespace Boilerplate.Tests.E2E.Infrastructure.Services; + +/// +/// The window an installed Client.Windows app draws its WebView in. Most of what the kiosk lockdown does is out there +/// rather than in the page - a borderless, topmost window over the whole screen that refuses the user's own close - so +/// Windows is the only one that can be asked about it. +/// +public static class WindowsWindow +{ + private const int GWL_STYLE = -16; + private const int GWL_EXSTYLE = -20; + private const int WS_CAPTION = 0x00C00000; + private const int WS_THICKFRAME = 0x00040000; + private const int WS_EX_TOPMOST = 0x00000008; + private const uint WM_SYSCOMMAND = 0x0112; + private const nint SC_CLOSE = 0xF060; + private const uint MONITOR_DEFAULTTONEAREST = 2; + + /// + /// The running process of , once it has a window. + /// kills every Client.Windows app before starting one, so + /// there is never a second candidate. + /// + public static Process Of(string windowsAppId) + { + var deadline = DateTimeOffset.UtcNow + TimeSpan.FromMinutes(1); + + while (true) + { + var app = Process.GetProcessesByName(windowsAppId).FirstOrDefault(); + + if (app is not null) + { + app.Refresh(); + + if (app.MainWindowHandle is not 0) + { + _ = app.SafeHandle; // Opened while it is alive, or ExitCode is refused on a process we did not start. + return app; + } + } + + if (DateTimeOffset.UtcNow >= deadline) + throw new TimeoutException($"'{windowsAppId}' had no window within a minute of the test attaching to its WebView."); + + Thread.Sleep(TimeSpan.FromMilliseconds(250)); + } + } + + /// The title bar and the resize border - the one place a kiosk user could reach a Close button. + public static bool HasCaption(Process app) => (GetWindowLongW(app.MainWindowHandle, GWL_STYLE) & (WS_CAPTION | WS_THICKFRAME)) is not 0; + + /// Above the taskbar and everything else, which is what TopMostInFullScreen asks for. + public static bool IsTopMost(Process app) => (GetWindowLongW(app.MainWindowHandle, GWL_EXSTYLE) & WS_EX_TOPMOST) is not 0; + + /// + /// The bounds the window has when it is not minimized. Read through the placement rather than + /// GetWindowRect because a run that is not headed starts the apps minimized (see + /// ). + /// + public static Rectangle RestoredBounds(Process app) + { + var placement = new WINDOWPLACEMENT { length = Marshal.SizeOf() }; + + if (GetWindowPlacement(app.MainWindowHandle, ref placement) is false) + throw new InvalidOperationException($"Windows did not report the placement of '{app.ProcessName}' ({Marshal.GetLastWin32Error()})."); + + return ToRectangle(placement.rcNormalPosition); + } + + /// The monitor the window is on, which is what KioskModeManager sizes a full screen window to. + public static Rectangle ScreenBounds(Process app) + { + var info = new MONITORINFO { cbSize = Marshal.SizeOf() }; + + if (GetMonitorInfoW(MonitorFromWindow(app.MainWindowHandle, MONITOR_DEFAULTTONEAREST), ref info) is false) + throw new InvalidOperationException($"Windows did not report the monitor of '{app.ProcessName}' ({Marshal.GetLastWin32Error()})."); + + return ToRectangle(info.rcMonitor); + } + + /// + /// The close a person performs - Alt+F4, or the title bar's X. WinForms turns SC_CLOSE into + /// CloseReason.UserClosing, the one reason WindowsKioskGuard refuses; a plain WM_CLOSE arrives as + /// TaskManagerClosing and is let through deliberately, as is a Windows shutdown. + /// + public static void RequestUserClose(Process app) + { + if (PostMessageW(app.MainWindowHandle, WM_SYSCOMMAND, SC_CLOSE, 0) is false) + throw new InvalidOperationException($"Windows did not deliver the close request to '{app.ProcessName}' ({Marshal.GetLastWin32Error()})."); + } + + private static Rectangle ToRectangle(RECT rect) => Rectangle.FromLTRB(rect.left, rect.top, rect.right, rect.bottom); + + [StructLayout(LayoutKind.Sequential)] + private struct RECT + { + public int left, top, right, bottom; + } + + [StructLayout(LayoutKind.Sequential)] + private struct WINDOWPLACEMENT + { + public int length; + public int flags; + public int showCmd; + public Point ptMinPosition; + public Point ptMaxPosition; + public RECT rcNormalPosition; + } + + [StructLayout(LayoutKind.Sequential)] + private struct MONITORINFO + { + public int cbSize; + public RECT rcMonitor; + public RECT rcWork; + public int dwFlags; + } + + [DllImport("user32.dll")] + private static extern int GetWindowLongW(nint hWnd, int nIndex); + + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool GetWindowPlacement(nint hWnd, ref WINDOWPLACEMENT lpwndpl); + + [DllImport("user32.dll")] + private static extern nint MonitorFromWindow(nint hWnd, uint dwFlags); + + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool GetMonitorInfoW(nint hMonitor, ref MONITORINFO lpmi); + + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool PostMessageW(nint hWnd, uint msg, nint wParam, nint lParam); +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj index 14e2fdb2714..38dc3a6838d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 AC87AA5B-4B37-4E52-8468-2D5DF24AF256 PrepareResources;$(CompileDependsOn) Default diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs new file mode 100644 index 00000000000..b1204664334 --- /dev/null +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs @@ -0,0 +1,27 @@ +//+:cnd:noEmit +using Microsoft.AspNetCore.Http.Connections; + +namespace Boilerplate.Server.Api.Infrastructure.SignalR; + +public static class AppHubOptions +{ + public static void Configure(HttpConnectionDispatcherOptions options) + { + options.AllowStatefulReconnects = true; + + options.EnableAuthenticationRefresh = true; + options.CloseOnAuthenticationExpiration = true; + + options.OnAuthenticationRefresh = context => + { + var previous = context.PreviousUser; + var refreshed = context.NewUser; + + if (previous.IsAuthenticated() is false || refreshed.IsAuthenticated() is false) + return Task.FromResult(false); + + return Task.FromResult(previous.GetUserId() == refreshed.GetUserId() && + previous.GetSessionId() == refreshed.GetSessionId()); + }; + } +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Middlewares.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Middlewares.cs index ce4251c9e9b..465127c85e1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Middlewares.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Middlewares.cs @@ -85,7 +85,7 @@ public static void ConfigureMiddlewares(this WebApplication app) }).WithTags("Test").CacheOutput("AppResponseCachePolicy").ExcludeFromDescription(); //#if (signalR == true) - app.MapHub("/app-hub", options => options.AllowStatefulReconnects = true); + app.MapHub("/app-hub", Infrastructure.SignalR.AppHubOptions.Configure); // Chatbot tools. Isolated from /dev-mcp. Served under the api version the controllers carry as well. foreach (var path in new[] { OAuthResources.McpPath, $"{OAuthResources.McpPath}/v1" }) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj index 134fe46ba24..3d2c5a184f7 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj @@ -2,7 +2,7 @@ Exe - net10.0 + net11.0 true public AC87AA5B-4B37-4E52-8468-2D5DF24AF256 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj index 6435bfce28e..f2522b474d1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 true diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj index b47793ff1eb..1546ea31d02 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 AC87AA5B-4B37-4E52-8468-2D5DF24AF256 false @@ -17,7 +17,6 @@ - diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor index cd8a20d7946..ad25d9245b1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor @@ -132,8 +132,8 @@ actually carries pre-rendered html - otherwise the caller gets a page with no content AND no way to fetch any. *@ @if ((HttpContext.Request.IsLightHouseRequest() || HttpContext.Request.IsCrawlerClient()) is false || noPrerenderedContent) { - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs index 50e969ad644..978021b4d3d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs @@ -47,11 +47,7 @@ public void ConfigureMiddlewares() app.UseExceptionHandler(); //#endif - if (env.IsDevelopment()) - { - app.UseWebAssemblyDebugging(); - } - else + if (env.IsDevelopment() is false) { app.UseHttpsRedirection(); app.UseResponseCompression(); @@ -194,7 +190,7 @@ public void ConfigureMiddlewares() // and use the Server.Web project solely as a Blazor Server or pre-rendering service provider. throw new InvalidOperationException("Azure SignalR is not supported with Blazor Server and Auto"); } - app.MapHub("/app-hub", options => options.AllowStatefulReconnects = true); + app.MapHub("/app-hub", Api.Infrastructure.SignalR.AppHubOptions.Configure); // Chatbot tools. Isolated from /dev-mcp. Served under the api version the controllers carry as well. foreach (var path in new[] { OAuthResources.McpPath, $"{OAuthResources.McpPath}/v1" }) @@ -239,6 +235,9 @@ public void ConfigureMiddlewares() app.UseSiteMap(); // Handle the rest of requests with blazor + // blazor.web.js is endpoint-served from .NET 9 on, and this has to precede AddInteractiveWebAssemblyRenderMode. + app.MapStaticAssets(); + var blazorApp = app.MapRazorComponents() .CacheOutput("AppResponseCachePolicy") .AddInteractiveServerRenderMode() diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json index 5b5d92cf8f9..6b61d3698b6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json @@ -31,7 +31,6 @@ "WebAppRender:BlazorMode": "BlazorWebAssembly" }, "dotnetRunMessages": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5030;http://*:5030" }, "WSL": { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj index a3b5e3ae68e..239dcb16f4a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 PrepareResources;$(CompileDependsOn) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.ar.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.ar.resx index 71d2f9600e7..9effd6f5330 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.ar.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.ar.resx @@ -2084,4 +2084,13 @@ رفع كما هي + + وضع الكشك + + + هذا التطبيق مثبَّت على الشاشة: مفتاح Windows و Alt+Tab و إدارة المهام وإغلاق النافذة كلها محظورة. استخدم الزر للخروج. + + + الخروج من التطبيق + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.de.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.de.resx index e1085c2ee6f..2997954731c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.de.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.de.resx @@ -2084,4 +2084,13 @@ Nach Erreichen von {0} haben zusätzliche Anmeldungen reduzierte Funktionen. Unverändert hochladen + + Kioskmodus + + + Diese App ist auf dem Bildschirm gesperrt: Windows-Taste, Alt+Tab, Task-Manager und das Schließen des Fensters sind alle blockiert. Verwenden Sie die Schaltfläche, um sie zu verlassen. + + + App beenden + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.es.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.es.resx index ca33f720c99..6e65d7c98fa 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.es.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.es.resx @@ -2084,4 +2084,13 @@ Después de alcanzar {0}, los inicios de sesión adicionales tendrán funciones Cargar tal cual + + Modo quiosco + + + Esta aplicación está bloqueada en la pantalla: la tecla Windows, Alt+Tab, el Administrador de tareas y el cierre de la ventana están bloqueados. Usa el botón para salir. + + + Salir de la aplicación + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fa.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fa.resx index 4cecc0708cf..95d4a1843ed 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fa.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fa.resx @@ -2084,4 +2084,13 @@ بارگذاری بدون تغییر + + حالت کیوسک + + + این برنامه روی صفحه قفل شده است: کلید ویندوز، Alt+Tab، Task Manager و بستن پنجره همگی مسدود شده‌اند. برای خروج از دکمه استفاده کنید. + + + خروج از برنامه + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fr.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fr.resx index f4e4f0e4218..4a0d3a46789 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fr.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.fr.resx @@ -2084,4 +2084,13 @@ Après avoir atteint {0}, les connexions supplémentaires auront des fonctions r Envoyer telle quelle + + Mode kiosque + + + Cette application est verrouillée à l'écran : la touche Windows, Alt+Tab, le Gestionnaire des tâches et la fermeture de la fenêtre sont tous bloqués. Utilisez le bouton pour quitter. + + + Quitter l'application + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.hi.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.hi.resx index 19ac5b3f560..d8abd7ab43f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.hi.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.hi.resx @@ -2084,4 +2084,13 @@ जैसा है वैसा अपलोड करें + + कियोस्क मोड + + + यह ऐप स्क्रीन पर लॉक है: Windows की, Alt+Tab, Task Manager और विंडो बंद करना सभी अवरुद्ध हैं। बाहर निकलने के लिए बटन का उपयोग करें। + + + ऐप से बाहर निकलें + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.nl.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.nl.resx index b217410ef53..670d767f574 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.nl.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.nl.resx @@ -2084,4 +2084,13 @@ Na het bereiken van {0} zullen extra aanmeldingen verminderde functies hebben. Ongewijzigd uploaden + + Kioskmodus + + + Deze app is vergrendeld op het scherm: de Windows-toets, Alt+Tab, Taakbeheer en het sluiten van het venster zijn allemaal geblokkeerd. Gebruik de knop om af te sluiten. + + + App afsluiten + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.resx index e081d6c248c..517153d505a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.resx @@ -2084,4 +2084,13 @@ After reaching {0}, extra sign-ins will have reduced functions. Upload as is + + Kiosk mode + + + This app is locked to the screen: the Windows key, Alt+Tab, Task Manager and closing the window are all blocked. Use the button to leave. + + + Exit the app + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.sv.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.sv.resx index a5b6e60bab1..bda6066a0d7 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.sv.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.sv.resx @@ -2084,4 +2084,13 @@ Efter att ha nått {0} kommer extra inloggningar att ha reducerade funktioner. Ladda upp som den är + + Kioskläge + + + Den här appen är låst till skärmen: Windows-tangenten, Alt+Tab, Aktivitetshanteraren och att stänga fönstret är alla blockerade. Använd knappen för att avsluta. + + + Avsluta appen + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.zh.resx b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.zh.resx index 5f72a441f8b..beb0a3d932f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.zh.resx +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Resources/AppStrings.zh.resx @@ -2084,4 +2084,13 @@ 按原样上传 + + 自助终端模式 + + + 此应用已锁定在屏幕上:Windows 键、Alt+Tab、任务管理器和关闭窗口均已被阻止。请使用按钮退出。 + + + 退出应用 + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj index 7c8ddf186da..9319e87e508 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 enable $(MSBuildProjectDirectory)\.runsettings --settings ./.runsettings --report-trx --report-trx-filename TestResults.trx --results-directory ./TestResults @@ -10,7 +10,6 @@ - diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs index 272c6d6ff70..2dc999c1ab0 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs @@ -45,17 +45,22 @@ public void TheInjectedSettings_Should_BeTheValidatedOptionsInstance() /// come from the settings validation itself. /// [TestMethod] - public void AnInvalidSetting_Should_FailTheHostsThatRunNoStartupValidator() + public async Task AnInvalidSetting_Should_FailTheHostsThatRunNoStartupValidator() { using var serviceProvider = BuildClientServiceProvider(new() { ["ServerAddress"] = " " }); - var startupValidator = serviceProvider.GetService(); + var startupValidators = serviceProvider.GetServices().ToArray(); - Assert.IsNotNull(startupValidator, - "No IStartupValidator is registered, so the explicit Validate() call the non-IHost client hosts make would silently do nothing."); + Assert.IsNotEmpty(startupValidators, + "No IAsyncStartupValidator is registered, so the explicit ValidateAsync() calls the non-IHost client hosts make would silently do nothing."); - Assert.ThrowsExactly(() => startupValidator.Validate(), - "Settings validation passed for a ClientCoreSettings whose [Required] ServerAddress is whitespace."); + await Assert.ThrowsExactlyAsync(async () => + { + foreach (var startupValidator in startupValidators) + { + await startupValidator.ValidateAsync(); + } + }, "Settings validation passed for a ClientCoreSettings whose [Required] ServerAddress is whitespace."); Assert.ThrowsExactly(() => serviceProvider.GetRequiredService(), "Resolving the settings returned an invalid instance instead of failing, which is what happens when the injected copy bypasses the options pipeline."); diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Documentation/DocumentationTruthTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Documentation/DocumentationTruthTests.cs index 075dd8fd2ba..92feae0967a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Documentation/DocumentationTruthTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Documentation/DocumentationTruthTests.cs @@ -267,7 +267,7 @@ private static bool TryNormalize(string candidate, bool fromLink, out string pat if (repositoryRoots.Any(root => candidate.StartsWith(root, StringComparison.Ordinal)) is false) return false; - // Build output. `.docs/17` legitimately tells the reader to run `src/Tests/bin/Debug/net10.0/playwright.ps1`, + // Build output. `.docs/17` legitimately tells the reader to run `src/Tests/bin/Debug/net11.0/playwright.ps1`, // which only exists after a build. if (candidate.Contains("/bin/", StringComparison.Ordinal) || candidate.Contains("/obj/", StringComparison.Ordinal)) return false; diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Identity/IStorageServiceContractTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Identity/IStorageServiceContractTests.cs index 035a69283bc..168e1f3c013 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Identity/IStorageServiceContractTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Identity/IStorageServiceContractTests.cs @@ -13,7 +13,7 @@ namespace Boilerplate.Tests.Features.Identity; /// /// ⚠ Only the test double is exercised here, and that is a real gap, not an oversight. /// MauiStorageService and WindowsStorageService live in projects this one does not reference and cannot: -/// Client.Maui needs the MAUI workloads and Client.Windows is net10.0-windows, so referencing either would +/// Client.Maui needs the MAUI workloads and Client.Windows is net11.0-windows, so referencing either would /// retarget the test project and break the Linux CI job. WebStorageService is reachable as a type but its /// stores are localStorage and sessionStorage behind JS interop, so it needs a browser. What this class /// buys is a single, executable statement of the contract that a reader can diff the three by hand against; what it diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Products/AddOrEditProductPageTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Products/AddOrEditProductPageTests.cs index 5cd254e04ad..7c0918aa4c8 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Products/AddOrEditProductPageTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Products/AddOrEditProductPageTests.cs @@ -14,7 +14,7 @@ namespace Boilerplate.Tests.Features.Products; /// A validation error on a field with no <ValidationMessage>. /// AppDataAnnotationsValidator writes every failure into a ValidationMessageStore and renders nothing /// itself; the page has to supply a message component per field. DescriptionHTML had none and the form had no -/// <ValidationSummary>, so an over-long description made EditContext.Validate() return false, +/// <ValidationSummary>, so an over-long description made EditContext.ValidateAsync() return false, /// OnValidSubmit never fired, Save never ran, and - because isSaving is assigned inside /// Save - the button did not even enter its loading state. Clicking Save did nothing whatsoever, forever. /// A failed load falling through to the form. OnInitAsync had no catch, so a transient diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs index 8faeb6096bf..d922c33c9e0 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs @@ -48,7 +48,7 @@ public partial class HostPageRenderTests private const string DuckDuckBotUserAgent = "Mozilla/5.0 (compatible; DuckDuckBot-Https/1.1; https://duckduckgo.com/duckduckbot)"; - private const string BlazorBootScript = "_framework/bit.blazor.web.es2019.js"; + private const string BlazorBootScript = "_framework/blazor.web.js"; public TestContext TestContext { get; set; } = default!; diff --git a/src/Templates/Boilerplate/Readme.md b/src/Templates/Boilerplate/Readme.md index 3ae04a62db8..ad5138a09d7 100644 --- a/src/Templates/Boilerplate/Readme.md +++ b/src/Templates/Boilerplate/Readme.md @@ -47,7 +47,7 @@ Comprehensive **Data and Response caching**: - Powerful vectorized database search using embeddings ### Modern Stack -- **ASP.NET Core 10**, **C# 14**, **.NET Aspire** +- **ASP.NET Core 11**, **C# 14**, **.NET Aspire** - **Entity Framework Core** with multiple database support (SQL Server, PostgreSQL, MySQL, SQLite) - Flexible file storage (Local, S3, Azure Blob Storage) - CI/CD pipelines for GitHub Actions and Azure DevOps diff --git a/src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj b/src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj index d6f287c8740..8abdb65080a 100644 --- a/src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj +++ b/src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bmotion enable true @@ -27,6 +27,7 @@ + diff --git a/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj b/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj index 776dc5b6ec4..9627930a7f2 100644 --- a/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj +++ b/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -13,7 +14,7 @@ - + diff --git a/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj b/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj index 1dd7c26411f..f6cfa05301b 100644 --- a/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj +++ b/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -9,7 +9,7 @@ - + diff --git a/src/Utilities/Bmotion/Demo/Server/Program.cs b/src/Utilities/Bmotion/Demo/Server/Program.cs index 281c0697cfc..29ffb1d43b4 100644 --- a/src/Utilities/Bmotion/Demo/Server/Program.cs +++ b/src/Utilities/Bmotion/Demo/Server/Program.cs @@ -32,11 +32,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bmotion/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bmotion/Demo/Server/Properties/launchSettings.json index ba4f4303414..7c75402dcb5 100644 --- a/src/Utilities/Bmotion/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bmotion/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5071;http://localhost:5070", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj index 5029f62626c..375189cb313 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj @@ -1,9 +1,9 @@ + only exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests/Bit.Bmotion.Tests.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests/Bit.Bmotion.Tests.csproj index de2229af626..4bca9d78c2f 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests/Bit.Bmotion.Tests.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests/Bit.Bmotion.Tests.csproj @@ -1,7 +1,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 6dbc8280e9a..26e13244471 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false true Default true @@ -11,13 +12,12 @@ false false false - false true - + @@ -26,20 +26,20 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index c5dcf14fc1c..fbc1c2a2848 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Careers.Client.bundle.scp.css" }, { - url: "_framework/bit.blazor.web.es2019.js" + url: "_framework/blazor.web.js" } ]; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 80a4b326159..532476b6c84 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 true true @@ -13,18 +13,17 @@ - - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor index 3c4cacd66c4..7d1fe4db7ed 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor @@ -28,8 +28,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Properties/launchSettings.json b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Properties/launchSettings.json index 7c9462e500b..378a2cff059 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Properties/launchSettings.json +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Properties/launchSettings.json @@ -14,7 +14,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5080;https://localhost:5081", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs index f091dee2bc2..a66782546a4 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs @@ -15,11 +15,7 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati { app.UseForwardedHeaders(); - if (env.IsDevelopment()) - { - app.UseWebAssemblyDebugging(); - } - else + if (env.IsDevelopment() is false) { app.UseHttpsRedirection(); app.UseResponseCompression(); @@ -75,6 +71,9 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); + // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. + app.MapStaticAssets(); + app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index dfd4c11b3a3..04d8e167a5b 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -1,22 +1,22 @@  - net10.0 + net11.0 en-US - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index 773561a44eb..ae7187255af 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 12367ff2b22..aa583139029 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -1,10 +1,11 @@  - net10.0 + net11.0 + false true Default - true @@ -14,10 +15,6 @@ false false false - - false true @@ -26,28 +23,28 @@ - + - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor index a701406a416..3e9b8f81964 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor @@ -21,14 +21,14 @@ 1. Install the .NET SDK - winget install Microsoft.DotNet.SDK.10 --accept-package-agreements --accept-source-agreements + winget install Microsoft.DotNet.SDK.Preview --accept-package-agreements --accept-source-agreements
- Download and run the macOS installer of the latest .NET 10 SDK. + Download and run the macOS installer of the latest .NET 11 SDK.
- curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 10.0 + curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 11.0 --quality preview echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc echo 'export PATH=$HOME/.dotnet:$HOME/.dotnet/tools:$PATH' >> ~/.bashrc source ~/.bashrc diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 88a36ae10a0..f1e8c422c96 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Platform.Client.bundle.scp.css" }, { - url: "_framework/bit.blazor.web.es2019.js" + url: "_framework/blazor.web.js" } ]; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index f8c7654ad3e..b63311cf0f1 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 @@ -16,20 +16,19 @@ - - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor index d89b93ac1f3..7a86ef38fe8 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor @@ -95,8 +95,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Properties/launchSettings.json b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Properties/launchSettings.json index 71267e16ba4..d4248eaee6e 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Properties/launchSettings.json +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Properties/launchSettings.json @@ -14,7 +14,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5055;https://localhost:5066", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs index 56d4d2d2a65..996ac3a26b8 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs @@ -19,11 +19,7 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati { app.UseForwardedHeaders(); - if (env.IsDevelopment()) - { - app.UseWebAssemblyDebugging(); - } - else + if (env.IsDevelopment() is false) { app.UseHttpsRedirection(); app.UseResponseCompression(); @@ -95,6 +91,9 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); + // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. + app.MapStaticAssets(); + app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index dfd4c11b3a3..04d8e167a5b 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -1,22 +1,22 @@  - net10.0 + net11.0 en-US - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index fbc2c3b36eb..744d45c0786 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index 6a8d1d760f3..e5a7c0991de 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false true Default true @@ -11,13 +12,12 @@ false false false - false true - + @@ -26,20 +26,20 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index e7db83c4aa2..5126aad1478 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 10.7.0-pre-02 +// bit version: 11.0.0-pre-04 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Sales.Client.bundle.scp.css" }, { - url: "_framework/bit.blazor.web.es2019.js" + url: "_framework/blazor.web.js" } ]; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index c0333c53e6e..53bfc2fe4e9 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -1,7 +1,7 @@ - net10.0 + net11.0 true true @@ -13,18 +13,17 @@ - - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor index 6a7c51e91e6..7095a1b8b7d 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor @@ -49,8 +49,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Properties/launchSettings.json b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Properties/launchSettings.json index 01bd023c72b..fdbda58f7b6 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Properties/launchSettings.json +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Properties/launchSettings.json @@ -14,7 +14,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5070;https://localhost:5071", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs index d95ed2e5316..eb4c193fe13 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs @@ -15,11 +15,7 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati { app.UseForwardedHeaders(); - if (env.IsDevelopment()) - { - app.UseWebAssemblyDebugging(); - } - else + if (env.IsDevelopment() is false) { app.UseHttpsRedirection(); app.UseResponseCompression(); @@ -75,6 +71,9 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); + // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. + app.MapStaticAssets(); + app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index dfd4c11b3a3..04d8e167a5b 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -1,22 +1,22 @@  - net10.0 + net11.0 en-US - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index adcc42b7679..ce93c0279ea 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/global.json b/src/global.json index e28ed3df4a7..0aa152c4bec 100644 --- a/src/global.json +++ b/src/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.402", + "version": "11.0.100-rc.1.26425.128", "rollForward": "disable" }, "test": { From f1c73c900b9c72f9ef4dccfe9c3391303dbb7415 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 7 Oct 2026 08:30:03 +0200 Subject: [PATCH 02/45] update repo to v-11.0.0-pre-05 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 46 files changed, 103 insertions(+), 103 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 0ce46ad333c..a6f4ba6930b 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-04`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-05`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index 1f0baa50e7f..1c0a21a9b20 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-04'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-05'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index 0076146b99d..676edfc63f6 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-04 + 11.0.0-pre-05 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index 5f46e1335dc..626b48c7d25 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-04"; + public static string Version { get; } = "11.0.0-pre-05"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 682eb62a649..6536fa161eb 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-04'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-05'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index d008c4d9c61..889ddf713e7 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 404c676ccac..182e07f6acf 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index d54218d4db4..d6307ea2a9e 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 88381d21f0f..5385179296e 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index 0b9b45e5b5a..918d79ae365 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index cac47e9b7cb..0a229d6a5a2 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index 4db2c0552fc..7094d2c2b7e 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index a82f18c6b18..721c53993b1 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index 84aee0a1d6d..770e7861577 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-04" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-04" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-05" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-05" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 631cf1f184d..734d298114c 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-04" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-04" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-05" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-05" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index e7cf07cdfd6..81543ee2837 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index ad4e2286654..3e7da44f815 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index 36d9227160d..65c4d3cd047 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-04'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-05'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 593ac193b17..07240830f6b 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-04'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-05'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index 4533248b0ed..8bbe455b94b 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-04'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-05'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index db2c694c01f..858ad58e4f7 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-04'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-05'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index a4c16381712..f3a060e7f28 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index 8e306652d80..df4ce35ff3e 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index 5b6bba1b011..182b3358e10 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index 1124c4dd3bd..90dd587d742 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 2c947ea38c9..4022f681484 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-04'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-05'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index b00d81b0c17..ffb6ead31c4 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index b6b12bda72a..1eec9ea2402 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index 5bbca11fb2a..be49b676911 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index dfe17a384c8..fd03bef4859 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 28664467d61..983cf088d02 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 26e13244471..7a21d40af31 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index fbc1c2a2848..394d8beca4d 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 532476b6c84..cb9b138397b 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index 04d8e167a5b..19c8a9a5cbf 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index ae7187255af..9bcbc7046a3 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index aa583139029..00c157454f8 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index f1e8c422c96..6220335bb74 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index b63311cf0f1..05c7e3ed126 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index 04d8e167a5b..19c8a9a5cbf 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index 744d45c0786..a5531829ed6 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index e5a7c0991de..fc226f74122 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index 5126aad1478..90ded31936a 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-04 +// bit version: 11.0.0-pre-05 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 53bfc2fe4e9..10c12990acc 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index 04d8e167a5b..19c8a9a5cbf 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index ce93c0279ea..82160c25b7c 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From 9534d1ca543630b06eda51f7be59d066ab628f3d Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 7 Oct 2026 10:37:53 +0200 Subject: [PATCH 03/45] update repo to v-11.0.0-pre-06 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 46 files changed, 103 insertions(+), 103 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index a6f4ba6930b..c339795e27d 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-05`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-06`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index 1c0a21a9b20..9d06e936570 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-05'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-06'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index 676edfc63f6..6531561357a 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-05 + 11.0.0-pre-06 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index 626b48c7d25..cdb7549a9a6 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-05"; + public static string Version { get; } = "11.0.0-pre-06"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 6536fa161eb..962d224a350 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-05'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-06'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index 889ddf713e7..cc01befc3ac 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 182e07f6acf..9492f73adf8 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index d6307ea2a9e..228e566358f 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 5385179296e..441b2116cc1 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index 918d79ae365..8ec2f7c3a96 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index 0a229d6a5a2..5ec97e816d9 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index 7094d2c2b7e..724ed2ce8a5 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 721c53993b1..4f8207d781a 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index 770e7861577..83faaae947c 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-05" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-05" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-06" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-06" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 734d298114c..15442569414 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-05" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-05" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-06" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-06" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index 81543ee2837..e8bbd8689ba 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index 3e7da44f815..08f59bb2e39 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index 65c4d3cd047..1ba1cfe6961 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-05'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-06'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 07240830f6b..1839d00245d 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-05'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-06'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index 8bbe455b94b..76944249c79 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-05'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-06'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index 858ad58e4f7..af199eaf0a1 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-05'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-06'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index f3a060e7f28..4aae28cad1e 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index df4ce35ff3e..d7c2a709820 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index 182b3358e10..d1c344571ec 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index 90dd587d742..69b342c1edf 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 4022f681484..f474aacb0cd 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-05'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-06'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index ffb6ead31c4..d14dccb0c76 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index 1eec9ea2402..0d5d602dd96 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index be49b676911..11714724123 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index fd03bef4859..adf94c11f3f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 983cf088d02..91779f91de6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 7a21d40af31..0715e3e003e 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index 394d8beca4d..41c7dbd52a6 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index cb9b138397b..a92136802b2 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index 19c8a9a5cbf..f32f569de0a 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index 9bcbc7046a3..f27620815d7 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 00c157454f8..98e25d17a40 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 6220335bb74..2fc7084417b 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index 05c7e3ed126..bb31b7f0f74 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index 19c8a9a5cbf..f32f569de0a 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index a5531829ed6..97fec25a3cd 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index fc226f74122..e88e3a489be 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index 90ded31936a..b546db63907 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-05 +// bit version: 11.0.0-pre-06 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 10c12990acc..891f0d3302b 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index 19c8a9a5cbf..f32f569de0a 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index 82160c25b7c..0f7de344819 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From 96b7c8418e51056746b8a271fef90dda6c7dac3b Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 8 Oct 2026 15:24:51 +0200 Subject: [PATCH 04/45] update repo to v-11.0.0-pre-07 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 46 files changed, 103 insertions(+), 103 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index c339795e27d..c222734be48 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-06`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-07`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index 9d06e936570..beb5b7cf393 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-06'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-07'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index 6531561357a..2cb7a3bceda 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-06 + 11.0.0-pre-07 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index cdb7549a9a6..be03e7324f5 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-06"; + public static string Version { get; } = "11.0.0-pre-07"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 962d224a350..5a81c28f33f 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-06'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-07'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index cc01befc3ac..3cbb7327188 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 9492f73adf8..50cbcf8cef6 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 228e566358f..462536e7d9c 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 441b2116cc1..eaa758dab42 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index 8ec2f7c3a96..9755f6504ff 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index 5ec97e816d9..f0ce21292f7 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index 724ed2ce8a5..e9691345755 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 4f8207d781a..5b889f647a6 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index 83faaae947c..de09c705d58 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-06" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-06" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-07" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-07" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 15442569414..484c629aaa9 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-06" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-06" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-07" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-07" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index e8bbd8689ba..1d1c6bd4c2f 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index 08f59bb2e39..98b718c5695 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index 1ba1cfe6961..17f1e8ff0d8 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-06'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-07'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 1839d00245d..37bca652c14 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-06'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-07'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index 76944249c79..d5d712beb05 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-06'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-07'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index af199eaf0a1..be8c53a3c97 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-06'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-07'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index 4aae28cad1e..77f9dbbfe12 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index d7c2a709820..8cf12240860 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index d1c344571ec..9a81aba6d9b 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index 69b342c1edf..1a0dd08003e 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index f474aacb0cd..63216040b9b 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-06'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-07'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index d14dccb0c76..bb22f166fae 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index 0d5d602dd96..1ee4101acb0 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index 11714724123..53138de575f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index adf94c11f3f..8a0cdb9aa1e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 91779f91de6..a2225fbbaba 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 0715e3e003e..2a2e1249d71 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index 41c7dbd52a6..9878db7ff4f 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index a92136802b2..b2b37a107ba 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index f32f569de0a..a856634730d 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index f27620815d7..492384e6bc9 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 98e25d17a40..1f21f3bc6ef 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 2fc7084417b..a8ce12a2c5d 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index bb31b7f0f74..bbf7afa2645 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index f32f569de0a..a856634730d 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index 97fec25a3cd..a13f68c0084 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index e88e3a489be..6e9904d5d71 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index b546db63907..1cf1936dc14 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-06 +// bit version: 11.0.0-pre-07 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 891f0d3302b..d665376d229 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index f32f569de0a..a856634730d 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index 0f7de344819..488381d96c7 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From ee8146696ed264e8cd4bc7fb732e59ab925a04c4 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Mon, 12 Oct 2026 15:46:31 +0200 Subject: [PATCH 05/45] update repo to v-11.0.0-pre-08 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 46 files changed, 103 insertions(+), 103 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index c222734be48..1ce95cb6428 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-07`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-08`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index beb5b7cf393..b4f77ebbf04 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-07'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-08'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index 2cb7a3bceda..c2c8dc3e9c3 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-07 + 11.0.0-pre-08 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index be03e7324f5..c0c22888165 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-07"; + public static string Version { get; } = "11.0.0-pre-08"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 5a81c28f33f..475f05b0e2a 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-07'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-08'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index 3cbb7327188..f399408d1d3 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 50cbcf8cef6..48085250f8b 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 462536e7d9c..9a849e84400 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index eaa758dab42..5540bef39cb 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index 9755f6504ff..2233fee880e 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index f0ce21292f7..6e3aaaf2c7c 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index e9691345755..a3776ea784e 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 5b889f647a6..64e4a6a595c 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index de09c705d58..659ef5f824d 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-07" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-07" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-08" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-08" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 484c629aaa9..a9c067850f8 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-07" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-07" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-08" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-08" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index 1d1c6bd4c2f..41493a9f8c1 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index 98b718c5695..5d9aacae793 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index 17f1e8ff0d8..f4bb62ddb1e 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-07'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-08'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 37bca652c14..5f00376a813 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-07'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-08'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index d5d712beb05..dadc00974f5 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-07'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-08'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index be8c53a3c97..0474990d3af 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-07'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-08'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index 77f9dbbfe12..b78ac8231c8 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index 8cf12240860..1ca6031a540 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index 9a81aba6d9b..215e83ce938 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index 1a0dd08003e..66e8bbf6cfc 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 63216040b9b..3b5b6daa3a8 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-07'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-08'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index bb22f166fae..990370b7d8a 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index 1ee4101acb0..3bb7492ba38 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index 53138de575f..d660ffe9d00 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index 8a0cdb9aa1e..3ff17136f2a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index a2225fbbaba..41c0c7223fd 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 2a2e1249d71..a76e63eafc0 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index 9878db7ff4f..44afcf9187d 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index b2b37a107ba..7bc9a22c310 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index a856634730d..173483a266d 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index 492384e6bc9..cab66095b4a 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 1f21f3bc6ef..77fa4ef079e 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index a8ce12a2c5d..2c20bf8de16 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index bbf7afa2645..aa6d469e4a5 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index a856634730d..173483a266d 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index a13f68c0084..f7459cc4a95 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index 6e9904d5d71..d0484697141 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index 1cf1936dc14..c845ada6770 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-07 +// bit version: 11.0.0-pre-08 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index d665376d229..1fcad47db78 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index a856634730d..173483a266d 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index 488381d96c7..f264987bfe7 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From fb44cd6839addeb10c8edb402169cf89ed080516 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Mon, 12 Oct 2026 16:39:47 +0200 Subject: [PATCH 06/45] move PdfPerformance to net11.0 --- .../Bit.BlazorUI.Tests.PdfPerformance.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.PdfPerformance/Bit.BlazorUI.Tests.PdfPerformance.csproj b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.PdfPerformance/Bit.BlazorUI.Tests.PdfPerformance.csproj index 616cd213381..b4ccbc2aabe 100644 --- a/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.PdfPerformance/Bit.BlazorUI.Tests.PdfPerformance.csproj +++ b/src/BlazorUI/Tests/Performance/Bit.BlazorUI.Tests.PdfPerformance/Bit.BlazorUI.Tests.PdfPerformance.csproj @@ -2,7 +2,7 @@ Exe - net10.0 + net11.0 false enable enable From 71444d946e80be2865073307f9901bdc51ab9b08 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 13 Oct 2026 10:40:17 +0200 Subject: [PATCH 07/45] update repo to v-11.0.0-pre-09 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 46 files changed, 103 insertions(+), 103 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 1ce95cb6428..0c2650b89ae 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-08`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-09`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index b4f77ebbf04..bccdde31841 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-08'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-09'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index c2c8dc3e9c3..1763ddffaa2 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-08 + 11.0.0-pre-09 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index c0c22888165..8196c7b64b7 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-08"; + public static string Version { get; } = "11.0.0-pre-09"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 475f05b0e2a..43122bfbdff 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-08'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-09'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index f399408d1d3..808f81f7cf1 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 48085250f8b..e9d43ece619 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 9a849e84400..58f4b60de86 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 5540bef39cb..dbd9a3f64cf 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index 2233fee880e..eb46395931f 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index 6e3aaaf2c7c..8bb15935112 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index a3776ea784e..0c7935db3f9 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 64e4a6a595c..3ba1e0a1e21 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index 659ef5f824d..2729d772f1f 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-08" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-08" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-09" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-09" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index a9c067850f8..0fb40059712 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-08" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-08" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-09" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-09" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index 41493a9f8c1..4690778a6d8 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index 5d9aacae793..eb201031ff5 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index f4bb62ddb1e..e0250189e8c 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-08'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-09'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 5f00376a813..929bd48495c 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-08'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-09'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index dadc00974f5..c02c3a8d325 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-08'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-09'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index 0474990d3af..aa83778314d 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-08'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-09'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index b78ac8231c8..541c36a3492 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index 1ca6031a540..4b7b12642c3 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index 215e83ce938..21208fe38f3 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index 66e8bbf6cfc..c6b8f67ef53 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 3b5b6daa3a8..44407ea0118 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-08'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-09'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index 990370b7d8a..8d51e175e18 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index 3bb7492ba38..f4f68ce406d 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index d660ffe9d00..7812a21ba89 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index 3ff17136f2a..54a4c73bbe6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 41c0c7223fd..12ce2ae1220 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index a76e63eafc0..0a32385f946 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index 44afcf9187d..e5a932156f2 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 7bc9a22c310..a8aa3f6871e 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index 173483a266d..93ba988dbd7 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index cab66095b4a..ca5faf85e12 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 77fa4ef079e..ebd64e4ee50 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 2c20bf8de16..2ef17718433 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index aa6d469e4a5..9f2c6c5c5ed 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index 173483a266d..93ba988dbd7 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index f7459cc4a95..3d87ebdf248 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index d0484697141..31acf6e5cba 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index c845ada6770..f4aaf52d9c8 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-08 +// bit version: 11.0.0-pre-09 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 1fcad47db78..f21d14fd23a 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index 173483a266d..93ba988dbd7 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index f264987bfe7..8d0f2f67dc8 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From bed5bdc019d2a6d14e13a44eba8739447d30e6cc Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 13 Oct 2026 12:11:39 +0200 Subject: [PATCH 08/45] update repo to v-11.0.0-pre-10 --- .github/agents/dependency-update.md | 2 +- src/Besql/Bit.Besql/wwwroot/bit-besql.js | 2 +- src/Bit.Build.props | 2 +- src/BlazorUI/Bit.BlazorUI/Info.cs | 2 +- src/BlazorUI/Bit.BlazorUI/Scripts/general.ts | 2 +- .../Bit.BlazorUI.Demo.Server.csproj | 4 +-- .../Bit.BlazorUI.Demo.Shared.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 4 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 +-- ...Bit.BlazorUI.Demo.Client.Web.Shared.csproj | 6 ++--- .../Bit.BlazorUI.Demo.Client.Web.csproj | 6 ++--- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 4 +-- .../Client/Pages/GeneratorPage.razor | 4 +-- .../Client/Pages/GettingStartedPage.razor | 4 +-- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Bswup/Scripts/bit-bswup.progress.ts | 2 +- .../Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | 2 +- src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | 2 +- .../BasicSample/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Client/wwwroot/service-worker.js | 2 +- .../wwwroot/service-worker.published.js | 2 +- src/Butil/Bit.Butil/Scripts/butil.ts | 2 +- .../BlazorEmpty.Client.csproj | 8 +++--- .../BlazorEmpty/BlazorEmpty.csproj | 8 +++--- .../.docs/19- Project Miscellaneous Files.md | 8 +++--- .../Boilerplate/Bit.Boilerplate/bit.json | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../src/Directory.Packages.props | 26 +++++++++---------- .../Services/BcrdtServerInstructions.cs | 2 +- .../Bit.Websites.Careers.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 4 +-- .../Bit.Websites.Careers.Shared.csproj | 4 +-- .../Careers/src/Directory.Build.props | 2 +- .../Bit.Websites.Platform.Client.csproj | 16 ++++++------ .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 4 +-- .../Bit.Websites.Platform.Shared.csproj | 4 +-- .../Platform/src/Directory.Build.props | 2 +- .../Bit.Websites.Sales.Client.csproj | 14 +++++----- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 4 +-- .../Bit.Websites.Sales.Shared.csproj | 4 +-- src/Websites/Sales/src/Directory.Build.props | 2 +- 48 files changed, 105 insertions(+), 105 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 0c2650b89ae..faa61fba48a 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -83,7 +83,7 @@ consumes a test project, so every band takes the newest patch of its own band. L **Version ranges stay.** `[8.0.0,9.0.0)` is a compatibility contract, not a pin. -**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-09`. Never read +**`Bit.*` self-references track the in-development version**, currently `11.0.0-pre-10`. Never read these off nuget.org — the published `latest` is behind the working tree by design, and unrelated higher-numbered lines exist there. diff --git a/src/Besql/Bit.Besql/wwwroot/bit-besql.js b/src/Besql/Bit.Besql/wwwroot/bit-besql.js index bccdde31841..62b523b37a5 100644 --- a/src/Besql/Bit.Besql/wwwroot/bit-besql.js +++ b/src/Besql/Bit.Besql/wwwroot/bit-besql.js @@ -1,5 +1,5 @@ var BitBesql = window.BitBesql || {}; -BitBesql.version = window['bit-besql version'] = '11.0.0-pre-09'; +BitBesql.version = window['bit-besql version'] = '11.0.0-pre-10'; BitBesql.persist = async function besqlPersist(fileName) { diff --git a/src/Bit.Build.props b/src/Bit.Build.props index 1763ddffaa2..95d46f66ca1 100644 --- a/src/Bit.Build.props +++ b/src/Bit.Build.props @@ -27,7 +27,7 @@ https://github.com/bitfoundation/bitplatform - 11.0.0-pre-09 + 11.0.0-pre-10 $(ReleaseVersion) https://github.com/bitfoundation/bitplatform/releases/tag/v-$(ReleaseVersion) $([System.String]::Copy($(ReleaseVersion)).Replace('-pre-', '.')) diff --git a/src/BlazorUI/Bit.BlazorUI/Info.cs b/src/BlazorUI/Bit.BlazorUI/Info.cs index 8196c7b64b7..8de0dfdf9ef 100644 --- a/src/BlazorUI/Bit.BlazorUI/Info.cs +++ b/src/BlazorUI/Bit.BlazorUI/Info.cs @@ -8,5 +8,5 @@ public static class Info /// /// The current version string of bit BlazorUI. /// - public static string Version { get; } = "11.0.0-pre-09"; + public static string Version { get; } = "11.0.0-pre-10"; } diff --git a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts index 43122bfbdff..44690404658 100644 --- a/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts +++ b/src/BlazorUI/Bit.BlazorUI/Scripts/general.ts @@ -1,4 +1,4 @@ -(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-09'; +(BitBlazorUI as any).version = (window as any)['bit-blazorui version'] = '11.0.0-pre-10'; // bit-trim: always // The one script every bundle keeps: the version stamp above, and what nearly every other script builds on. What used diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index 808f81f7cf1..eb60e3b6346 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,11 +25,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index e9d43ece619..cb3a8e991f2 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -5,11 +5,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 58f4b60de86..8ec7273c2fe 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index dbd9a3f64cf..5bde7c7ba8c 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,11 +89,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj index eb46395931f..eb2aea60d71 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csproj @@ -14,12 +14,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj index 8bb15935112..d1d4b2d5aa6 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj @@ -23,15 +23,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index 0c7935db3f9..806210ec5a5 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 3ba1e0a1e21..4513bc67d2d 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,11 +29,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor index 2729d772f1f..f1c6cf7f301 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GeneratorPage.razor @@ -36,8 +36,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. Bit.Brouter.Generators is an analyzer-only package (it ships no runtime assembly), so PrivateAssets="all" keeps it out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-09" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-09" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-10" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-10" PrivateAssets="all" />

Nothing else is wired up by hand: the package drops the generator into the compiler, and the very next build emits BrouterRoutes from the routes already declared in diff --git a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor index 0fb40059712..5b6104a3c91 100644 --- a/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor +++ b/src/Brouter/Bit.Brouter.Demo/Client/Pages/GettingStartedPage.razor @@ -24,8 +24,8 @@ dotnet add package Bit.Brouter.Generators <!-- ...or declare them in your .csproj. PrivateAssets="all" on the generator keeps the analyzer out of your own package's dependencies: --> -<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-09" /> -<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-09" PrivateAssets="all" /> +<PackageReference Include="Bit.Brouter" Version="11.0.0-pre-10" /> +<PackageReference Include="Bit.Brouter.Generators" Version="11.0.0-pre-10" PrivateAssets="all" />

diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js index 4690778a6d8..b962b52f7a4 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // Development service worker of the Bswup docs site. Unlike the standard Blazor template - // whose dev worker is a no-op so caching never hides source changes - this site runs the full diff --git a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js index eb201031ff5..735fa7fefa3 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Bit.Bswup.Demo/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // Published service worker of the Bswup docs site. Keep in sync with service-worker.js (the // development copy) - the two differ only in the commented-out resiliency knobs below. diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts index e0250189e8c..57a41f8c66a 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts @@ -1,4 +1,4 @@ -(window as any)['bit-bswup.progress version'] = '11.0.0-pre-09'; +(window as any)['bit-bswup.progress version'] = '11.0.0-pre-10'; // Default progress/splash UI for Bswup. This script registers the global // `bitBswupHandler` that bit-bswup.ts calls with every BswupMessage, and drives the diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts index 929bd48495c..1cab43ccc43 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-09'; +(self as any)['bit-bswup.sw-cleanup version'] = '11.0.0-pre-10'; interface BitBswupGlobals { clients: any diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts index c02c3a8d325..e2d436d7c39 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts @@ -1,4 +1,4 @@ -(self as any)['bit-bswup.sw version'] = '11.0.0-pre-09'; +(self as any)['bit-bswup.sw version'] = '11.0.0-pre-10'; // This file (and bit-bswup.sw-cleanup.ts) is a classic service-worker script loaded via // importScripts - not an ES module - and is compiled against the "WebWorker" lib (see diff --git a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts index aa83778314d..fa0569aa738 100644 --- a/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts +++ b/src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts @@ -1,5 +1,5 @@ var BitBswup: any = BitBswup || {}; -BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-09'; +BitBswup.version = (window as any)['bit-bswup version'] = '11.0.0-pre-10'; // Idempotency guard. bit-bswup.js wires up a DOMContentLoaded handler (and through it // the service-worker registration, event listeners, update timers and reload handlers) diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js index 541c36a3492..7f6f7e575e1 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js index 4b7b12642c3..64c15ecfa2a 100644 --- a/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/BasicSample/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 self.assetsExclude = [/\.scp\.css$/, /weather\.json$/]; self.caseInsensitiveUrl = true; diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js index 21208fe38f3..0b589804dbc 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // Development service worker of the FullSample. Unlike the standard Blazor template - whose // dev worker is a no-op so caching never hides source changes - this sample runs the full diff --git a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js index c6b8f67ef53..2ec612203aa 100644 --- a/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js +++ b/src/Bswup/Samples/FullSample/Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 self.assetsInclude = []; // The client's scoped-css bundle is in this app's asset manifest but is never served: in a diff --git a/src/Butil/Bit.Butil/Scripts/butil.ts b/src/Butil/Bit.Butil/Scripts/butil.ts index 44407ea0118..e6cdb2c4018 100644 --- a/src/Butil/Bit.Butil/Scripts/butil.ts +++ b/src/Butil/Bit.Butil/Scripts/butil.ts @@ -1,2 +1,2 @@ var BitButil = (window as any).BitButil = (window as any).BitButil || {}; -BitButil.version = window['bit-butil version'] = '11.0.0-pre-09'; +BitButil.version = window['bit-butil version'] = '11.0.0-pre-10'; diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index 8d51e175e18..6ab3ac3268f 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,14 +15,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index f4f68ce406d..52370e8db0c 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -1,4 +1,4 @@ - + @@ -19,14 +19,14 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md index 7812a21ba89..66066e2399f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/19- Project Miscellaneous Files.md @@ -223,7 +223,7 @@ These namespaces are **automatically imported** in every C# file, eliminating th Instead of this in each `.csproj`: ```xml - + ``` You write this in `.csproj`: @@ -233,7 +233,7 @@ You write this in `.csproj`: And the version is defined centrally in `Directory.Packages.props`: ```xml - + ``` **Benefits**: @@ -244,8 +244,8 @@ And the version is defined centrally in `Directory.Packages.props`: **Example packages included**: ```xml - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/bit.json b/src/Templates/Boilerplate/Bit.Boilerplate/bit.json index 616ef7c5037..e01b9d2377a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/bit.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/bit.json @@ -1,6 +1,6 @@ { "template": "bit-bp", - "version": "10.7.0-pre-02", + "version": "11.0.0-pre-10", "name": "Boilerplate", "options": { "database": "bit-option-database", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index 54a4c73bbe6..43ed6f9329c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -2,7 +2,7 @@ // [mirror] push notification and notificationclick handlers - keep in sync with: // - src/Client/Boilerplate.Client.Web/wwwroot/service-worker.js -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup //#if (notification == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 12ce2ae1220..c96a362f040 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -1,18 +1,18 @@ - + - - - - - - - - - - - + + + + + + + + + + + @@ -93,7 +93,7 @@ - + diff --git a/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs index 078e38c630a..07a1e829bde 100644 --- a/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs @@ -19,7 +19,7 @@ public static class BcrdtServerInstructions /// and the build checks it against ReleaseVersion in Bit.Build.props (see the ReleaseVersionLiteral /// item in the .csproj), so a release cannot forget it. /// - public const string BcrdtVersion = "10.7.0-pre-02"; + public const string BcrdtVersion = "11.0.0-pre-10"; public static readonly string Text = $""" Bit.Bcrdt is real-time collaborative editing for .NET and Blazor, written natively in C#: a YATA-based CRDT engine diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 0a32385f946..da389f1a3d9 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index e5a932156f2..f3643d34696 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index a8aa3f6871e..822b056075d 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index 93ba988dbd7..653a48a9af6 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Directory.Build.props b/src/Websites/Careers/src/Directory.Build.props index ca5faf85e12..f5bdce0bf92 100644 --- a/src/Websites/Careers/src/Directory.Build.props +++ b/src/Websites/Careers/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index ebd64e4ee50..386703afd12 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -29,17 +29,17 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 2ef17718433..747fec1ef55 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index 9f2c6c5c5ed..b3f68827ef6 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,11 +16,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index 93ba988dbd7..653a48a9af6 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Directory.Build.props b/src/Websites/Platform/src/Directory.Build.props index 3d87ebdf248..b63a7d3ea38 100644 --- a/src/Websites/Platform/src/Directory.Build.props +++ b/src/Websites/Platform/src/Directory.Build.props @@ -1,4 +1,4 @@ - + preview diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index 31acf6e5cba..ffe670c28be 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -26,16 +26,16 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index f4aaf52d9c8..9990dbb9e7f 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -1,4 +1,4 @@ -// bit version: 11.0.0-pre-09 +// bit version: 11.0.0-pre-10 // https://github.com/bitfoundation/bitplatform/tree/develop/src/Bswup self.assetsInclude = []; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index f21d14fd23a..dfe7f011e39 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index 93ba988dbd7..653a48a9af6 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -6,11 +6,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Directory.Build.props b/src/Websites/Sales/src/Directory.Build.props index 8d0f2f67dc8..0a450666c15 100644 --- a/src/Websites/Sales/src/Directory.Build.props +++ b/src/Websites/Sales/src/Directory.Build.props @@ -1,4 +1,4 @@ - + 14.0 From 912c755f37740c8f4b03f44bc1b498245955c2e1 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 15 Oct 2026 22:42:52 +0200 Subject: [PATCH 09/45] move BlazorUI's E2E and consumer tests to net11.0 --- .github/workflows/bit.ci.BlazorUI.e2e.yml | 12 ++++++------ .../Bit.BlazorUI.Tests.Consumer.csproj | 4 ++-- .../Bit.BlazorUI.Tests.E2E.TestHost.Client.csproj | 7 ++++--- .../Bit.BlazorUI.Tests.E2E.TestHost.csproj | 7 ++++--- .../Bit.BlazorUI.Tests.E2E.csproj | 6 +++--- src/BlazorUI/Tests/E2E/README.md | 10 +++++----- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/.github/workflows/bit.ci.BlazorUI.e2e.yml b/.github/workflows/bit.ci.BlazorUI.e2e.yml index c5481169dcf..770cc1d5ed6 100644 --- a/.github/workflows/bit.ci.BlazorUI.e2e.yml +++ b/.github/workflows/bit.ci.BlazorUI.e2e.yml @@ -80,7 +80,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -92,19 +92,19 @@ jobs: # The host builds the libraries it references (and their scripts and styles through npm) and the WebAssembly # client that holds the pages; the test project only needs Playwright and MSTest. - name: Build the E2E test host - run: dotnet build $E2E_DIR/Bit.BlazorUI.Tests.E2E.TestHost -f net10.0 + run: dotnet build $E2E_DIR/Bit.BlazorUI.Tests.E2E.TestHost -f net11.0 - name: Build the E2E tests - run: dotnet build $E2E_DIR/Bit.BlazorUI.Tests.E2E -f net10.0 + run: dotnet build $E2E_DIR/Bit.BlazorUI.Tests.E2E -f net11.0 - name: Install the Playwright browser - run: pwsh $E2E_DIR/Bit.BlazorUI.Tests.E2E/bin/Debug/net10.0/playwright.ps1 install --with-deps ${{ matrix.browser }} + run: pwsh $E2E_DIR/Bit.BlazorUI.Tests.E2E/bin/Debug/net11.0/playwright.ps1 install --with-deps ${{ matrix.browser }} # Started once for the whole run (the tests attach to a host already answering at E2E_HOST_URL), with its output # kept for the artifacts below. - name: Start the E2E test host run: | - nohup dotnet run --project $E2E_DIR/Bit.BlazorUI.Tests.E2E.TestHost --no-build --framework net10.0 --urls $E2E_HOST_URL > host.log 2>&1 & + nohup dotnet run --project $E2E_DIR/Bit.BlazorUI.Tests.E2E.TestHost --no-build --framework net11.0 --urls $E2E_HOST_URL > host.log 2>&1 & for i in $(seq 1 120); do if curl -s -o /dev/null -w "%{http_code}" $E2E_HOST_URL/ | grep -q 200; then echo "host is up"; exit 0; fi sleep 1 @@ -119,7 +119,7 @@ jobs: cd $E2E_DIR/Bit.BlazorUI.Tests.E2E args=(--report-trx --results-directory "$GITHUB_WORKSPACE/e2e-results") if [ -n "$FILTER" ]; then args+=(--filter "$FILTER"); fi - dotnet exec bin/Debug/net10.0/Bit.BlazorUI.Tests.E2E.dll "${args[@]}" + dotnet exec bin/Debug/net11.0/Bit.BlazorUI.Tests.E2E.dll "${args[@]}" - name: Upload the test results if: always() diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Consumer/Bit.BlazorUI.Tests.Consumer.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Consumer/Bit.BlazorUI.Tests.Consumer.csproj index 17160549366..38a7f1a7b36 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Consumer/Bit.BlazorUI.Tests.Consumer.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Consumer/Bit.BlazorUI.Tests.Consumer.csproj @@ -13,7 +13,7 @@ It references the projects rather than the packages, so it checks the code of the branch it is built from. --> - net10.0 + net11.0 12 enable enable @@ -47,7 +47,7 @@ - + diff --git a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost.Client/Bit.BlazorUI.Tests.E2E.TestHost.Client.csproj b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost.Client/Bit.BlazorUI.Tests.E2E.TestHost.Client.csproj index 5deb9158d4b..025817a570d 100644 --- a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost.Client/Bit.BlazorUI.Tests.E2E.TestHost.Client.csproj +++ b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost.Client/Bit.BlazorUI.Tests.E2E.TestHost.Client.csproj @@ -5,10 +5,10 @@ per browser context from the e2e-render-mode cookie the tests set (see App.razor). The root namespace is the host's, so the pages keep the namespaces they had when they lived in the host itself. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. --> + net11.0 enable enable preview @@ -26,6 +26,7 @@ + diff --git a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost/Bit.BlazorUI.Tests.E2E.TestHost.csproj b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost/Bit.BlazorUI.Tests.E2E.TestHost.csproj index b8aab27cfd2..0fa2a41339b 100644 --- a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost/Bit.BlazorUI.Tests.E2E.TestHost.csproj +++ b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E.TestHost/Bit.BlazorUI.Tests.E2E.TestHost.csproj @@ -1,10 +1,10 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. --> + net11.0 enable enable preview @@ -15,6 +15,7 @@ + diff --git a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E/Bit.BlazorUI.Tests.E2E.csproj b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E/Bit.BlazorUI.Tests.E2E.csproj index cdf70108378..c54249c5054 100644 --- a/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E/Bit.BlazorUI.Tests.E2E.csproj +++ b/src/BlazorUI/Tests/E2E/Bit.BlazorUI.Tests.E2E/Bit.BlazorUI.Tests.E2E.csproj @@ -1,10 +1,10 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 - net10.0 + -p:BuildAllTfms=true to cover net10.0, net9.0 and net8.0 as well. --> + net11.0 false 14.0 enable diff --git a/src/BlazorUI/Tests/E2E/README.md b/src/BlazorUI/Tests/E2E/README.md index 011a2ecfff9..aa1e9d68227 100644 --- a/src/BlazorUI/Tests/E2E/README.md +++ b/src/BlazorUI/Tests/E2E/README.md @@ -32,10 +32,10 @@ E2E/ ## Running Build the solution once (`dotnet build src/BlazorUI/Bit.BlazorUI.slnx`), install the Playwright browsers once -(`pwsh Bit.BlazorUI.Tests.E2E/bin/Debug/net10.0/playwright.ps1 install`), then in `Bit.BlazorUI.Tests.E2E`: +(`pwsh Bit.BlazorUI.Tests.E2E/bin/Debug/net11.0/playwright.ps1 install`), then in `Bit.BlazorUI.Tests.E2E`: ```bash -dotnet test -f net10.0 +dotnet test -f net11.0 ``` The first test starts the host (`dotnet run` of the TestHost on `http://localhost:5290`) and the run stops it at the @@ -43,7 +43,7 @@ end. To pay the host's build once across runs, or to debug a page by hand, start it: ```bash -dotnet run --project Bit.BlazorUI.Tests.E2E.TestHost --framework net10.0 --urls http://localhost:5290 +dotnet run --project Bit.BlazorUI.Tests.E2E.TestHost --framework net11.0 --urls http://localhost:5290 ``` | Variable | Meaning | @@ -53,7 +53,7 @@ dotnet run --project Bit.BlazorUI.Tests.E2E.TestHost --framework net10.0 --urls | `HEADED=1` | watch the browser | | `E2E_HOST_URL` | the host to drive instead of `http://localhost:5290` | -Filter as usual: `dotnet test -f net10.0 --filter "FullyQualifiedName~BitButtonE2ETests"`. Test classes run four at +Filter as usual: `dotnet test -f net11.0 --filter "FullyQualifiedName~BitButtonE2ETests"`. Test classes run four at a time (`E2ETestRun.cs`); the tests of a class run in order. The whole suite is about 6,800 tests and takes roughly a quarter of an hour on Chromium. On a loaded machine a Blazor Server circuit can time out or a fast keystroke can be lost; a test that fails only in the full run and passes alone is load, not a regression. @@ -61,7 +61,7 @@ lost; a test that fails only in the full run and passes alone is load, not a reg If `dotnet test` reports that zero tests ran, run the built assembly directly: ```bash -E2E_HOST_URL=http://localhost:5290 dotnet exec bin/Debug/net10.0/Bit.BlazorUI.Tests.E2E.dll --filter "FullyQualifiedName~BitButtonE2ETests" +E2E_HOST_URL=http://localhost:5290 dotnet exec bin/Debug/net11.0/Bit.BlazorUI.Tests.E2E.dll --filter "FullyQualifiedName~BitButtonE2ETests" ``` ## Writing a page and its tests From ea10e812b79d9b0f07096b08d6c25ef68bfb2fad Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 15 Oct 2026 23:11:18 +0200 Subject: [PATCH 10/45] feat(deps): update project dependencies #13862 --- .devcontainer/devcontainer.json | 2 +- .github/agents/dependency-update.md | 18 ++++-- .github/workflows/admin-sample.cd.yml | 4 +- .github/workflows/all.ci.yml | 12 ++-- .github/workflows/bit.ci.Besql.yml | 2 +- .github/workflows/bit.ci.BlazorES2019.yml | 2 +- .github/workflows/bit.ci.BlazorUI.e2e.yml | 4 +- .github/workflows/bit.ci.BlazorUI.yml | 2 +- .github/workflows/bit.ci.Bmotion.yml | 2 +- .github/workflows/bit.ci.Brouter.e2e.yml | 4 +- .github/workflows/bit.ci.Brouter.yml | 2 +- .github/workflows/bit.ci.Bswup.e2e.yml | 4 +- .github/workflows/bit.ci.Bswup.yml | 2 +- .github/workflows/bit.ci.Butil.e2e.yml | 4 +- .github/workflows/bit.ci.Butil.yml | 2 +- .github/workflows/bit.ci.Cli.yml | 2 +- .github/workflows/bit.ci.CodeAnalyzers.yml | 2 +- .github/workflows/bit.ci.Minifier.yml | 2 +- .github/workflows/bit.ci.SourceGenerators.yml | 2 +- .github/workflows/bit.ci.Templates.yml | 2 +- .github/workflows/bit.ci.Websites.yml | 2 +- .github/workflows/bit.ci.release.yml | 2 +- .github/workflows/blazorui.demo.cd.yml | 2 +- .github/workflows/bmotion.demo.cd.yml | 2 +- .github/workflows/brouter.demo.cd.yml | 2 +- .github/workflows/bswup.demo.cd.yml | 2 +- .github/workflows/butil.demo.cd.yml | 2 +- .github/workflows/nuget.org.yml | 2 +- .github/workflows/prerelease.nuget.org.yml | 2 +- .github/workflows/todo-sample.cd.yml | 8 +-- .../Bit.Besql.Demo.Client.csproj | 2 +- .../Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj | 4 +- .../Bit.BlazorUI.Demo.Server.csproj | 2 +- .../Bit.BlazorUI.Demo.Shared.csproj | 8 +-- .../Bit.BlazorUI.Demo.Client.Core.csproj | 8 +-- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 6 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 6 +- .../Bit.BlazorUI.Tests.Consumer.csproj | 2 +- .../Bit.BlazorUI.Tests.csproj | 2 +- ....BlazorUI.Tests.E2E.TestHost.Client.csproj | 2 +- .../Bit.BlazorUI.Tests.E2E.TestHost.csproj | 2 +- ...BlazorUI.Tests.Performance.TestHost.csproj | 2 +- .../Client/Bit.Brouter.Demo.Client.csproj | 2 +- .../Server/Bit.Brouter.Demo.Server.csproj | 2 +- .../Bit.Brouter.Samples.Auto.Client.csproj | 2 +- .../Bit.Brouter.Samples.Auto.csproj | 2 +- .../Bit.Brouter.Samples.Wasm.Client.csproj | 2 +- .../Bit.Brouter.Samples.Wasm.csproj | 2 +- .../Bit.Brouter.Tests.Harness.Hybrid.csproj | 4 +- ...it.Brouter.Tests.Harness.Web.Client.csproj | 2 +- .../Bit.Brouter.Tests.Harness.Web.csproj | 2 +- .../Bit.Brouter.Tests.Hosting.csproj | 2 +- .../Bit.Brouter.Tests.Mcp.csproj | 2 +- .../Client/Bit.Bswup.Demo.Client.csproj | 2 +- .../Server/Bit.Bswup.Demo.Server.csproj | 2 +- .../BasicSample/Bit.Bswup.BasicSample.csproj | 4 +- .../Client/Bit.Bswup.FullSample.Client.csproj | 2 +- .../Server/Bit.Bswup.FullSample.Server.csproj | 2 +- .../Bit.Bswup.Tests.Harness.Wasm.csproj | 2 +- .../Bit.Bswup.Tests.Harness.Web.Client.csproj | 2 +- .../Bit.Bswup.Tests.Harness.Web.csproj | 2 +- .../Bit.Bswup.Tests.Harness.csproj | 2 +- .../Bit.Bswup.Tests.Hosting.csproj | 2 +- .../Bit.Bswup.Tests.Mcp.csproj | 2 +- .../Demo/Client/Bit.Butil.Demo.Client.csproj | 2 +- .../Demo/Server/Bit.Butil.Demo.Server.csproj | 2 +- .../Bit.Butil.Samples.Maui.csproj | 8 +-- .../Bit.Butil.Samples.Web.csproj | 4 +- .../Bit.Butil.Tests.Harness.Hybrid.csproj | 4 +- .../Bit.Butil.Tests.Harness.Web.Client.csproj | 2 +- .../Bit.Butil.Tests.Harness.Web.csproj | 2 +- .../Bit.Butil.Tests.Hosting.csproj | 2 +- src/Cli/Bit.Cli/Bit.Cli.csproj | 8 +-- .../BlazorEmpty.Client.csproj | 2 +- .../BlazorEmpty/BlazorEmpty.csproj | 2 +- .../BlazorEmpty/Bit.BlazorEmpty/global.json | 2 +- .../.azure-devops/workflows/cd.yml | 6 +- .../.azure-devops/workflows/ci.yml | 4 +- .../.devcontainer/devcontainer.json | 2 +- .../16- CI-CD Pipeline and Environments.md | 4 +- .../.github/workflows/cd-template.yml | 10 ++-- .../Bit.Boilerplate/.github/workflows/ci.yml | 4 +- .../Boilerplate/Bit.Boilerplate/global.json | 2 +- .../src/Directory.Packages.props | 58 +++++++++---------- .../Client/Bit.Bmotion.Demo.Client.csproj | 2 +- .../Server/Bit.Bmotion.Demo.Server.csproj | 2 +- .../Bit.Bmotion.Tests.Mcp.csproj | 2 +- .../Bit.Websites.Careers.Client.csproj | 4 +- .../Bit.Websites.Careers.Server.csproj | 6 +- .../Bit.Websites.Careers.Shared.csproj | 6 +- .../Bit.Websites.Platform.Client.csproj | 6 +- .../Bit.Websites.Platform.Server.csproj | 6 +- .../Bit.Websites.Platform.Shared.csproj | 6 +- .../Bit.Websites.Sales.Client.csproj | 4 +- .../Bit.Websites.Sales.Server.csproj | 6 +- .../Bit.Websites.Sales.Shared.csproj | 6 +- src/global.json | 2 +- 97 files changed, 196 insertions(+), 188 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d39519aea84..dd069871808 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ }, "ghcr.io/devcontainers/features/node:2": { "version": "24" } }, - "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.1", + "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.2", "postStartCommand": "dotnet workload install wasm-tools && dotnet dev-certs https --trust", "waitFor": "onCreateCommand", "customizations": { diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index faa61fba48a..a95f1081fe6 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -124,11 +124,19 @@ the graph already brings `Fragment.Ktx` 1.9.0 (an empty stub), rather than pinni `Xamarin.GooglePlayServices.Auth.Api.Phone` is held at 118.3.1 for the same reason: 118.3.1.1 pulls `GooglePlayServices.Basement` 118.10.0.3, which brings Fragment 1.9.0. -**Linux runners are held at `ubuntu-24.04`**, in the GitHub workflows and the Azure DevOps `vmImage`. -`ubuntu-26.04` defaults to JDK 25 (`(default)` in the image readme's Java table), and .NET for Android -10 accepts up to 21 (`LatestSupportedJavaVersion` 21.0.99), so every Android build there fails. .NET 11 -RC1 still says 21.0.99 and RC2 raises it to 25.0.99 (`Xamarin.Android.Common.props.in` on dotnet/android's -`release/11.0.1xx-rc*` branches); move the runners once the Android workload in use accepts 25. +**EF Core in the Boilerplate follows its PostgreSQL provider.** A preview of +`Npgsql.EntityFrameworkCore.PostgreSQL` asks for one exact EF Core version, and a provider built for another +one fails at runtime ("Method not found"). So the Boilerplate's EF Core stays on the version the newest Npgsql +names, together with every package that requires it (`Microsoft.EntityFrameworkCore.*`, +`Microsoft.AspNetCore.Identity.EntityFrameworkCore`, `Microsoft.AspNetCore.DataProtection.EntityFrameworkCore`, +`Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore`) and its `dnx dotnet-ef` calls, while the +rest of ASP.NET Core moves on. A NU1608 on Npgsql in a restore means this was missed. + +**Linux runners are on `ubuntu-26.04`**, in the GitHub workflows and the Azure DevOps `vmImage`. It +defaults to JDK 25 (`(default)` in the image readme's Java table), which .NET for Android accepts from .NET 11 +RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in`). develop stays on +`ubuntu-24.04`, since .NET for Android 10 accepts up to 21, so a runner pin that comes over from develop moves +to `ubuntu-26.04` here. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 3ced671d3d3..72cfd47e028 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -233,7 +233,7 @@ jobs: deploy_blazor_wasm_standalone: name: build blazor wasm standalone if: inputs.wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -393,7 +393,7 @@ jobs: build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read actions: read diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index a3614f20f94..589a6158e35 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -68,7 +68,7 @@ jobs: test_boilerplate_postgres: name: create project with bit new with postgresql and test it if: ${{ inputs.boilerplate_postgres }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -153,7 +153,7 @@ jobs: test_boilerplate_mysql: name: create project with bit new with mysql and test it if: ${{ inputs.boilerplate_mysql }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -238,7 +238,7 @@ jobs: test_boilerplate_mssql: name: create project with bit new with sql server and test it if: ${{ inputs.boilerplate_mssql }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -322,7 +322,7 @@ jobs: build_boilerplate_configurations: name: create several projects with bit new and build them if: ${{ inputs.boilerplate_configurations }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -382,7 +382,7 @@ jobs: build_blazorempty_configurations: name: build blazorempty based projects - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -429,7 +429,7 @@ jobs: build_nuget_packages: name: build nuget packages locally if: ${{ inputs.nuget_packages }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code diff --git a/.github/workflows/bit.ci.Besql.yml b/.github/workflows/bit.ci.Besql.yml index e810c9f0f32..78062f84ab3 100644 --- a/.github/workflows/bit.ci.Besql.yml +++ b/.github/workflows/bit.ci.Besql.yml @@ -17,7 +17,7 @@ jobs: build-Besql: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Besql - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.BlazorES2019.yml b/.github/workflows/bit.ci.BlazorES2019.yml index 5088aebab77..3e770430f8a 100644 --- a/.github/workflows/bit.ci.BlazorES2019.yml +++ b/.github/workflows/bit.ci.BlazorES2019.yml @@ -17,7 +17,7 @@ jobs: build-BlazorES2019: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BlazorES2019 - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.BlazorUI.e2e.yml b/.github/workflows/bit.ci.BlazorUI.e2e.yml index 770cc1d5ed6..1ab51134781 100644 --- a/.github/workflows/bit.ci.BlazorUI.e2e.yml +++ b/.github/workflows/bit.ci.BlazorUI.e2e.yml @@ -42,7 +42,7 @@ jobs: # Turns the inputs into the job matrix, so a run can be narrowed to one engine or one render mode. plan: name: plan the E2E matrix - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 outputs: browsers: ${{ steps.matrix.outputs.browsers }} modes: ${{ steps.matrix.outputs.modes }} @@ -58,7 +58,7 @@ jobs: e2e-BlazorUI: needs: plan name: E2E ${{ matrix.browser }} / ${{ matrix.mode }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 180 strategy: diff --git a/.github/workflows/bit.ci.BlazorUI.yml b/.github/workflows/bit.ci.BlazorUI.yml index de9dc7360eb..d617a128672 100644 --- a/.github/workflows/bit.ci.BlazorUI.yml +++ b/.github/workflows/bit.ci.BlazorUI.yml @@ -18,7 +18,7 @@ jobs: build-BlazorUI: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BlazorUI - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Bmotion.yml b/.github/workflows/bit.ci.Bmotion.yml index e56390a9c36..d4c5648378b 100644 --- a/.github/workflows/bit.ci.Bmotion.yml +++ b/.github/workflows/bit.ci.Bmotion.yml @@ -17,7 +17,7 @@ jobs: build-Bmotion: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bmotion - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Brouter.e2e.yml b/.github/workflows/bit.ci.Brouter.e2e.yml index 04cfed392d4..e9a0a2ddc19 100644 --- a/.github/workflows/bit.ci.Brouter.e2e.yml +++ b/.github/workflows/bit.ci.Brouter.e2e.yml @@ -19,7 +19,7 @@ jobs: # Chromium, on each runtime the library ships for. e2e-web: name: Brouter E2E - web render modes (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -150,7 +150,7 @@ jobs: # it is visible in a Debug build. publish-gate: name: Brouter publish gate (${{ matrix.name }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: diff --git a/.github/workflows/bit.ci.Brouter.yml b/.github/workflows/bit.ci.Brouter.yml index d554ff9995e..e5293b60bce 100644 --- a/.github/workflows/bit.ci.Brouter.yml +++ b/.github/workflows/bit.ci.Brouter.yml @@ -21,7 +21,7 @@ jobs: build-Brouter: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Brouter - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Bswup.e2e.yml b/.github/workflows/bit.ci.Bswup.e2e.yml index 86c6df8fb2a..25b1f06993c 100644 --- a/.github/workflows/bit.ci.Bswup.e2e.yml +++ b/.github/workflows/bit.ci.Bswup.e2e.yml @@ -20,7 +20,7 @@ jobs: # library ships for. e2e-web: name: Bswup E2E - browser (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -90,7 +90,7 @@ jobs: # hashes the published manifest carries, which a Debug build never shows. publish-gate: name: Bswup publish gate - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code diff --git a/.github/workflows/bit.ci.Bswup.yml b/.github/workflows/bit.ci.Bswup.yml index 6c6185212e5..63fcde68fb4 100644 --- a/.github/workflows/bit.ci.Bswup.yml +++ b/.github/workflows/bit.ci.Bswup.yml @@ -21,7 +21,7 @@ jobs: build-Bswup: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bswup - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Butil.e2e.yml b/.github/workflows/bit.ci.Butil.e2e.yml index bb677b64ef9..411404b22a4 100644 --- a/.github/workflows/bit.ci.Butil.e2e.yml +++ b/.github/workflows/bit.ci.Butil.e2e.yml @@ -21,7 +21,7 @@ jobs: # and without prerendering) in Chromium - on every runtime the library ships for where the runtime is what differs. e2e-web: name: Butil E2E - ${{ matrix.host }} (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -168,7 +168,7 @@ jobs: # it is visible in a Debug build. publish-gate: name: Butil publish gate (${{ matrix.name }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: diff --git a/.github/workflows/bit.ci.Butil.yml b/.github/workflows/bit.ci.Butil.yml index 921fa78a5b2..453754a5c92 100644 --- a/.github/workflows/bit.ci.Butil.yml +++ b/.github/workflows/bit.ci.Butil.yml @@ -22,7 +22,7 @@ jobs: build-Butil: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Butil - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Cli.yml b/.github/workflows/bit.ci.Cli.yml index 8389e48226e..0d2606ca781 100644 --- a/.github/workflows/bit.ci.Cli.yml +++ b/.github/workflows/bit.ci.Cli.yml @@ -27,7 +27,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04, windows-2025, macOS-26 ] + os: [ ubuntu-26.04, windows-2025, macOS-26 ] steps: diff --git a/.github/workflows/bit.ci.CodeAnalyzers.yml b/.github/workflows/bit.ci.CodeAnalyzers.yml index 66f4949c010..4c92b02c6fc 100644 --- a/.github/workflows/bit.ci.CodeAnalyzers.yml +++ b/.github/workflows/bit.ci.CodeAnalyzers.yml @@ -17,7 +17,7 @@ jobs: build-CodeAnalyzers: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.CodeAnalyzers - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Minifier.yml b/.github/workflows/bit.ci.Minifier.yml index f9cb274f5cf..5a3c23e3889 100644 --- a/.github/workflows/bit.ci.Minifier.yml +++ b/.github/workflows/bit.ci.Minifier.yml @@ -17,7 +17,7 @@ jobs: build-Minifier: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Minifier - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.SourceGenerators.yml b/.github/workflows/bit.ci.SourceGenerators.yml index 99d92fadcac..e8993b5bb1e 100644 --- a/.github/workflows/bit.ci.SourceGenerators.yml +++ b/.github/workflows/bit.ci.SourceGenerators.yml @@ -17,7 +17,7 @@ jobs: build-SourceGenerators: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.SourceGenerators - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Templates.yml b/.github/workflows/bit.ci.Templates.yml index 813f8cca0e6..86ab28c5e10 100644 --- a/.github/workflows/bit.ci.Templates.yml +++ b/.github/workflows/bit.ci.Templates.yml @@ -25,7 +25,7 @@ jobs: build-Templates: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Templates - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Websites.yml b/.github/workflows/bit.ci.Websites.yml index 45123762a64..1f8e39fc311 100644 --- a/.github/workflows/bit.ci.Websites.yml +++ b/.github/workflows/bit.ci.Websites.yml @@ -23,7 +23,7 @@ jobs: build-Websites: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Websites - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.release.yml b/.github/workflows/bit.ci.release.yml index e54c77c0874..0a5e843825d 100644 --- a/.github/workflows/bit.ci.release.yml +++ b/.github/workflows/bit.ci.release.yml @@ -15,7 +15,7 @@ jobs: build-release: if: startsWith(github.event.pull_request.title, 'Prerelease') || startsWith(github.event.pull_request.title, 'Release') || startsWith(github.event.pull_request.title, 'Version') name: build and test for release - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/blazorui.demo.cd.yml b/.github/workflows/blazorui.demo.cd.yml index af108d279f4..c09d7e201a4 100644 --- a/.github/workflows/blazorui.demo.cd.yml +++ b/.github/workflows/blazorui.demo.cd.yml @@ -226,7 +226,7 @@ jobs: build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read actions: read diff --git a/.github/workflows/bmotion.demo.cd.yml b/.github/workflows/bmotion.demo.cd.yml index 792202edfe6..bcc65cab1a9 100644 --- a/.github/workflows/bmotion.demo.cd.yml +++ b/.github/workflows/bmotion.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/brouter.demo.cd.yml b/.github/workflows/brouter.demo.cd.yml index bd032e65991..914331fcc84 100644 --- a/.github/workflows/brouter.demo.cd.yml +++ b/.github/workflows/brouter.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bswup.demo.cd.yml b/.github/workflows/bswup.demo.cd.yml index a53af49d929..d5e775f51a0 100644 --- a/.github/workflows/bswup.demo.cd.yml +++ b/.github/workflows/bswup.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/butil.demo.cd.yml b/.github/workflows/butil.demo.cd.yml index d34f5e8e5dc..94fc438d7f3 100644 --- a/.github/workflows/butil.demo.cd.yml +++ b/.github/workflows/butil.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/nuget.org.yml b/.github/workflows/nuget.org.yml index 96287910add..3b745f1b0a6 100644 --- a/.github/workflows/nuget.org.yml +++ b/.github/workflows/nuget.org.yml @@ -38,7 +38,7 @@ permissions: jobs: build-publish: name: build & publish - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 environment: code-signing permissions: contents: read diff --git a/.github/workflows/prerelease.nuget.org.yml b/.github/workflows/prerelease.nuget.org.yml index bc6e3619f0c..32d536b29f7 100644 --- a/.github/workflows/prerelease.nuget.org.yml +++ b/.github/workflows/prerelease.nuget.org.yml @@ -12,7 +12,7 @@ permissions: jobs: build-publish: name: build & publish - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 environment: code-signing permissions: contents: read diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index 87b8a2eee68..de8b3157979 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -287,7 +287,7 @@ jobs: deploy_blazor_wasm_standalone_aot: name: build blazor wasm standalone (AOT) if: inputs.wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -341,7 +341,7 @@ jobs: deploy_blazor_wasm_standalone_offlineDb: name: build blazor wasm standalone (Offline database) if: inputs.wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -396,7 +396,7 @@ jobs: deploy_blazor_wasm_standalone_small: name: build blazor wasm standalone (small) if: inputs.wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -552,7 +552,7 @@ jobs: build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read actions: read diff --git a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj index e213f82cbca..0a871ee6ada 100644 --- a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj index 73250a5656c..ece8f05c38d 100644 --- a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@ call on demand and becomes a publish step: it precompiles queries during publish and then fails, because the DbContext lives in Bit.Besql.Demo.Client rather than in this startup project. The Optimize-DbContext and Add-Migration commands described above come from Tools, which stays. --> - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index eb60e3b6346..571f5a308b4 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -42,7 +42,7 @@ - + diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index cb3a8e991f2..89972ce5624 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -13,10 +13,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 8ec7273c2fe..818e9c5d174 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -25,10 +25,10 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 5bde7c7ba8c..3859f43806b 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -106,9 +106,9 @@ - - - + + + - + diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj index 177d75f4d2e..5f194ad07c8 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto.Client/Bit.Brouter.Samples.Auto.Client.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj index 87d8faf2cc4..ccace1e7bab 100644 --- a/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj +++ b/src/Brouter/Samples/Auto/Bit.Brouter.Samples.Auto/Bit.Brouter.Samples.Auto.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj index 177d75f4d2e..5f194ad07c8 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm.Client/Bit.Brouter.Samples.Wasm.Client.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj index 3f6eeb69423..a3144ea3166 100644 --- a/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj +++ b/src/Brouter/Samples/Wasm/Bit.Brouter.Samples.Wasm/Bit.Brouter.Samples.Wasm.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj index 75faa81e85b..40fc04a87b3 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Hybrid/Bit.Brouter.Tests.Harness.Hybrid.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj index 0e2015053a7..c9fb26b194f 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web.Client/Bit.Brouter.Tests.Harness.Web.Client.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj index 4133f996120..0319299db74 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Harness.Web/Bit.Brouter.Tests.Harness.Web.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj index dd77e230ff8..cf5ee7f93aa 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Hosting/Bit.Brouter.Tests.Hosting.csproj @@ -23,7 +23,7 @@ - + diff --git a/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj b/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj index f0069aca06e..2bc3577090c 100644 --- a/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj +++ b/src/Brouter/Tests/Bit.Brouter.Tests.Mcp/Bit.Brouter.Tests.Mcp.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj b/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj index b8efdcdc37a..856512d007c 100644 --- a/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj +++ b/src/Bswup/Bit.Bswup.Demo/Client/Bit.Bswup.Demo.Client.csproj @@ -21,7 +21,7 @@ - + diff --git a/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj b/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj index 96181fd047d..445b64537dd 100644 --- a/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj +++ b/src/Bswup/Bit.Bswup.Demo/Server/Bit.Bswup.Demo.Server.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/Bswup/Samples/BasicSample/Bit.Bswup.BasicSample.csproj b/src/Bswup/Samples/BasicSample/Bit.Bswup.BasicSample.csproj index a0f86691986..66bfa29b529 100644 --- a/src/Bswup/Samples/BasicSample/Bit.Bswup.BasicSample.csproj +++ b/src/Bswup/Samples/BasicSample/Bit.Bswup.BasicSample.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/src/Bswup/Samples/FullSample/Client/Bit.Bswup.FullSample.Client.csproj b/src/Bswup/Samples/FullSample/Client/Bit.Bswup.FullSample.Client.csproj index 70fc0dd0456..ff9aa4e1f33 100644 --- a/src/Bswup/Samples/FullSample/Client/Bit.Bswup.FullSample.Client.csproj +++ b/src/Bswup/Samples/FullSample/Client/Bit.Bswup.FullSample.Client.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/Bswup/Samples/FullSample/Server/Bit.Bswup.FullSample.Server.csproj b/src/Bswup/Samples/FullSample/Server/Bit.Bswup.FullSample.Server.csproj index e3b5ae2a45e..ca2c36aa7da 100644 --- a/src/Bswup/Samples/FullSample/Server/Bit.Bswup.FullSample.Server.csproj +++ b/src/Bswup/Samples/FullSample/Server/Bit.Bswup.FullSample.Server.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Wasm/Bit.Bswup.Tests.Harness.Wasm.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Wasm/Bit.Bswup.Tests.Harness.Wasm.csproj index f8d8e56a674..d0b4c7d6dbd 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Wasm/Bit.Bswup.Tests.Harness.Wasm.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Wasm/Bit.Bswup.Tests.Harness.Wasm.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj index 0eb9f292f01..f9cae89850a 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web.Client/Bit.Bswup.Tests.Harness.Web.Client.csproj @@ -23,7 +23,7 @@ - + diff --git a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj index 2c896c73df6..9710453fc0a 100644 --- a/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj +++ b/src/Bswup/Tests/Bit.Bswup.Tests.Harness.Web/Bit.Bswup.Tests.Harness.Web.csproj @@ -18,7 +18,7 @@ - + - + diff --git a/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj b/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj index 7176f216fa8..f0c02005dc7 100644 --- a/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj +++ b/src/Butil/Demo/Client/Bit.Butil.Demo.Client.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj b/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj index 65a52d14cc4..c69cd26dc49 100644 --- a/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj +++ b/src/Butil/Demo/Server/Bit.Butil.Demo.Server.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj index a80d99347cc..8114c970402 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj @@ -47,10 +47,10 @@ - - - - + + + + diff --git a/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj b/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj index 9477d6ff729..b8e92d1c71c 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Web/Bit.Butil.Samples.Web.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj index 739b19132c5..cbc2283e8ef 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Hybrid/Bit.Butil.Tests.Harness.Hybrid.csproj @@ -21,8 +21,8 @@ - - + + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj index 3d98cb949f3..e11d952c000 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Web.Client/Bit.Butil.Tests.Harness.Web.Client.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj index f90c68e20fb..b9a77fc15fc 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Harness.Web/Bit.Butil.Tests.Harness.Web.csproj @@ -25,7 +25,7 @@ - + diff --git a/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj b/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj index 07d873c666d..113b8df1701 100644 --- a/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.Hosting/Bit.Butil.Tests.Hosting.csproj @@ -27,7 +27,7 @@ - + diff --git a/src/Cli/Bit.Cli/Bit.Cli.csproj b/src/Cli/Bit.Cli/Bit.Cli.csproj index 0578c71dfda..4887a130df9 100644 --- a/src/Cli/Bit.Cli/Bit.Cli.csproj +++ b/src/Cli/Bit.Cli/Bit.Cli.csproj @@ -30,10 +30,10 @@ - - - - + + + + diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj index 6ab3ac3268f..cd568722514 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj index 52370e8db0c..c5721a19ea2 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json index 9b40ef830e9..b31355670e7 100644 --- a/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json +++ b/src/Templates/BlazorEmpty/Bit.BlazorEmpty/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-rc.1.26425.128", + "version": "11.0.100-rc.2.26504.105", "rollForward": "disable" } } \ No newline at end of file diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml index 796c10c28ee..59422a2b42d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml @@ -26,7 +26,7 @@ jobs: displayName: 'build api + blazor web' pool: - vmImage: 'ubuntu-24.04' + vmImage: 'ubuntu-26.04' steps: - task: UseDotNet@2 @@ -76,7 +76,7 @@ jobs: displayName: 'deploy api + blazor' pool: - vmImage: 'ubuntu-24.04' + vmImage: 'ubuntu-26.04' steps: @@ -199,7 +199,7 @@ jobs: displayName: 'build blazor hybrid (android)' pool: - vmImage: 'ubuntu-24.04' + vmImage: 'ubuntu-26.04' steps: - task: UseDotNet@2 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml index df72f5eb2c6..b659da3de3f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: displayName: 'CI build' pool: - vmImage: 'ubuntu-24.04' + vmImage: 'ubuntu-26.04' steps: - task: UseDotNet@2 @@ -40,7 +40,7 @@ jobs: displayName: 'CI test' pool: - vmImage: 'ubuntu-24.04' + vmImage: 'ubuntu-26.04' steps: - task: UseDotNet@2 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json index d57b8b18109..264e3763f4b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Boilerplate", - "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.1", + "image": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.2", "hostRequirements": { "cpus": 4 }, diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md index f1d90e9f57e..00704f8976e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.docs/16- CI-CD Pipeline and Environments.md @@ -566,7 +566,7 @@ The workflow follows a **security-focused two-phase deployment** pattern that se ```yaml # Phase 1: Build (no production access) build_api_blazor: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 - uses: actions/setup-dotnet@v6 @@ -578,7 +578,7 @@ build_api_blazor: # Phase 2: Deploy (has production access) deploy_api_blazor: needs: build_api_blazor # Depends on Phase 1 - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/download-artifact@v8 # Get pre-built artifact - uses: azure/webapps-deploy@v3 # Deploy to production diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml index e4f1f30646d..98a40dd4150 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml @@ -19,7 +19,7 @@ jobs: build_api_blazor: name: build api + blazor web - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read id-token: write @@ -84,7 +84,7 @@ jobs: deploy_api_blazor: name: deploy api + blazor needs: build_api_blazor - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 environment: name: ${{ inputs.ENV_NAME }} url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} @@ -117,7 +117,7 @@ jobs: #if (api == "Standalone") build_api: name: build api - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read id-token: write @@ -163,7 +163,7 @@ jobs: deploy_api: name: deploy api needs: build_api - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 environment: name: ${{ inputs.ENV_NAME }} url: ${{ steps.deploy-api-to-webapp.outputs.webapp-url }} @@ -269,7 +269,7 @@ jobs: build_blazor_hybrid_android: name: build blazor hybrid (android) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read id-token: write diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml index 36ac96092e8..68583a67af6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: build: name: build - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -49,7 +49,7 @@ jobs: test: name: test - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/global.json b/src/Templates/Boilerplate/Bit.Boilerplate/global.json index 17e6b39aff1..dbbf5231722 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/global.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-rc.1.26425.128", + "version": "11.0.100-rc.2.26504.105", "rollForward": "disable" }, "test": { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index c96a362f040..bc9e291f948 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -17,27 +17,27 @@ - - - - + + + + - - + + - + - - - - - - + + + + + + @@ -54,11 +54,11 @@ - - - - - + + + + + @@ -95,7 +95,7 @@ - + @@ -122,8 +122,8 @@ - - + + @@ -132,7 +132,7 @@ - + @@ -141,17 +141,17 @@ - - - + + + - - - - + + + + diff --git a/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj b/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj index 9627930a7f2..df85508bbb9 100644 --- a/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj +++ b/src/Utilities/Bmotion/Demo/Client/Bit.Bmotion.Demo.Client.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj b/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj index f6cfa05301b..6cb4508f2f6 100644 --- a/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj +++ b/src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj index 375189cb313..b52f0b2dde9 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp/Bit.Bmotion.Tests.Mcp.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index da389f1a3d9..804038df960 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -17,7 +17,7 @@ - + @@ -39,7 +39,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 822b056075d..40cb0adbeeb 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -21,9 +21,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index 653a48a9af6..241778e5fe7 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 386703afd12..8deaf842a90 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -23,7 +23,7 @@ - + @@ -43,8 +43,8 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index b3f68827ef6..44004392fb3 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -26,9 +26,9 @@ - - - + + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index 653a48a9af6..241778e5fe7 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index ffe670c28be..7a5376936d6 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -17,7 +17,7 @@ - + @@ -39,7 +39,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index dfe7f011e39..60cce1295c1 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -21,9 +21,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index 653a48a9af6..241778e5fe7 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/global.json b/src/global.json index 0aa152c4bec..47ca5c294ee 100644 --- a/src/global.json +++ b/src/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "11.0.100-rc.1.26425.128", + "version": "11.0.100-rc.2.26504.105", "rollForward": "disable" }, "test": { From d27efc1c4e93f99f837cfd2c92319c917cd9db0b Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 00:32:46 +0200 Subject: [PATCH 11/45] fix(deps): hold MAUI at 11.0.0-rc.1 while its resizetizer breaks on SVG filters #13862 --- .github/agents/dependency-update.md | 14 +++++++------- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 ++-- .../Bit.Butil.Samples.Maui.csproj | 4 ++-- .../Bit.Boilerplate/src/Directory.Packages.props | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index a95f1081fe6..9217ff20c8a 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -108,13 +108,13 @@ gh api "repos///git/trees/?recursive=1" --jq '[.tree[]|select( A non-zero count on a JavaScript action that vendors `node_modules` means it will not stage. This is worth checking for *any* action bump, not just this one — it is invisible in the release notes. -**A MAUI bump needs one MAUI build.** MAUI's resizetizer bundles an `Svg.Skia`, and from 10.0.101 to -10.0.110 that `Svg.Skia` called a SkiaSharp overload missing from the SkiaSharp next to it, so any SVG -with a `` failed the build with `MAUIR0001` / -`MissingMethodException: SKImageFilter.CreateMatrixConvolution` -([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). The app icons of the Boilerplate -and the BlazorUI demo have one, so before moving MAUI, build a MAUI app with the Boilerplate's -`appicon.svg` as its icon, for any target. +**MAUI is held at 11.0.0-rc.1.26451.6** (`Microsoft.Maui.Controls` and `Components.WebView.Maui`, in the +Boilerplate, the BlazorUI demo and the Butil sample; develop holds 10.0.100 for the same reason). From 10.0.101 +and 11.0.0-rc.2 on, MAUI bundles an `Svg.Skia` that calls a SkiaSharp overload missing from the SkiaSharp next +to it, so the resizetizer fails with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrixConvolution` +on any SVG icon with a `` ([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). Move only +once that issue is closed and `dotnet build -f net11.0-ios` passes on the Boilerplate. `WebView.WindowsForms` has +no resizetizer and is not held. **`Xamarin.Firebase.Messaging` is held at 125.1.1.** 125.1.2 pulls `Xamarin.AndroidX.Fragment` 1.9.0 (through `GooglePlayServices.Base` 118.10.1), which absorbed the ktx classes, while the rest of the diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 3859f43806b..5af2b988821 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -106,8 +106,8 @@ - - + + diff --git a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj index 8114c970402..e8318863dac 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj @@ -47,8 +47,8 @@ - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index bc9e291f948..e155b523917 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -34,9 +34,9 @@ - + - + From a320f4255d9f43036fb72e80873134e78b743ba5 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 01:12:06 +0200 Subject: [PATCH 12/45] fix(deps): keep MAUI on RC2 and leave the app icons' drop shadow out while its resizetizer breaks on SVG filters #13862 --- .github/agents/dependency-update.md | 14 +++++++------- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 4 ++-- .../Resources/AppIcon/appicon.svg | 12 +----------- .../Bit.Butil.Samples.Maui.csproj | 4 ++-- .../Resources/AppIcon/appicon.svg | 12 +----------- .../Bit.Boilerplate/src/Directory.Packages.props | 4 ++-- 6 files changed, 15 insertions(+), 35 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 9217ff20c8a..611a6814513 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -108,13 +108,13 @@ gh api "repos///git/trees/?recursive=1" --jq '[.tree[]|select( A non-zero count on a JavaScript action that vendors `node_modules` means it will not stage. This is worth checking for *any* action bump, not just this one — it is invisible in the release notes. -**MAUI is held at 11.0.0-rc.1.26451.6** (`Microsoft.Maui.Controls` and `Components.WebView.Maui`, in the -Boilerplate, the BlazorUI demo and the Butil sample; develop holds 10.0.100 for the same reason). From 10.0.101 -and 11.0.0-rc.2 on, MAUI bundles an `Svg.Skia` that calls a SkiaSharp overload missing from the SkiaSharp next -to it, so the resizetizer fails with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrixConvolution` -on any SVG icon with a `` ([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). Move only -once that issue is closed and `dotnet build -f net11.0-ios` passes on the Boilerplate. `WebView.WindowsForms` has -no resizetizer and is not held. +**MAUI's resizetizer breaks on SVG filters.** From 10.0.101 and 11.0.0-rc.2 on, MAUI bundles an `Svg.Skia` that +calls a SkiaSharp overload missing from the SkiaSharp next to it, so any SVG it resizes that has a `` fails +the build with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrixConvolution` +([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). develop holds MAUI at 10.0.100 for it. On +this branch MAUI can't stay behind: a MAUI built for an older preview doesn't compile against the newer +preview's Android workload (CS1705 on `Java.Interop`). So MAUI follows the SDK here, and the app icons of the +Boilerplate and the BlazorUI demo carry no drop shadow (their ``) until that issue is fixed. **`Xamarin.Firebase.Messaging` is held at 125.1.1.** 125.1.2 pulls `Xamarin.AndroidX.Fragment` 1.9.0 (through `GooglePlayServices.Base` 118.10.1), which absorbed the ktx classes, while the rest of the diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 5af2b988821..3859f43806b 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -106,8 +106,8 @@ - - + + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Resources/AppIcon/appicon.svg b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Resources/AppIcon/appicon.svg index 3111a45f65a..a851bcc91c8 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Resources/AppIcon/appicon.svg +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Resources/AppIcon/appicon.svg @@ -5,7 +5,7 @@ - + @@ -17,16 +17,6 @@ - - - - - - - - - - diff --git a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj index e8318863dac..8114c970402 100644 --- a/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj +++ b/src/Butil/Samples/Bit.Butil.Samples.Maui/Bit.Butil.Samples.Maui.csproj @@ -47,8 +47,8 @@ - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Resources/AppIcon/appicon.svg b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Resources/AppIcon/appicon.svg index cef77f749f3..44c9ec9467c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Resources/AppIcon/appicon.svg +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Resources/AppIcon/appicon.svg @@ -9,7 +9,7 @@ - + @@ -18,16 +18,6 @@ - - - - - - - - - - diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index e155b523917..bc9e291f948 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -34,9 +34,9 @@ - + - + From 5184d8007b40114aefdbb39c16133721ac804c70 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 01:20:13 +0200 Subject: [PATCH 13/45] fix(infra): leave the SVG filters out of the Todo CD's app icon while MAUI's resizetizer can't render them #13862 --- .github/agents/dependency-update.md | 3 ++- .github/workflows/todo-sample.cd.yml | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 611a6814513..5008f7a35f1 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -114,7 +114,8 @@ the build with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrix ([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). develop holds MAUI at 10.0.100 for it. On this branch MAUI can't stay behind: a MAUI built for an older preview doesn't compile against the newer preview's Android workload (CS1705 on `Java.Interop`). So MAUI follows the SDK here, and the app icons of the -Boilerplate and the BlazorUI demo carry no drop shadow (their ``) until that issue is fixed. +Boilerplate and the BlazorUI demo carry no drop shadow (their ``) until that issue is fixed; the Todo CD +strips it from the icon it takes from the `TODO_ICON` variable. **`Xamarin.Firebase.Messaging` is held at 125.1.1.** 125.1.2 pulls `Xamarin.AndroidX.Fragment` 1.9.0 (through `GooglePlayServices.Base` 118.10.1), which absorbed the ktx classes, while the rest of the diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index de8b3157979..0cd3189ac67 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -622,6 +622,9 @@ jobs: fileName: 'appicon.svg' encodedString: ${{ vars.TODO_ICON }} + - name: Leave the App Icon's SVG filters out, which MAUI's resizetizer can't render (dotnet/maui#38319) + run: perl -0pi -e 's/ filter="url\(#[^)]*\)"//g; s/\s*//gs' TodoSample/src/Client/TodoSample.Client.Maui/Resources/AppIcon/appicon.svg + - name: Delete App Splash Screen run: rm TodoSample/src/Client/TodoSample.Client.Maui/Resources/Splash/splash.svg @@ -737,6 +740,9 @@ jobs: fileName: 'appicon.svg' encodedString: ${{ vars.TODO_ICON }} + - name: Leave the App Icon's SVG filters out, which MAUI's resizetizer can't render (dotnet/maui#38319) + run: perl -0pi -e 's/ filter="url\(#[^)]*\)"//g; s/\s*//gs' TodoSample/src/Client/TodoSample.Client.Maui/Resources/AppIcon/appicon.svg + - name: Delete App Splash Screen run: rm TodoSample/src/Client/TodoSample.Client.Maui/Resources/Splash/splash.svg From 2e32ecf1f93a7e2ce3cc90d90ba2d6572a9d4c44 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 01:30:58 +0200 Subject: [PATCH 14/45] fix(infra): keep the BlazorUI CI on ubuntu-24.04 while its tests read ar-SA's calendar from the system ICU #13862 --- .github/agents/dependency-update.md | 5 ++++- .github/workflows/bit.ci.BlazorUI.e2e.yml | 2 +- .github/workflows/bit.ci.BlazorUI.yml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 5008f7a35f1..8990a51dd88 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -137,7 +137,10 @@ rest of ASP.NET Core moves on. A NU1608 on Npgsql in a restore means this was mi defaults to JDK 25 (`(default)` in the image readme's Java table), which .NET for Android accepts from .NET 11 RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in`). develop stays on `ubuntu-24.04`, since .NET for Android 10 accepts up to 21, so a runner pin that comes over from develop moves -to `ubuntu-26.04` here. +to `ubuntu-26.04` here. The two BlazorUI workflows (`bit.ci.BlazorUI.yml`, `bit.ci.BlazorUI.e2e.yml`) stay on +`ubuntu-24.04`: their calendar tests take `ar-SA` for a culture whose default calendar is Umm al-Qura, which is +the system ICU's data, and the ICU of `ubuntu-26.04` defaults it to Gregorian. Move them once those tests set the +calendar themselves. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. diff --git a/.github/workflows/bit.ci.BlazorUI.e2e.yml b/.github/workflows/bit.ci.BlazorUI.e2e.yml index 1ab51134781..3a9dd936167 100644 --- a/.github/workflows/bit.ci.BlazorUI.e2e.yml +++ b/.github/workflows/bit.ci.BlazorUI.e2e.yml @@ -58,7 +58,7 @@ jobs: e2e-BlazorUI: needs: plan name: E2E ${{ matrix.browser }} / ${{ matrix.mode }} - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 timeout-minutes: 180 strategy: diff --git a/.github/workflows/bit.ci.BlazorUI.yml b/.github/workflows/bit.ci.BlazorUI.yml index d617a128672..de9dc7360eb 100644 --- a/.github/workflows/bit.ci.BlazorUI.yml +++ b/.github/workflows/bit.ci.BlazorUI.yml @@ -18,7 +18,7 @@ jobs: build-BlazorUI: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BlazorUI - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 steps: From d2531c8a591bc0a4ecce9e9e01367709f785801c Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 01:49:04 +0200 Subject: [PATCH 15/45] fix(infra): run the PostgreSQL template tests on ubuntu-24.04, whose runner ubuntu-26.04 shuts down mid-run #13862 --- .github/workflows/all.ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index 589a6158e35..f76c0d3121f 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -68,7 +68,7 @@ jobs: test_boilerplate_postgres: name: create project with bit new with postgresql and test it if: ${{ inputs.boilerplate_postgres }} - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 steps: - name: Checkout source code From 36370d645043400702d2a05458c2ba220e5cdba1 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 02:40:50 +0200 Subject: [PATCH 16/45] docs(infra): note why the PostgreSQL template job stays on ubuntu-24.04 #13862 --- .github/agents/dependency-update.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 8990a51dd88..b8c1b6fdf28 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -140,7 +140,9 @@ RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in to `ubuntu-26.04` here. The two BlazorUI workflows (`bit.ci.BlazorUI.yml`, `bit.ci.BlazorUI.e2e.yml`) stay on `ubuntu-24.04`: their calendar tests take `ar-SA` for a culture whose default calendar is Umm al-Qura, which is the system ICU's data, and the ICU of `ubuntu-26.04` defaults it to Gregorian. Move them once those tests set the -calendar themselves. +calendar themselves. All CI's PostgreSQL template job stays on `ubuntu-24.04` too: on `ubuntu-26.04` its runner +"received a shutdown signal" in the middle of the tests, twice, while the same code passes on `ubuntu-24.04`. Try it +again on a newer image. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. From 8adc0341f172a47d67ee940fc5045735caf6ba4a Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 03:06:18 +0200 Subject: [PATCH 17/45] chore(infra): log the runner's memory, threads and connections while the PostgreSQL template tests run --- .github/workflows/all.ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index f76c0d3121f..926f77a6be4 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -100,7 +100,9 @@ jobs: - name: Run tests (Blazor Server) id: test-postgresql-blazorserver working-directory: TestPostgreSQL/src/Tests - run: dotnet test + run: | + (while true; do echo "resources $(date -u +%H:%M:%S): $(free -m | awk '/Mem:/ {print "used " $3 " of " $2 " MB, available " $7}; /Swap:/ {print "swap used " $3}' | tr '\n' ' ') threads $(ps -eLf | wc -l) processes $(ps -e | wc -l) postgres-conns $(docker exec $(docker ps -q --filter ancestor=pgvector/pgvector:pg18 | head -1) psql -U postgres -tAc 'select count(*) from pg_stat_activity' 2>/dev/null)"; ps -eo rss,nlwp,comm --sort=-rss | head -6 | tail -5 | awk '{printf " %s MB %s threads %s\n", int($1/1024), $2, $3}'; sleep 30; done) & + dotnet test - name: Upload Blazor Server test results on failure uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 From 464374c335fdfbcbe8256309497e376213b00f34 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 04:02:25 +0200 Subject: [PATCH 18/45] chore(infra): take a GC heap snapshot of the PostgreSQL template tests once their test host passes 5 GB --- .github/workflows/all.ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index 926f77a6be4..ec7629291ba 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -101,7 +101,9 @@ jobs: id: test-postgresql-blazorserver working-directory: TestPostgreSQL/src/Tests run: | - (while true; do echo "resources $(date -u +%H:%M:%S): $(free -m | awk '/Mem:/ {print "used " $3 " of " $2 " MB, available " $7}; /Swap:/ {print "swap used " $3}' | tr '\n' ' ') threads $(ps -eLf | wc -l) processes $(ps -e | wc -l) postgres-conns $(docker exec $(docker ps -q --filter ancestor=pgvector/pgvector:pg18 | head -1) psql -U postgres -tAc 'select count(*) from pg_stat_activity' 2>/dev/null)"; ps -eo rss,nlwp,comm --sort=-rss | head -6 | tail -5 | awk '{printf " %s MB %s threads %s\n", int($1/1024), $2, $3}'; sleep 30; done) & + dotnet tool install -g dotnet-gcdump > /dev/null + mkdir -p TestResults + (dumped=0; while true; do echo "resources $(date -u +%H:%M:%S): $(free -m | awk '/Mem:/ {print "used " $3 " of " $2 " MB, available " $7}; /Swap:/ {print "swap used " $3}' | tr '\n' ' ') threads $(ps -eLf | wc -l) processes $(ps -e | wc -l)"; ps -eo rss,nlwp,comm --sort=-rss | head -6 | tail -5 | awk '{printf " %s MB %s threads %s\n", int($1/1024), $2, $3}'; pid=$(ps -eo pid,rss,comm --sort=-rss | awk '$3=="dotnet" && $2>5000000 {print $1; exit}'); if [ -n "$pid" ] && [ $dumped = 0 ]; then dumped=1; echo "gcdump of $pid: $(ps -o args= -p $pid | cut -c1-200)"; DOTNET_ROLL_FORWARD=Major ~/.dotnet/tools/dotnet-gcdump collect -p $pid -o TestResults/testhost.gcdump; kill -9 $pid; fi; sleep 20; done) & dotnet test - name: Upload Blazor Server test results on failure From 47768dbcf675b277f9deea83b34ae6a4c6a6be1f Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 04:13:39 +0200 Subject: [PATCH 19/45] revert(infra): undo the PostgreSQL CI experiments; ubuntu-26.04 isn't what kills that job #13862 --- .github/agents/dependency-update.md | 4 +--- .github/workflows/all.ci.yml | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index b8c1b6fdf28..8990a51dd88 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -140,9 +140,7 @@ RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in to `ubuntu-26.04` here. The two BlazorUI workflows (`bit.ci.BlazorUI.yml`, `bit.ci.BlazorUI.e2e.yml`) stay on `ubuntu-24.04`: their calendar tests take `ar-SA` for a culture whose default calendar is Umm al-Qura, which is the system ICU's data, and the ICU of `ubuntu-26.04` defaults it to Gregorian. Move them once those tests set the -calendar themselves. All CI's PostgreSQL template job stays on `ubuntu-24.04` too: on `ubuntu-26.04` its runner -"received a shutdown signal" in the middle of the tests, twice, while the same code passes on `ubuntu-24.04`. Try it -again on a newer image. +calendar themselves. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index ec7629291ba..589a6158e35 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -68,7 +68,7 @@ jobs: test_boilerplate_postgres: name: create project with bit new with postgresql and test it if: ${{ inputs.boilerplate_postgres }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code @@ -100,11 +100,7 @@ jobs: - name: Run tests (Blazor Server) id: test-postgresql-blazorserver working-directory: TestPostgreSQL/src/Tests - run: | - dotnet tool install -g dotnet-gcdump > /dev/null - mkdir -p TestResults - (dumped=0; while true; do echo "resources $(date -u +%H:%M:%S): $(free -m | awk '/Mem:/ {print "used " $3 " of " $2 " MB, available " $7}; /Swap:/ {print "swap used " $3}' | tr '\n' ' ') threads $(ps -eLf | wc -l) processes $(ps -e | wc -l)"; ps -eo rss,nlwp,comm --sort=-rss | head -6 | tail -5 | awk '{printf " %s MB %s threads %s\n", int($1/1024), $2, $3}'; pid=$(ps -eo pid,rss,comm --sort=-rss | awk '$3=="dotnet" && $2>5000000 {print $1; exit}'); if [ -n "$pid" ] && [ $dumped = 0 ]; then dumped=1; echo "gcdump of $pid: $(ps -o args= -p $pid | cut -c1-200)"; DOTNET_ROLL_FORWARD=Major ~/.dotnet/tools/dotnet-gcdump collect -p $pid -o TestResults/testhost.gcdump; kill -9 $pid; fi; sleep 20; done) & - dotnet test + run: dotnet test - name: Upload Blazor Server test results on failure uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 From 7000249272c4ecf98f20a1799c3c90d2814d8578 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Fri, 16 Oct 2026 08:40:39 +0200 Subject: [PATCH 20/45] revert(infra): move the BlazorUI CI back to ubuntu-26.04 now that its calendar tests set their calendar #13868 --- .github/agents/dependency-update.md | 5 +---- .github/workflows/bit.ci.BlazorUI.e2e.yml | 2 +- .github/workflows/bit.ci.BlazorUI.yml | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 8990a51dd88..5008f7a35f1 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -137,10 +137,7 @@ rest of ASP.NET Core moves on. A NU1608 on Npgsql in a restore means this was mi defaults to JDK 25 (`(default)` in the image readme's Java table), which .NET for Android accepts from .NET 11 RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in`). develop stays on `ubuntu-24.04`, since .NET for Android 10 accepts up to 21, so a runner pin that comes over from develop moves -to `ubuntu-26.04` here. The two BlazorUI workflows (`bit.ci.BlazorUI.yml`, `bit.ci.BlazorUI.e2e.yml`) stay on -`ubuntu-24.04`: their calendar tests take `ar-SA` for a culture whose default calendar is Umm al-Qura, which is -the system ICU's data, and the ICU of `ubuntu-26.04` defaults it to Gregorian. Move them once those tests set the -calendar themselves. +to `ubuntu-26.04` here. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. diff --git a/.github/workflows/bit.ci.BlazorUI.e2e.yml b/.github/workflows/bit.ci.BlazorUI.e2e.yml index 3a9dd936167..1ab51134781 100644 --- a/.github/workflows/bit.ci.BlazorUI.e2e.yml +++ b/.github/workflows/bit.ci.BlazorUI.e2e.yml @@ -58,7 +58,7 @@ jobs: e2e-BlazorUI: needs: plan name: E2E ${{ matrix.browser }} / ${{ matrix.mode }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 180 strategy: diff --git a/.github/workflows/bit.ci.BlazorUI.yml b/.github/workflows/bit.ci.BlazorUI.yml index de9dc7360eb..d617a128672 100644 --- a/.github/workflows/bit.ci.BlazorUI.yml +++ b/.github/workflows/bit.ci.BlazorUI.yml @@ -18,7 +18,7 @@ jobs: build-BlazorUI: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BlazorUI - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: From d865d9dcd8e132ae0f6a71f4086db7b65ca1fef9 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Sun, 18 Oct 2026 13:01:03 +0200 Subject: [PATCH 21/45] move Bonboarding, Blex, Bink, Bmage and the new Bmotion and BlazorUI tests to net11.0 --- .github/workflows/bink.demo.cd.yml | 2 +- .github/workflows/bit.ci.Bink.e2e.yml | 6 ++--- .github/workflows/bit.ci.Bink.yml | 11 ++++++--- .github/workflows/bit.ci.Blex.e2e.yml | 23 +++++++++++-------- .github/workflows/bit.ci.Blex.yml | 11 ++++++--- .github/workflows/bit.ci.Bmage.e2e.yml | 6 ++--- .github/workflows/bit.ci.Bmage.yml | 11 ++++++--- .github/workflows/bit.ci.Bmotion.e2e.yml | 21 +++++++++++------ .github/workflows/bit.ci.Bonboarding.yml | 9 ++++++-- .github/workflows/blex.demo.cd.yml | 2 +- .github/workflows/bmage.demo.cd.yml | 2 +- .github/workflows/bonboarding.demo.cd.yml | 2 +- ...Bit.BlazorUI.Tests.Trimming.Fixture.csproj | 2 +- .../Bit.BlazorUI.Tests.Trimming.csproj | 2 +- .../BbScanner/Demo/Server/Program.cs | 6 +---- src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj | 3 ++- .../Demo/Client/Bit.Bink.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Bink.Demo.Server.csproj | 4 ++-- src/Utilities/Bink/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bink.Benchmarks.csproj | 4 ++-- .../Bit.Bink.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bink.Tests.Mcp.csproj | 6 ++--- .../Bit.Bink.Tests/Bit.Bink.Tests.csproj | 2 +- .../Bit.Blex.Generators.csproj | 2 +- .../Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj | 4 +++- .../Bit.Blex.Testing/Bit.Blex.Testing.csproj | 2 +- src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj | 4 +++- .../Demo/Client/Bit.Blex.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Blex.Demo.Server.csproj | 4 ++-- src/Utilities/Blex/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Blex.Samples.Wasm.csproj | 7 +++--- .../Properties/launchSettings.json | 1 - .../Bit.Blex.Benchmarks.csproj | 4 ++-- .../Bit.Blex.Tests.E2E.csproj | 2 +- .../Bit.Blex.Tests.E2E/HybridModeTests.cs | 2 +- .../Infrastructure/E2EEnvironment.cs | 4 ++-- .../Infrastructure/RepoLayout.cs | 2 +- .../Tests/Bit.Blex.Tests.E2E/publish-gate.sh | 4 ++-- .../Bit.Blex.Tests.Generators.csproj | 2 +- .../Bit.Blex.Tests.Harness.Hybrid.csproj | 4 ++-- .../Bit.Blex.Tests.Harness.Web.Client.csproj | 3 ++- .../Bit.Blex.Tests.Harness.Web.csproj | 3 ++- .../Properties/launchSettings.json | 1 - .../Bit.Blex.Tests.Harness.csproj | 3 ++- .../Bit.Blex.Tests.Mcp.csproj | 4 ++-- .../Bit.Blex.Tests/Bit.Blex.Tests.csproj | 2 +- .../Bmage/Bit.Bmage/Bit.Bmage.csproj | 3 ++- .../Demo/Client/Bit.Bmage.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Bmage.Demo.Server.csproj | 4 ++-- src/Utilities/Bmage/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bmage.Benchmarks.csproj | 4 ++-- .../Bit.Bmage.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bmage.Tests.Mcp.csproj | 6 ++--- .../Bit.Bmage.Tests/Bit.Bmage.Tests.csproj | 2 +- .../Bit.Bmotion.Tests.E2E.csproj | 2 +- .../Infrastructure/E2EEnvironment.cs | 4 ++-- ...it.Bmotion.Tests.Harness.Web.Client.csproj | 3 ++- .../Bit.Bmotion.Tests.Harness.Web.csproj | 3 ++- .../Properties/launchSettings.json | 2 -- .../Bit.Bonboarding/Bit.Bonboarding.csproj | 3 ++- .../Client/Bit.Bonboarding.Demo.Client.csproj | 5 ++-- .../Server/Bit.Bonboarding.Demo.Server.csproj | 4 ++-- .../Bonboarding/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bonboarding.Tests.Mcp.csproj | 4 ++-- .../Bit.Bonboarding.Tests.csproj | 2 +- 73 files changed, 163 insertions(+), 142 deletions(-) diff --git a/.github/workflows/bink.demo.cd.yml b/.github/workflows/bink.demo.cd.yml index b0e0e4e9ec7..20c5afe6d5e 100644 --- a/.github/workflows/bink.demo.cd.yml +++ b/.github/workflows/bink.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Bink.e2e.yml b/.github/workflows/bit.ci.Bink.e2e.yml index 90cf91e72bf..9963e66b31f 100644 --- a/.github/workflows/bit.ci.Bink.e2e.yml +++ b/.github/workflows/bit.ci.Bink.e2e.yml @@ -18,7 +18,7 @@ jobs: e2e: name: Bink E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -27,7 +27,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -49,7 +49,7 @@ jobs: run: dotnet build src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Start the published demo run: | diff --git a/.github/workflows/bit.ci.Bink.yml b/.github/workflows/bit.ci.Bink.yml index c62aa533bcd..7a13f59cfa8 100644 --- a/.github/workflows/bit.ci.Bink.yml +++ b/.github/workflows/bit.ci.Bink.yml @@ -22,7 +22,7 @@ jobs: build-Bink: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bink - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -56,7 +61,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/Bink/Bit.Bink.slnx - - name: dotnet test (engine + component tests, net8.0/net9.0/net10.0) + - name: dotnet test (engine + component tests, net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/Bink/Tests/Bit.Bink.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Blex.e2e.yml b/.github/workflows/bit.ci.Blex.e2e.yml index 6fe2e5ce9e4..a8e5ad4c5bf 100644 --- a/.github/workflows/bit.ci.Blex.e2e.yml +++ b/.github/workflows/bit.ci.Blex.e2e.yml @@ -1,6 +1,6 @@ name: bit platform CI - Blex E2E -# The cross-host suites: every web render mode in Chromium on net10.0/net9.0/net8.0, Blazor Hybrid in WebView2, +# The cross-host suites: every web render mode in Chromium on net11.0/net10.0/net9.0/net8.0, Blazor Hybrid in WebView2, # and trimmed/AOT publishes. They take far longer than the build-and-unit pipeline (bit.ci.Blex.yml), so they # run only when started by hand. See src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/README.md for what each job proves and # how to run it locally. @@ -20,11 +20,11 @@ jobs: # Chromium, on each runtime the library ships for. e2e-web: name: Blex E2E - web render modes (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: - framework: [ net10.0, net9.0, net8.0 ] + framework: [ net11.0, net10.0, net9.0, net8.0 ] steps: - name: Checkout source code @@ -32,11 +32,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -58,7 +63,7 @@ jobs: run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -92,7 +97,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -147,7 +152,7 @@ jobs: # the prerender state handoff break, and none of it is visible in a Debug build. publish-gate: name: Blex publish gate (${{ matrix.name }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -163,7 +168,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -183,7 +188,7 @@ jobs: run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: diff --git a/.github/workflows/bit.ci.Blex.yml b/.github/workflows/bit.ci.Blex.yml index b4707c063c0..0f53df3e365 100644 --- a/.github/workflows/bit.ci.Blex.yml +++ b/.github/workflows/bit.ci.Blex.yml @@ -22,7 +22,7 @@ jobs: build-Blex: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Blex - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -53,7 +58,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/Blex/Bit.Blex.slnx - - name: dotnet test (runtime, Blazor, MAUI and generated code - net8.0/net9.0/net10.0) + - name: dotnet test (runtime, Blazor, MAUI and generated code - net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/Blex/Tests/Bit.Blex.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bmage.e2e.yml b/.github/workflows/bit.ci.Bmage.e2e.yml index 26448759aa0..5692ba60bea 100644 --- a/.github/workflows/bit.ci.Bmage.e2e.yml +++ b/.github/workflows/bit.ci.Bmage.e2e.yml @@ -18,7 +18,7 @@ jobs: # The bit-bmage.js bridge, the browser's own codecs, canvas rendering, editor input and every demo page. e2e: name: Bmage E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -28,7 +28,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -50,7 +50,7 @@ jobs: run: dotnet build src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Start the published demo run: | diff --git a/.github/workflows/bit.ci.Bmage.yml b/.github/workflows/bit.ci.Bmage.yml index 4ed21b6f426..91d2aee6694 100644 --- a/.github/workflows/bit.ci.Bmage.yml +++ b/.github/workflows/bit.ci.Bmage.yml @@ -21,7 +21,7 @@ jobs: build-Bmage: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bmage - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -30,11 +30,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -54,7 +59,7 @@ jobs: - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Utilities/Bmage/Bit.Bmage.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Utilities/Bmage/Bit.Bmage.slnx -t:InstallNodejsDependencies -m:1 -f net11.0 - name: dotnet build run: dotnet build src/Utilities/Bmage/Bit.Bmage.slnx diff --git a/.github/workflows/bit.ci.Bmotion.e2e.yml b/.github/workflows/bit.ci.Bmotion.e2e.yml index a136b799475..8e24312cc4c 100644 --- a/.github/workflows/bit.ci.Bmotion.e2e.yml +++ b/.github/workflows/bit.ci.Bmotion.e2e.yml @@ -14,17 +14,19 @@ jobs: # library ships for where the runtime is what differs. See src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/README.md. e2e: name: Bmotion E2E - ${{ matrix.host }} (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: include: + - { host: wasm, framework: net11.0 } + - { host: wasm-noprerender, framework: net11.0 } + - { host: server, framework: net11.0 } + - { host: server-noprerender, framework: net11.0 } + - { host: auto, framework: net11.0 } + - { host: auto-noprerender, framework: net11.0 } - { host: wasm, framework: net10.0 } - - { host: wasm-noprerender, framework: net10.0 } - { host: server, framework: net10.0 } - - { host: server-noprerender, framework: net10.0 } - - { host: auto, framework: net10.0 } - - { host: auto-noprerender, framework: net10.0 } - { host: wasm, framework: net9.0 } - { host: server, framework: net9.0 } - { host: wasm, framework: net8.0 } @@ -36,11 +38,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -65,7 +72,7 @@ jobs: run: dotnet build src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: diff --git a/.github/workflows/bit.ci.Bonboarding.yml b/.github/workflows/bit.ci.Bonboarding.yml index 447705b381e..a416d52869f 100644 --- a/.github/workflows/bit.ci.Bonboarding.yml +++ b/.github/workflows/bit.ci.Bonboarding.yml @@ -17,7 +17,7 @@ jobs: build-Bonboarding: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bonboarding - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -26,11 +26,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/blex.demo.cd.yml b/.github/workflows/blex.demo.cd.yml index a1dca1c5564..53250a235a0 100644 --- a/.github/workflows/blex.demo.cd.yml +++ b/.github/workflows/blex.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bmage.demo.cd.yml b/.github/workflows/bmage.demo.cd.yml index 9099eba4d9a..0c919e2ece5 100644 --- a/.github/workflows/bmage.demo.cd.yml +++ b/.github/workflows/bmage.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bonboarding.demo.cd.yml b/.github/workflows/bonboarding.demo.cd.yml index 7f6420dc5e1..d3acadbb939 100644 --- a/.github/workflows/bonboarding.demo.cd.yml +++ b/.github/workflows/bonboarding.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Fixture/Bit.BlazorUI.Tests.Trimming.Fixture.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Fixture/Bit.BlazorUI.Tests.Trimming.Fixture.csproj index b53c0d7e3e3..7dfd87dd179 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Fixture/Bit.BlazorUI.Tests.Trimming.Fixture.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Fixture/Bit.BlazorUI.Tests.Trimming.Fixture.csproj @@ -16,7 +16,7 @@ --> - net10.0 + net11.0 enable enable false diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Bit.BlazorUI.Tests.Trimming.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Bit.BlazorUI.Tests.Trimming.csproj index 28af9de4850..2e800c0ded6 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Bit.BlazorUI.Tests.Trimming.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Bit.BlazorUI.Tests.Trimming.csproj @@ -14,7 +14,7 @@ --> - net10.0 + net11.0 14.0 enable enable diff --git a/src/Utilities/BbScanner/Demo/Server/Program.cs b/src/Utilities/BbScanner/Demo/Server/Program.cs index b59f26163cb..0d7fd06b4df 100644 --- a/src/Utilities/BbScanner/Demo/Server/Program.cs +++ b/src/Utilities/BbScanner/Demo/Server/Program.cs @@ -68,11 +68,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj b/src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj index e6d79d7d474..9db89d6e2e8 100644 --- a/src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj +++ b/src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bink enable true @@ -24,6 +24,7 @@ + diff --git a/src/Utilities/Bink/Demo/Client/Bit.Bink.Demo.Client.csproj b/src/Utilities/Bink/Demo/Client/Bit.Bink.Demo.Client.csproj index e8674317f35..639c7c89aab 100644 --- a/src/Utilities/Bink/Demo/Client/Bit.Bink.Demo.Client.csproj +++ b/src/Utilities/Bink/Demo/Client/Bit.Bink.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj b/src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj index 9272b22b844..66ca305e16c 100644 --- a/src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj +++ b/src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Bink/Demo/Server/Program.cs b/src/Utilities/Bink/Demo/Server/Program.cs index 8740cd91932..79cdc29f9b1 100644 --- a/src/Utilities/Bink/Demo/Server/Program.cs +++ b/src/Utilities/Bink/Demo/Server/Program.cs @@ -67,11 +67,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bink/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bink/Demo/Server/Properties/launchSettings.json index 4790d7f9b87..c59046ff39e 100644 --- a/src/Utilities/Bink/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bink/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5209;http://localhost:5208", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Benchmarks/Bit.Bink.Benchmarks.csproj b/src/Utilities/Bink/Tests/Bit.Bink.Benchmarks/Bit.Bink.Benchmarks.csproj index 4c239bf5eb2..fc41bfe3858 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Benchmarks/Bit.Bink.Benchmarks.csproj +++ b/src/Utilities/Bink/Tests/Bit.Bink.Benchmarks/Bit.Bink.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj index 1791eeb6a7f..7bdce8c4d4f 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj +++ b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/PlaywrightSession.cs index 72742fa533d..7779ab490e5 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/RepoLayout.cs index 7790da32640..26dbad96cbf 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Tests.Mcp/Bit.Bink.Tests.Mcp.csproj b/src/Utilities/Bink/Tests/Bit.Bink.Tests.Mcp/Bit.Bink.Tests.Mcp.csproj index 45f604141a2..b82ecc4c035 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Tests.Mcp/Bit.Bink.Tests.Mcp.csproj +++ b/src/Utilities/Bink/Tests/Bit.Bink.Tests.Mcp/Bit.Bink.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bink/Tests/Bit.Bink.Tests/Bit.Bink.Tests.csproj b/src/Utilities/Bink/Tests/Bit.Bink.Tests/Bit.Bink.Tests.csproj index 1126890f975..c82d18e1082 100644 --- a/src/Utilities/Bink/Tests/Bit.Bink.Tests/Bit.Bink.Tests.csproj +++ b/src/Utilities/Bink/Tests/Bit.Bink.Tests/Bit.Bink.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj b/src/Utilities/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj index e5b1bf4103f..2b05eae6c04 100644 --- a/src/Utilities/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj +++ b/src/Utilities/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj @@ -5,7 +5,7 @@ netstandard2.0 - + diff --git a/src/Utilities/Blex/Demo/Server/Program.cs b/src/Utilities/Blex/Demo/Server/Program.cs index c59dfa91226..b6a9b7d6401 100644 --- a/src/Utilities/Blex/Demo/Server/Program.cs +++ b/src/Utilities/Blex/Demo/Server/Program.cs @@ -68,11 +68,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Blex/Demo/Server/Properties/launchSettings.json b/src/Utilities/Blex/Demo/Server/Properties/launchSettings.json index 6c5634e4ad6..a59e9686f08 100644 --- a/src/Utilities/Blex/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Blex/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7280;http://localhost:5280", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Bit.Blex.Samples.Wasm.csproj b/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Bit.Blex.Samples.Wasm.csproj index d3cb59d68d6..e83a65c71ce 100644 --- a/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Bit.Blex.Samples.Wasm.csproj +++ b/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Bit.Blex.Samples.Wasm.csproj @@ -1,14 +1,15 @@  - net10.0 + net11.0 + false enable enable - - + + diff --git a/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Properties/launchSettings.json b/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Properties/launchSettings.json index 8cbe3121156..03e68eef9f6 100644 --- a/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Properties/launchSettings.json +++ b/src/Utilities/Blex/Samples/Bit.Blex.Samples.Wasm/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7215;http://localhost:5263", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Benchmarks/Bit.Blex.Benchmarks.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Benchmarks/Bit.Blex.Benchmarks.csproj index ca8b49f0561..788a5ce4255 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Benchmarks/Bit.Blex.Benchmarks.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Benchmarks/Bit.Blex.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj index 744c7c0b7a5..a5f73f6d541 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/HybridModeTests.cs b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/HybridModeTests.cs index 8a0c1aed8cb..811e7f056ef 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/HybridModeTests.cs +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/HybridModeTests.cs @@ -18,7 +18,7 @@ public class HybridModeTests : InteractiveHarnessTests { protected override string BaseUrl => HybridHarnessHost.AppOrigin; - protected override string Framework => "net10.0"; + protected override string Framework => "net11.0"; protected override IReadOnlyList ExpectedRenderers => ["WebView"]; diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/E2EEnvironment.cs index 044d7372448..6657af14ca9 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/E2EEnvironment.cs +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/E2EEnvironment.cs @@ -8,9 +8,9 @@ public static class E2EEnvironment { /// /// BLEX_E2E_FRAMEWORK: the target framework the web harness host runs on - /// (net10.0, net9.0 or net8.0). Defaults to net10.0. The hybrid host is always net10.0-windows. + /// (net11.0, net10.0, net9.0 or net8.0). Defaults to net11.0. The hybrid host is always net11.0-windows. /// - public static string Framework { get; } = Read("BLEX_E2E_FRAMEWORK") ?? "net10.0"; + public static string Framework { get; } = Read("BLEX_E2E_FRAMEWORK") ?? "net11.0"; /// /// BLEX_E2E_CONFIGURATION: the build configuration of the harness hosts. Defaults to the diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/RepoLayout.cs index 2217b92a1e4..842a6b0ed53 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Infrastructure/RepoLayout.cs @@ -17,7 +17,7 @@ public static string WebHostAssembly(string framework, string configuration) => Path.Combine(Path.GetDirectoryName(WebHostProject())!, "bin", configuration, framework, $"{WebHostName}.dll"); public static string HybridHostExecutable(string configuration) => - Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net10.0-windows", $"{HybridHostName}.exe"); + Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net11.0-windows", $"{HybridHostName}.exe"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh index cf8802f2a6a..13a3cec1293 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh @@ -16,8 +16,8 @@ set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" -# TargetFrameworks=net10.0 on top of -f: -f alone does not reach project references, which then still +# TargetFrameworks=net11.0 on top of -f: -f alone does not reach project references, which then still # evaluate every framework they target - and with RunAOTCompilation each of those demands its own # wasm-tools workload. exec bash "$here/../../../../publish-gate.sh" Bit.Blex Tests "$here/../Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj" \ - "$1" -f net10.0 -p:TargetFrameworks=net10.0 "${@:2}" + "$1" -f net11.0 -p:TargetFrameworks=net11.0 "${@:2}" diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Generators/Bit.Blex.Tests.Generators.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Generators/Bit.Blex.Tests.Generators.csproj index af7c3405a4a..0de54dcc0af 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Generators/Bit.Blex.Tests.Generators.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Generators/Bit.Blex.Tests.Generators.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj index eb142d56a41..1468f3d7d32 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj @@ -8,7 +8,7 @@ WinExe - net10.0-windows + net11.0-windows true true @@ -18,7 +18,7 @@ - + diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web.Client/Bit.Blex.Tests.Harness.Web.Client.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web.Client/Bit.Blex.Tests.Harness.Web.Client.csproj index f6e305f3921..3eee11b1f84 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web.Client/Bit.Blex.Tests.Harness.Web.Client.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web.Client/Bit.Blex.Tests.Harness.Web.Client.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -13,6 +13,7 @@ + diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj index a8fc2bb6aeb..6e26495cc39 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj @@ -7,7 +7,7 @@ runtime Bit.Blex ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -17,6 +17,7 @@ + diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Properties/launchSettings.json b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Properties/launchSettings.json index be50d03912e..d83d60ebdfb 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Properties/launchSettings.json @@ -18,7 +18,6 @@ "commandName": "Project", "commandLineArgs": "--BlexHarness:Mode=wasm", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5291", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness/Bit.Blex.Tests.Harness.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness/Bit.Blex.Tests.Harness.csproj index 1a011a491d0..f634a94e20d 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness/Bit.Blex.Tests.Harness.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness/Bit.Blex.Tests.Harness.csproj @@ -6,7 +6,7 @@ run the same assertions against every host and attribute a difference to the host. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable preview @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Mcp/Bit.Blex.Tests.Mcp.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Mcp/Bit.Blex.Tests.Mcp.csproj index e6e82a22287..4d860ab7081 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests.Mcp/Bit.Blex.Tests.Mcp.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests.Mcp/Bit.Blex.Tests.Mcp.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false @@ -15,7 +15,7 @@ - + diff --git a/src/Utilities/Blex/Tests/Bit.Blex.Tests/Bit.Blex.Tests.csproj b/src/Utilities/Blex/Tests/Bit.Blex.Tests/Bit.Blex.Tests.csproj index 876c57b5e13..4b9f2e5fbe8 100644 --- a/src/Utilities/Blex/Tests/Bit.Blex.Tests/Bit.Blex.Tests.csproj +++ b/src/Utilities/Blex/Tests/Bit.Blex.Tests/Bit.Blex.Tests.csproj @@ -2,7 +2,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable preview diff --git a/src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj b/src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj index 33efacf03a9..7ecd5cce853 100644 --- a/src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj +++ b/src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bmage enable true @@ -24,6 +24,7 @@ + - + diff --git a/src/Utilities/Bmage/Demo/Server/Program.cs b/src/Utilities/Bmage/Demo/Server/Program.cs index 02d4375d935..10183a469d3 100644 --- a/src/Utilities/Bmage/Demo/Server/Program.cs +++ b/src/Utilities/Bmage/Demo/Server/Program.cs @@ -63,11 +63,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bmage/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bmage/Demo/Server/Properties/launchSettings.json index bdadb2fb053..76ed69c1c3d 100644 --- a/src/Utilities/Bmage/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bmage/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5093;http://localhost:5092", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Benchmarks/Bit.Bmage.Benchmarks.csproj b/src/Utilities/Bmage/Tests/Bit.Bmage.Benchmarks/Bit.Bmage.Benchmarks.csproj index f0c113dc5e6..adf1d8a78aa 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Benchmarks/Bit.Bmage.Benchmarks.csproj +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Benchmarks/Bit.Bmage.Benchmarks.csproj @@ -2,10 +2,10 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj index c20a4274077..bfdefeb9e9b 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/PlaywrightSession.cs index 512360cab6d..27f386ff4a9 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -71,7 +71,7 @@ public static async Task StopAsync() } } - return (null, "No browser is available. Run 'pwsh bin/Debug/net10.0/playwright.ps1 install chromium', or install Chrome or Edge. " + return (null, "No browser is available. Run 'pwsh bin/Debug/net11.0/playwright.ps1 install chromium', or install Chrome or Edge. " + string.Join(" | ", failures)); } } diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/RepoLayout.cs index 7deabfe9e80..a2a49725750 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Infrastructure/RepoLayout.cs @@ -13,7 +13,7 @@ public static class RepoLayout public static string ServerDirectory() => Path.GetDirectoryName(ServerProject())!; public static string ServerAssembly(string configuration) => - Path.Combine(ServerDirectory(), "bin", configuration, "net10.0", $"{ServerName}.dll"); + Path.Combine(ServerDirectory(), "bin", configuration, "net11.0", $"{ServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.Mcp/Bit.Bmage.Tests.Mcp.csproj b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.Mcp/Bit.Bmage.Tests.Mcp.csproj index ffc4f933a02..d1eac9bdeb6 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.Mcp/Bit.Bmage.Tests.Mcp.csproj +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests.Mcp/Bit.Bmage.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests/Bit.Bmage.Tests.csproj b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests/Bit.Bmage.Tests.csproj index baf1164101f..70ee2d3a3fd 100644 --- a/src/Utilities/Bmage/Tests/Bit.Bmage.Tests/Bit.Bmage.Tests.csproj +++ b/src/Utilities/Bmage/Tests/Bit.Bmage.Tests/Bit.Bmage.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj index ff33d841615..cc4993601c9 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj @@ -4,7 +4,7 @@ Playwright), in whichever render mode BMOTION_E2E_HOST names - see README.md. --> - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Infrastructure/E2EEnvironment.cs index aecbf8c9c85..0ebd7caec36 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Infrastructure/E2EEnvironment.cs +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Infrastructure/E2EEnvironment.cs @@ -14,8 +14,8 @@ public static class E2EEnvironment /// public static string Host { get; } = HarnessHostKinds.Validate(Read("BMOTION_E2E_HOST") ?? HarnessHostKinds.WebAssembly); - /// BMOTION_E2E_FRAMEWORK: the target framework the harness host runs on. Defaults to net10.0. - public static string Framework { get; } = Read("BMOTION_E2E_FRAMEWORK") ?? "net10.0"; + /// BMOTION_E2E_FRAMEWORK: the target framework the harness host runs on. Defaults to net11.0. + public static string Framework { get; } = Read("BMOTION_E2E_FRAMEWORK") ?? "net11.0"; /// /// BMOTION_E2E_CONFIGURATION: the build configuration of the harness host. Defaults to the configuration diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web.Client/Bit.Bmotion.Tests.Harness.Web.Client.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web.Client/Bit.Bmotion.Tests.Harness.Web.Client.csproj index 9eecf09f92b..8ff5c5a1387 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web.Client/Bit.Bmotion.Tests.Harness.Web.Client.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web.Client/Bit.Bmotion.Tests.Harness.Web.Client.csproj @@ -5,7 +5,7 @@ circuit and in the WebAssembly runtime, whichever render mode the host was started in. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 $(BmotionHarnessFramework) enable @@ -21,6 +21,7 @@ + diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj index 248d657b488..aff6579ffab 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj @@ -9,7 +9,7 @@ ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 $(BmotionHarnessFramework) enable enable @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Properties/launchSettings.json b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Properties/launchSettings.json index 7f7e2446e0d..350cb05488d 100644 --- a/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Properties/launchSettings.json @@ -18,7 +18,6 @@ "commandName": "Project", "commandLineArgs": "--BmotionHarness:Mode=wasm", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5470", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, @@ -33,7 +32,6 @@ "commandName": "Project", "commandLineArgs": "--BmotionHarness:Mode=wasm --BmotionHarness:Prerender=Animate --BmotionHarness:ReducedMotion=User --BmotionHarness:CssSafeMode=Throw", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5470", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } diff --git a/src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj b/src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj index 40e78b12375..62e91cad398 100644 --- a/src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj +++ b/src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bonboarding enable true @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Bonboarding/Demo/Client/Bit.Bonboarding.Demo.Client.csproj b/src/Utilities/Bonboarding/Demo/Client/Bit.Bonboarding.Demo.Client.csproj index d6511d52596..42c560ba6bb 100644 --- a/src/Utilities/Bonboarding/Demo/Client/Bit.Bonboarding.Demo.Client.csproj +++ b/src/Utilities/Bonboarding/Demo/Client/Bit.Bonboarding.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj b/src/Utilities/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj index a1d66e77663..c0109e1a220 100644 --- a/src/Utilities/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj +++ b/src/Utilities/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Bonboarding/Demo/Server/Program.cs b/src/Utilities/Bonboarding/Demo/Server/Program.cs index 2ffbeeabb0f..12ad3415f0a 100644 --- a/src/Utilities/Bonboarding/Demo/Server/Program.cs +++ b/src/Utilities/Bonboarding/Demo/Server/Program.cs @@ -68,11 +68,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bonboarding/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bonboarding/Demo/Server/Properties/launchSettings.json index a1ac91fb294..453e449ff92 100644 --- a/src/Utilities/Bonboarding/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bonboarding/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5091;http://localhost:5090", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp/Bit.Bonboarding.Tests.Mcp.csproj b/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp/Bit.Bonboarding.Tests.Mcp.csproj index f6ccb52f4fe..cb202e5c571 100644 --- a/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp/Bit.Bonboarding.Tests.Mcp.csproj +++ b/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp/Bit.Bonboarding.Tests.Mcp.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false @@ -15,7 +15,7 @@ - + diff --git a/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests/Bit.Bonboarding.Tests.csproj b/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests/Bit.Bonboarding.Tests.csproj index 1db06bf7757..67a810a7a3e 100644 --- a/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests/Bit.Bonboarding.Tests.csproj +++ b/src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests/Bit.Bonboarding.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false From 6e120cca9277cee7ce3f68db8184ea67164b7f7b Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Sun, 18 Oct 2026 14:26:31 +0200 Subject: [PATCH 22/45] feat(deps): update project dependencies #13909 --- .github/agents/dependency-update.md | 7 ++++--- docs/how-to-build.md | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 5008f7a35f1..76b2a1634ac 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -260,9 +260,10 @@ EF Core package version. Likewise the `npx playwright@` command in the `Microsoft.Playwright.MSTest.v4`: a remote Playwright server of any other version refuses the client, and every test that runs on it fails at connect. -`src/global.json` is `rollForward: disable` and tracks the newest SDK. The two template -`global.json` files are `10.0.100` + `latestFeature` deliberately — they must accept any 10.0.x on a -consumer's machine. Do not "update" them. +`src/global.json` is `rollForward: disable` and tracks the newest SDK. While .NET 11 is a release +candidate, the two template `global.json` files pin the same RC SDK, also `rollForward: disable`, and +move with it. Once .NET 11 ships they go back to `11.0.100` + `latestFeature`, so they accept any +11.0.x on a consumer's machine. ### Container images diff --git a/docs/how-to-build.md b/docs/how-to-build.md index 50d678d53e9..2142297a71c 100644 --- a/docs/how-to-build.md +++ b/docs/how-to-build.md @@ -22,7 +22,7 @@ building each one of them requires some specific steps that are explained below. Building each of the bit platform projects needs the following basic requirements other than the specific requirements that are explained later: -- [.NET 10 SDK (10.0.402)](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) +- [.NET 11 SDK (11.0.100-rc.2.26504.105)](https://dotnet.microsoft.com/en-us/download/dotnet/11.0) - [Node.js](https://nodejs.org)
From 33dcb2e9045559f9d1abe3539ab6e77402e09180 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Sun, 18 Oct 2026 22:36:38 +0200 Subject: [PATCH 23/45] move Balette, BlazeDb, Bsqlite, BbScanner and Blow to net11.0 --- .github/workflows/balette.demo.cd.yml | 2 +- .github/workflows/bbscanner.demo.cd.yml | 2 +- .github/workflows/bit.ci.Balette.e2e.yml | 6 +++--- .github/workflows/bit.ci.Balette.yml | 11 ++++++++--- .github/workflows/bit.ci.BbScanner.e2e.yml | 6 +++--- .github/workflows/bit.ci.BbScanner.yml | 11 ++++++++--- .github/workflows/bit.ci.BlazeDb.e2e.yml | 6 +++--- .github/workflows/bit.ci.BlazeDb.yml | 11 ++++++++--- .github/workflows/bit.ci.Blow.e2e.yml | 6 +++--- .github/workflows/bit.ci.Blow.yml | 9 +++++++-- .github/workflows/bit.ci.Bsqlite.e2e.yml | 11 ++++++++--- .github/workflows/bit.ci.Bsqlite.yml | 11 ++++++++--- .github/workflows/blazedb.demo.cd.yml | 2 +- .github/workflows/blow.demo.cd.yml | 2 +- .github/workflows/bsqlite.demo.cd.yml | 2 +- .../Balette/Bit.Balette/Bit.Balette.csproj | 3 ++- .../Demo/Client/Bit.Balette.Demo.Client.csproj | 5 +++-- .../Demo/Server/Bit.Balette.Demo.Server.csproj | 4 ++-- src/Utilities/Balette/Demo/Server/Program.cs | 6 +----- .../Demo/Server/Properties/launchSettings.json | 1 - .../Bit.Balette.Benchmarks.csproj | 4 ++-- .../Bit.Balette.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Balette.Tests.Mcp.csproj | 6 +++--- .../Bit.Balette.Tests/Bit.Balette.Tests.csproj | 2 +- .../BbScanner/Bit.BbScanner/Bit.BbScanner.csproj | 3 ++- .../Demo/Client/Bit.BbScanner.Demo.Client.csproj | 5 +++-- .../Demo/Server/Bit.BbScanner.Demo.Server.csproj | 4 ++-- .../Demo/Server/Properties/launchSettings.json | 1 - .../Bit.BbScanner.Benchmarks.csproj | 4 ++-- .../Bit.BbScanner.TestKit.csproj | 2 +- .../Bit.BbScanner.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.BbScanner.Tests.Mcp.csproj | 6 +++--- .../Bit.BbScanner.Tests.csproj | 2 +- .../Bit.BlazeDb.EntityFrameworkCore.csproj | 3 ++- .../Bit.BlazeDb.Generators.csproj | 2 +- .../BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj | 2 +- .../Demo/Client/Bit.BlazeDb.Demo.Client.csproj | 5 +++-- .../Demo/Server/Bit.BlazeDb.Demo.Server.csproj | 4 ++-- src/Utilities/BlazeDb/Demo/Server/Program.cs | 6 +----- .../Demo/Server/Properties/launchSettings.json | 1 - .../Bit.BlazeDb.Benchmarks.csproj | 6 +++--- .../Bit.BlazeDb.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.BlazeDb.Tests.Mcp.csproj | 6 +++--- .../Bit.BlazeDb.Tests/Bit.BlazeDb.Tests.csproj | 2 +- src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj | 3 ++- .../Blow/Demo/Client/Bit.Blow.Demo.Client.csproj | 5 +++-- .../Blow/Demo/Server/Bit.Blow.Demo.Server.csproj | 4 ++-- src/Utilities/Blow/Demo/Server/Program.cs | 6 +----- .../Demo/Server/Properties/launchSettings.json | 1 - .../Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Blow.Tests.Mcp/Bit.Blow.Tests.Mcp.csproj | 6 +++--- .../Tests/Bit.Blow.Tests/Bit.Blow.Tests.csproj | 2 +- .../Bit.Bsqlite.Testing.csproj | 6 ++++-- .../Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj | 15 +++++++++++---- .../Demo/Client/Bit.Bsqlite.Demo.Client.csproj | 5 +++-- .../Demo/Data/Bit.Bsqlite.Demo.Data.csproj | 4 ++-- .../Demo/Domain/Bit.Bsqlite.Demo.Domain.csproj | 2 +- .../Demo/Server/Bit.Bsqlite.Demo.Server.csproj | 6 +++--- src/Utilities/Bsqlite/Demo/Server/Program.cs | 6 +----- .../Demo/Server/Properties/launchSettings.json | 1 - .../Bit.Bsqlite.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bsqlite.Tests.Mcp.csproj | 6 +++--- .../Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj | 9 +++++---- 73 files changed, 169 insertions(+), 141 deletions(-) diff --git a/.github/workflows/balette.demo.cd.yml b/.github/workflows/balette.demo.cd.yml index 710cff3c532..c4f0f533a8d 100644 --- a/.github/workflows/balette.demo.cd.yml +++ b/.github/workflows/balette.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bbscanner.demo.cd.yml b/.github/workflows/bbscanner.demo.cd.yml index c2f47ac7a20..c767d50edbe 100644 --- a/.github/workflows/bbscanner.demo.cd.yml +++ b/.github/workflows/bbscanner.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Balette.e2e.yml b/.github/workflows/bit.ci.Balette.e2e.yml index fb5d2bb755e..b9c471c3c91 100644 --- a/.github/workflows/bit.ci.Balette.e2e.yml +++ b/.github/workflows/bit.ci.Balette.e2e.yml @@ -19,7 +19,7 @@ jobs: e2e: name: Balette E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,7 +28,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -50,7 +50,7 @@ jobs: run: dotnet build src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Start the published demo run: | diff --git a/.github/workflows/bit.ci.Balette.yml b/.github/workflows/bit.ci.Balette.yml index 5e03847b2c5..9b079e4e82e 100644 --- a/.github/workflows/bit.ci.Balette.yml +++ b/.github/workflows/bit.ci.Balette.yml @@ -22,7 +22,7 @@ jobs: build-Balette: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Balette - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -56,7 +61,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/Balette/Bit.Balette.slnx - - name: dotnet test (model, search + component tests, net8.0/net9.0/net10.0) + - name: dotnet test (model, search + component tests, net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/Balette/Tests/Bit.Balette.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BbScanner.e2e.yml b/.github/workflows/bit.ci.BbScanner.e2e.yml index 43ced75df61..e36892a907d 100644 --- a/.github/workflows/bit.ci.BbScanner.e2e.yml +++ b/.github/workflows/bit.ci.BbScanner.e2e.yml @@ -19,7 +19,7 @@ jobs: e2e: name: BbScanner E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,7 +28,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -43,7 +43,7 @@ jobs: dotnet build src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.BbScanner.yml b/.github/workflows/bit.ci.BbScanner.yml index 08bb4d7d38f..62ce967f070 100644 --- a/.github/workflows/bit.ci.BbScanner.yml +++ b/.github/workflows/bit.ci.BbScanner.yml @@ -22,7 +22,7 @@ jobs: build-BbScanner: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BbScanner - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -56,7 +61,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/BbScanner/Bit.BbScanner.slnx - - name: dotnet test (decoder + component tests, net8.0/net9.0/net10.0) + - name: dotnet test (decoder + component tests, net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BlazeDb.e2e.yml b/.github/workflows/bit.ci.BlazeDb.e2e.yml index 45918140df3..6ca4e67d2d2 100644 --- a/.github/workflows/bit.ci.BlazeDb.e2e.yml +++ b/.github/workflows/bit.ci.BlazeDb.e2e.yml @@ -18,7 +18,7 @@ jobs: e2e: name: BlazeDb E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -27,7 +27,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -42,7 +42,7 @@ jobs: dotnet build src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.BlazeDb.yml b/.github/workflows/bit.ci.BlazeDb.yml index 936d4a7d35f..4c360d09169 100644 --- a/.github/workflows/bit.ci.BlazeDb.yml +++ b/.github/workflows/bit.ci.BlazeDb.yml @@ -22,7 +22,7 @@ jobs: build-BlazeDb: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BlazeDb - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -56,7 +61,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb.slnx - - name: dotnet test (engine + EF Core provider, net8.0/net9.0/net10.0) + - name: dotnet test (engine + EF Core provider, net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Blow.e2e.yml b/.github/workflows/bit.ci.Blow.e2e.yml index b5a4ee5f06a..537bf3967e2 100644 --- a/.github/workflows/bit.ci.Blow.e2e.yml +++ b/.github/workflows/bit.ci.Blow.e2e.yml @@ -17,7 +17,7 @@ jobs: e2e: name: Blow E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -27,7 +27,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -49,7 +49,7 @@ jobs: run: dotnet build src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Start the published demo run: | diff --git a/.github/workflows/bit.ci.Blow.yml b/.github/workflows/bit.ci.Blow.yml index 1a3f5708089..e1f31b98aee 100644 --- a/.github/workflows/bit.ci.Blow.yml +++ b/.github/workflows/bit.ci.Blow.yml @@ -19,7 +19,7 @@ jobs: build-Blow: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Blow - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,11 +28,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.Bsqlite.e2e.yml b/.github/workflows/bit.ci.Bsqlite.e2e.yml index 50a04ac45a0..ce5fd562b54 100644 --- a/.github/workflows/bit.ci.Bsqlite.e2e.yml +++ b/.github/workflows/bit.ci.Bsqlite.e2e.yml @@ -19,7 +19,7 @@ jobs: # page of the demo website, against the demo published the way it ships. e2e: name: Bsqlite E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -29,11 +29,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -64,7 +69,7 @@ jobs: run: dotnet build src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Start the published demo run: | diff --git a/.github/workflows/bit.ci.Bsqlite.yml b/.github/workflows/bit.ci.Bsqlite.yml index f3fbbca6d8f..61ed5a25d6e 100644 --- a/.github/workflows/bit.ci.Bsqlite.yml +++ b/.github/workflows/bit.ci.Bsqlite.yml @@ -22,7 +22,7 @@ jobs: build-Bsqlite: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bsqlite - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -59,7 +64,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite.slnx - - name: dotnet test (ADO.NET, EF Core and storage tests, net8.0/net9.0/net10.0) + - name: dotnet test (ADO.NET, EF Core and storage tests, net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests && dotnet test --no-build diff --git a/.github/workflows/blazedb.demo.cd.yml b/.github/workflows/blazedb.demo.cd.yml index 7c89dd463d5..52a4fc4190f 100644 --- a/.github/workflows/blazedb.demo.cd.yml +++ b/.github/workflows/blazedb.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/blow.demo.cd.yml b/.github/workflows/blow.demo.cd.yml index e4cf91c967e..5bb135e74e2 100644 --- a/.github/workflows/blow.demo.cd.yml +++ b/.github/workflows/blow.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bsqlite.demo.cd.yml b/.github/workflows/bsqlite.demo.cd.yml index 8efd61ebc6c..fc13a1c3507 100644 --- a/.github/workflows/bsqlite.demo.cd.yml +++ b/.github/workflows/bsqlite.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj b/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj index b2d907b03ff..786c563ded9 100644 --- a/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj +++ b/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Balette enable true @@ -23,6 +23,7 @@ +
diff --git a/src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj b/src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj index b847f9a51bd..eaaad819bef 100644 --- a/src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj +++ b/src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj b/src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj index cf56e2935ed..38d63c0ce06 100644 --- a/src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj +++ b/src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Balette/Demo/Server/Program.cs b/src/Utilities/Balette/Demo/Server/Program.cs index cf17c6b9062..f8b60f496c2 100644 --- a/src/Utilities/Balette/Demo/Server/Program.cs +++ b/src/Utilities/Balette/Demo/Server/Program.cs @@ -68,11 +68,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Balette/Demo/Server/Properties/launchSettings.json b/src/Utilities/Balette/Demo/Server/Properties/launchSettings.json index 427934e5e04..2c68ed55f65 100644 --- a/src/Utilities/Balette/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Balette/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5213;http://localhost:5212", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj index cf1729a30b3..7ecbfa7ecd9 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj index d84bb588a76..9d9190bd25c 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs index 9d564bbad44..6af01bd4b1b 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs index dccdd57dc96..376711c0558 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj index b38b681b3ae..a2fa866ed54 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj index a2073aed41a..e3e7a4e495f 100644 --- a/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj b/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj index e294321cfdf..970fc29bff4 100644 --- a/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj +++ b/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.BbScanner enable true @@ -24,6 +24,7 @@ + - + diff --git a/src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json b/src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json index 1d9c45a7595..b7efc8526f2 100644 --- a/src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5219;http://localhost:5218", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj index 07de5e7964f..103741c28e4 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj index ba3e1f9397f..597a5ea638c 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj @@ -5,7 +5,7 @@ unit tests and the benchmarks decode what this renders, and the demo draws its sample barcodes with it, so it targets every framework those projects do. It is test tooling, not part of the package. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj index 8e6ef0dfef6..7a82f9663c1 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs index 7b2cf5551aa..fd49e62804f 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -53,7 +53,7 @@ private static async Task StartAsync() if (launch is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } var clips = CameraClips.Write(); diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs index 3a818914e7b..3222fd7f37d 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj index 8ab58fed241..1df4e990a84 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj index 5ca3754a0e3..d81ea9d7a67 100644 --- a/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj b/src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj index d88198e8daa..46a5cc291fa 100644 --- a/src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj +++ b/src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.BlazeDb.EntityFrameworkCore enable @@ -20,6 +20,7 @@ +
diff --git a/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj index 25f3d7386bd..02faba2234c 100644 --- a/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj +++ b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj @@ -5,7 +5,7 @@ netstandard2.0 - + - net10.0 + net11.0 enable enable preview @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj index 153a3e3a355..7dc6b323a15 100644 --- a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj +++ b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable preview diff --git a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/PlaywrightSession.cs index c403c57418d..b3f8e28023b 100644 --- a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/RepoLayout.cs index 1124efb5d79..5f75bb79697 100644 --- a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp/Bit.BlazeDb.Tests.Mcp.csproj b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp/Bit.BlazeDb.Tests.Mcp.csproj index 564e7caca20..158e888ae57 100644 --- a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp/Bit.BlazeDb.Tests.Mcp.csproj +++ b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp/Bit.BlazeDb.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -21,7 +21,7 @@ - + diff --git a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests/Bit.BlazeDb.Tests.csproj b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests/Bit.BlazeDb.Tests.csproj index d27c0fb70dd..bae1d4ca984 100644 --- a/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests/Bit.BlazeDb.Tests.csproj +++ b/src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests/Bit.BlazeDb.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable preview diff --git a/src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj b/src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj index 456adab4ae2..872604ff60e 100644 --- a/src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj +++ b/src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Blow enable true @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Blow/Demo/Client/Bit.Blow.Demo.Client.csproj b/src/Utilities/Blow/Demo/Client/Bit.Blow.Demo.Client.csproj index 61ef1682202..0e139442232 100644 --- a/src/Utilities/Blow/Demo/Client/Bit.Blow.Demo.Client.csproj +++ b/src/Utilities/Blow/Demo/Client/Bit.Blow.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj b/src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj index c3d41eeed87..1cedf2d6cf4 100644 --- a/src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj +++ b/src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Blow/Demo/Server/Program.cs b/src/Utilities/Blow/Demo/Server/Program.cs index 146ac66b45f..c85e059af50 100644 --- a/src/Utilities/Blow/Demo/Server/Program.cs +++ b/src/Utilities/Blow/Demo/Server/Program.cs @@ -67,11 +67,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Blow/Demo/Server/Properties/launchSettings.json b/src/Utilities/Blow/Demo/Server/Properties/launchSettings.json index c8f39b58912..4e8a6751fef 100644 --- a/src/Utilities/Blow/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Blow/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5551;http://localhost:5550", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj index ecf5bd276a9..ff4b47c98fe 100644 --- a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj +++ b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/PlaywrightSession.cs index 6a8d0029414..80b64d105ff 100644 --- a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/RepoLayout.cs index 26e7b8ad6eb..5cb683c518a 100644 --- a/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); /// The demo's routable pages, which the page sweep reads its routes from. public static string DemoPagesDirectory() => diff --git a/src/Utilities/Blow/Tests/Bit.Blow.Tests.Mcp/Bit.Blow.Tests.Mcp.csproj b/src/Utilities/Blow/Tests/Bit.Blow.Tests.Mcp/Bit.Blow.Tests.Mcp.csproj index 72d8b3b8614..9d0de127170 100644 --- a/src/Utilities/Blow/Tests/Bit.Blow.Tests.Mcp/Bit.Blow.Tests.Mcp.csproj +++ b/src/Utilities/Blow/Tests/Bit.Blow.Tests.Mcp/Bit.Blow.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Blow/Tests/Bit.Blow.Tests/Bit.Blow.Tests.csproj b/src/Utilities/Blow/Tests/Bit.Blow.Tests/Bit.Blow.Tests.csproj index 4d425bd3820..405f00361a7 100644 --- a/src/Utilities/Blow/Tests/Bit.Blow.Tests/Bit.Blow.Tests.csproj +++ b/src/Utilities/Blow/Tests/Bit.Blow.Tests/Bit.Blow.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj b/src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj index 0f39eca102e..7ecc00bf3cb 100644 --- a/src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj +++ b/src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bsqlite enable Test support for bit Bsqlite: an in-process IBsqliteTransport backed by Microsoft.Data.Sqlite, so the stack can be unit-tested on desktop .NET without a browser, and the MSTest conformance kit every storage provider must pass - inherit its test classes in your provider's test project and hand them your provider. @@ -22,11 +22,13 @@ + - + + diff --git a/src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj b/src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj index 7a2f7a1447e..a030cef69fa 100644 --- a/src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj +++ b/src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bsqlite enable @@ -45,14 +45,21 @@ + + + + + - + once a newer one is resolved, so every target framework compiles against the newest version its EF Core + providers accept (2.x below net11.0, 3.x on net11.0), rather than the 2.1.6/2.1.10/2.1.11 each EF Core + band would pick on its own. --> + + diff --git a/src/Utilities/Bsqlite/Demo/Client/Bit.Bsqlite.Demo.Client.csproj b/src/Utilities/Bsqlite/Demo/Client/Bit.Bsqlite.Demo.Client.csproj index c2e38175306..225965dd914 100644 --- a/src/Utilities/Bsqlite/Demo/Client/Bit.Bsqlite.Demo.Client.csproj +++ b/src/Utilities/Bsqlite/Demo/Client/Bit.Bsqlite.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Bsqlite/Demo/Data/Bit.Bsqlite.Demo.Data.csproj b/src/Utilities/Bsqlite/Demo/Data/Bit.Bsqlite.Demo.Data.csproj index 42f48d0ee7a..0806bcbdd24 100644 --- a/src/Utilities/Bsqlite/Demo/Data/Bit.Bsqlite.Demo.Data.csproj +++ b/src/Utilities/Bsqlite/Demo/Data/Bit.Bsqlite.Demo.Data.csproj @@ -3,7 +3,7 @@ - net10.0 + net11.0 enable enable Bit.Bsqlite.Demo.Data @@ -12,7 +12,7 @@ - + diff --git a/src/Utilities/Bsqlite/Demo/Domain/Bit.Bsqlite.Demo.Domain.csproj b/src/Utilities/Bsqlite/Demo/Domain/Bit.Bsqlite.Demo.Domain.csproj index 0275d7247b1..3b49b4792e5 100644 --- a/src/Utilities/Bsqlite/Demo/Domain/Bit.Bsqlite.Demo.Domain.csproj +++ b/src/Utilities/Bsqlite/Demo/Domain/Bit.Bsqlite.Demo.Domain.csproj @@ -3,7 +3,7 @@ - net10.0 + net11.0 enable enable Bit.Bsqlite.Demo.Domain diff --git a/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj b/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj index f7af95a6ad2..276613015cf 100644 --- a/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj +++ b/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,9 +10,9 @@ - + - + diff --git a/src/Utilities/Bsqlite/Demo/Server/Program.cs b/src/Utilities/Bsqlite/Demo/Server/Program.cs index 2dfce01b70b..2662010f55c 100644 --- a/src/Utilities/Bsqlite/Demo/Server/Program.cs +++ b/src/Utilities/Bsqlite/Demo/Server/Program.cs @@ -95,11 +95,7 @@ await DemoData.SeedIfEmptyAsync(db); } -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bsqlite/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bsqlite/Demo/Server/Properties/launchSettings.json index 6584cb2b880..0e238cf2389 100644 --- a/src/Utilities/Bsqlite/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bsqlite/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5297;http://localhost:5296", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj index 9b92dcb164b..36b30ca39e1 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/PlaywrightSession.cs index c0eeeceba82..a71423478a8 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -58,7 +58,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail($"no {E2EEnvironment.Browser} browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install {E2EEnvironment.Browser}'" + return Session.Fail($"no {E2EEnvironment.Browser} browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install {E2EEnvironment.Browser}'" + (E2EEnvironment.Browser == "chromium" ? ", or install Chrome or Edge." : ".")); } diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/RepoLayout.cs index 0e798227a1a..35733da9f6c 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Infrastructure/RepoLayout.cs @@ -29,7 +29,7 @@ public static class RepoLayout public static string DemoServerProject() => Path.Combine(BsqliteRoot(), "Demo", "Server", $"{DemoServerName}.csproj"); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp/Bit.Bsqlite.Tests.Mcp.csproj b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp/Bit.Bsqlite.Tests.Mcp.csproj index f07d9a5eae8..d935d94ae6a 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp/Bit.Bsqlite.Tests.Mcp.csproj +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp/Bit.Bsqlite.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj index fd6b89bed30..ab47dfa0192 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -25,6 +25,7 @@ + @@ -33,12 +34,12 @@ - + sides. The demo only exists for net11.0, so the tests that load it do too. --> + - + From d09f512ef4d8eef82f46b57dffdd9b33f4807107 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 12:03:05 +0200 Subject: [PATCH 24/45] move Bcrdt, Bdnd, Belemetry, BevTools, Borm, Bortable and the new hosted test fixtures to net11.0 --- .github/workflows/all.ci.utilities.yml | 2 +- .github/workflows/bcrdt.demo.cd.yml | 2 +- .github/workflows/bdnd.demo.cd.yml | 2 +- .github/workflows/belemetry.demo.cd.yml | 2 +- .github/workflows/bevtools.demo.cd.yml | 2 +- .github/workflows/bit.ci.Bcrdt.e2e.yml | 6 ++--- .github/workflows/bit.ci.Bcrdt.yml | 11 ++++++--- .github/workflows/bit.ci.Bdnd.e2e.yml | 6 ++--- .github/workflows/bit.ci.Bdnd.yml | 9 ++++++-- .github/workflows/bit.ci.Belemetry.e2e.yml | 23 +++++++++++-------- .github/workflows/bit.ci.Belemetry.yml | 15 ++++++++---- .github/workflows/bit.ci.BevTools.yml | 11 ++++++--- .github/workflows/bit.ci.Borm.e2e.yml | 6 ++--- .github/workflows/bit.ci.Borm.yml | 9 ++++++-- .github/workflows/bit.ci.Bortable.e2e.yml | 6 ++--- .github/workflows/bit.ci.Bortable.yml | 9 ++++++-- .github/workflows/borm.demo.cd.yml | 2 +- .github/workflows/bortable.demo.cd.yml | 2 +- ...azorUI.Tests.Trimming.Hosted.Client.csproj | 4 ++-- .../Bit.BlazorUI.Tests.Trimming.Hosted.csproj | 2 +- ....Tests.PublishFixture.Hosted.Client.csproj | 3 ++- ...t.Butil.Tests.PublishFixture.Hosted.csproj | 2 +- .../Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj | 2 +- .../Bit.Bcrdt.SignalR.csproj | 3 ++- .../Bit.Bcrdt.Testing.csproj | 2 +- .../Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj | 4 +++- .../Demo/Client/Bit.Bcrdt.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Bcrdt.Demo.Server.csproj | 4 ++-- src/Utilities/Bcrdt/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bcrdt.Benchmarks.csproj | 4 ++-- .../Bit.Bcrdt.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bcrdt.Tests.Mcp.csproj | 6 ++--- .../Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj | 8 +++---- src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj | 3 ++- .../Demo/Client/Bit.Bdnd.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Bdnd.Demo.Server.csproj | 4 ++-- src/Utilities/Bdnd/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bdnd.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bdnd.Tests.Mcp.csproj | 6 ++--- .../Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj | 2 +- .../Bit.Belemetry.EntityFrameworkCore.csproj | 3 ++- .../Bit.Belemetry.Hangfire.csproj | 2 +- .../Bit.Belemetry/Bit.Belemetry.csproj | 3 ++- .../Client/Bit.Belemetry.Demo.Client.csproj | 5 ++-- .../Server/Bit.Belemetry.Demo.Server.csproj | 4 ++-- .../Belemetry/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Belemetry.Samples.Auto.Client.csproj | 5 ++-- .../Bit.Belemetry.Samples.Auto.csproj | 4 ++-- .../Bit.Belemetry.Samples.Auto/Program.cs | 6 +---- .../Properties/launchSettings.json | 1 - .../Core/Bit.Belemetry.Samples.Core.csproj | 2 +- .../Maui/Bit.Belemetry.Samples.Maui.csproj | 16 ++++++------- .../Bit.Belemetry.Samples.Server.csproj | 2 +- .../Bit.Belemetry.Samples.Wasm.Client.csproj | 5 ++-- .../Bit.Belemetry.Samples.Wasm.csproj | 4 ++-- .../Bit.Belemetry.Samples.Wasm/Program.cs | 6 +---- .../Properties/launchSettings.json | 1 - .../Bit.Belemetry.Samples.WinForms.csproj | 6 ++--- .../Bit.Belemetry.Tests.E2E.csproj | 2 +- .../Infrastructure/E2EEnvironment.cs | 6 ++--- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Belemetry.Tests.E2E/publish-gate.sh | 4 ++-- ...Belemetry.Tests.EntityFrameworkCore.csproj | 3 ++- .../Bit.Belemetry.Tests.Hangfire.csproj | 3 ++- .../Bit.Belemetry.Tests.Harness.Hybrid.csproj | 4 ++-- ....Belemetry.Tests.Harness.Web.Client.csproj | 9 ++++---- .../Bit.Belemetry.Tests.Harness.Web.csproj | 9 ++++---- .../Properties/launchSettings.json | 1 - .../Bit.Belemetry.Tests.Harness.csproj | 2 +- .../AssemblySetup.cs | 2 +- .../Bit.Belemetry.Tests.Hosting.csproj | 13 ++++++----- .../SamplesHostingTests.cs | 2 +- .../Bit.Belemetry.Tests.Mcp.csproj | 6 ++--- .../Bit.Belemetry.Tests.csproj | 4 +++- .../BelemetryActivityCollectorTests.cs | 4 +++- .../Pipeline/BelemetryLoggerTests.cs | 4 +++- .../Bit.BevTools.Server.csproj | 2 +- .../BevTools/Bit.BevTools/Bit.BevTools.csproj | 5 +++- .../Client/Bit.BevTools.Demo.Client.csproj | 5 ++-- .../Server/Bit.BevTools.Demo.Server.csproj | 4 ++-- src/Utilities/BevTools/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.BevTools.Benchmarks.csproj | 4 ++-- .../Bit.BevTools.Tests.csproj | 2 +- .../Bit.Borm.FluentValidation.csproj | 2 +- src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj | 3 ++- .../Demo/Client/Bit.Borm.Demo.Client.csproj | 5 ++-- .../Demo/Server/Bit.Borm.Demo.Server.csproj | 4 ++-- src/Utilities/Borm/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Borm.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Borm.Tests.Mcp.csproj | 6 ++--- .../Bit.Borm.Tests/Bit.Borm.Tests.csproj | 2 +- .../Bortable/Bit.Bortable/Bit.Bortable.csproj | 3 ++- .../Client/Bit.Bortable.Demo.Client.csproj | 5 ++-- .../Server/Bit.Bortable.Demo.Server.csproj | 4 ++-- src/Utilities/Bortable/Demo/Server/Program.cs | 6 +---- .../Server/Properties/launchSettings.json | 1 - .../Bit.Bortable.Tests.E2E.csproj | 2 +- .../Infrastructure/PlaywrightSession.cs | 2 +- .../Infrastructure/RepoLayout.cs | 2 +- .../Bit.Bortable.Tests.Mcp.csproj | 6 ++--- .../Bit.Bortable.Tests.csproj | 2 +- 112 files changed, 251 insertions(+), 228 deletions(-) diff --git a/.github/workflows/all.ci.utilities.yml b/.github/workflows/all.ci.utilities.yml index 9e95b7194d6..1912237f0fb 100644 --- a/.github/workflows/all.ci.utilities.yml +++ b/.github/workflows/all.ci.utilities.yml @@ -19,7 +19,7 @@ jobs: build_nuget_packages: name: build utilities nuget packages locally if: ${{ inputs.nuget_packages }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout source code diff --git a/.github/workflows/bcrdt.demo.cd.yml b/.github/workflows/bcrdt.demo.cd.yml index b0551165116..3a92fdca3c9 100644 --- a/.github/workflows/bcrdt.demo.cd.yml +++ b/.github/workflows/bcrdt.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bdnd.demo.cd.yml b/.github/workflows/bdnd.demo.cd.yml index 050c65cdd54..7758dd220f3 100644 --- a/.github/workflows/bdnd.demo.cd.yml +++ b/.github/workflows/bdnd.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/belemetry.demo.cd.yml b/.github/workflows/belemetry.demo.cd.yml index 6b4d04421db..0b6934bc3fb 100644 --- a/.github/workflows/belemetry.demo.cd.yml +++ b/.github/workflows/belemetry.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bevtools.demo.cd.yml b/.github/workflows/bevtools.demo.cd.yml index d83b3d0b639..f36e0fb080d 100644 --- a/.github/workflows/bevtools.demo.cd.yml +++ b/.github/workflows/bevtools.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bit.ci.Bcrdt.e2e.yml b/.github/workflows/bit.ci.Bcrdt.e2e.yml index cc60e5e4964..61eebbc2495 100644 --- a/.github/workflows/bit.ci.Bcrdt.e2e.yml +++ b/.github/workflows/bit.ci.Bcrdt.e2e.yml @@ -19,7 +19,7 @@ jobs: e2e: name: Bcrdt E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -29,7 +29,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -48,7 +48,7 @@ jobs: dotnet build src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.Bcrdt.yml b/.github/workflows/bit.ci.Bcrdt.yml index 89ba805eedc..955b7c80130 100644 --- a/.github/workflows/bit.ci.Bcrdt.yml +++ b/.github/workflows/bit.ci.Bcrdt.yml @@ -22,7 +22,7 @@ jobs: build-Bcrdt: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bcrdt - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -56,7 +61,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.slnx - - name: dotnet test (engine, transports, relays and components - net8.0/net9.0/net10.0) + - name: dotnet test (engine, transports, relays and components - net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bdnd.e2e.yml b/.github/workflows/bit.ci.Bdnd.e2e.yml index e252f19fb45..a178ff1467e 100644 --- a/.github/workflows/bit.ci.Bdnd.e2e.yml +++ b/.github/workflows/bit.ci.Bdnd.e2e.yml @@ -18,7 +18,7 @@ jobs: e2e: name: Bdnd E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -28,7 +28,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -46,7 +46,7 @@ jobs: dotnet build src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.Bdnd.yml b/.github/workflows/bit.ci.Bdnd.yml index 92e9530e27d..8533e7a5a41 100644 --- a/.github/workflows/bit.ci.Bdnd.yml +++ b/.github/workflows/bit.ci.Bdnd.yml @@ -19,7 +19,7 @@ jobs: build-Bdnd: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bdnd - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,11 +28,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.Belemetry.e2e.yml b/.github/workflows/bit.ci.Belemetry.e2e.yml index 104aa50531d..1415f0aa74e 100644 --- a/.github/workflows/bit.ci.Belemetry.e2e.yml +++ b/.github/workflows/bit.ci.Belemetry.e2e.yml @@ -19,11 +19,11 @@ jobs: # each runtime the library ships for. e2e-web: name: Belemetry E2E - web render modes (${{ matrix.framework }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: - framework: [ net10.0, net9.0, net8.0 ] + framework: [ net11.0, net10.0, net9.0, net8.0 ] steps: - name: Checkout source code @@ -31,11 +31,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -57,7 +62,7 @@ jobs: run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -90,7 +95,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -119,7 +124,7 @@ jobs: # The hybrid app exports to the receiver of the static SSR web host, which the suite starts from this build output. - name: Build the web harness host - run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f net10.0 + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f net11.0 - name: Build the E2E suite run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release @@ -149,7 +154,7 @@ jobs: # in a Debug build. publish-gate: name: Belemetry publish gate (${{ matrix.name }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -165,7 +170,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -185,7 +190,7 @@ jobs: run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: diff --git a/.github/workflows/bit.ci.Belemetry.yml b/.github/workflows/bit.ci.Belemetry.yml index e45a6feb243..0c003d38e6f 100644 --- a/.github/workflows/bit.ci.Belemetry.yml +++ b/.github/workflows/bit.ci.Belemetry.yml @@ -20,7 +20,7 @@ jobs: build-Belemetry: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Belemetry - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -29,11 +29,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -59,10 +64,10 @@ jobs: - name: dotnet test run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests && dotnet test --no-build - - name: dotnet test (Entity Framework Core instrumentation, net8.0/net9.0/net10.0) + - name: dotnet test (Entity Framework Core instrumentation, net8.0/net9.0/net10.0/net11.0) run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore && dotnet test --no-build - - name: dotnet test (Hangfire instrumentation, net8.0/net9.0/net10.0) + - name: dotnet test (Hangfire instrumentation, net8.0/net9.0/net10.0/net11.0) run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire && dotnet test --no-build - name: npm test (browser script) @@ -71,5 +76,5 @@ jobs: - name: dotnet test (MCP server and OTLP receiver) run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp && dotnet test --no-build - - name: dotnet test (hosting - every render mode over HTTP, net8.0/net9.0/net10.0) + - name: dotnet test (hosting - every render mode over HTTP, net8.0/net9.0/net10.0/net11.0) run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BevTools.yml b/.github/workflows/bit.ci.BevTools.yml index 640a298e985..cc9929c60cf 100644 --- a/.github/workflows/bit.ci.BevTools.yml +++ b/.github/workflows/bit.ci.BevTools.yml @@ -17,7 +17,7 @@ jobs: build-BevTools: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.BevTools - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -26,11 +26,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: @@ -51,7 +56,7 @@ jobs: - name: dotnet build run: dotnet build src/Utilities/BevTools/Bit.BevTools.slnx - - name: dotnet test (instrumentation, stores, diagnostics, panels - net8.0/net9.0/net10.0) + - name: dotnet test (instrumentation, stores, diagnostics, panels - net8.0/net9.0/net10.0/net11.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). run: cd src/Utilities/BevTools/Tests/Bit.BevTools.Tests && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Borm.e2e.yml b/.github/workflows/bit.ci.Borm.e2e.yml index 6afc49bc786..5a5c82d326b 100644 --- a/.github/workflows/bit.ci.Borm.e2e.yml +++ b/.github/workflows/bit.ci.Borm.e2e.yml @@ -17,7 +17,7 @@ jobs: e2e: name: Borm E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -27,7 +27,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -45,7 +45,7 @@ jobs: dotnet build src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.Borm.yml b/.github/workflows/bit.ci.Borm.yml index 22a26d0032f..4f6bc054b27 100644 --- a/.github/workflows/bit.ci.Borm.yml +++ b/.github/workflows/bit.ci.Borm.yml @@ -19,7 +19,7 @@ jobs: build-Borm: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Borm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,11 +28,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/bit.ci.Bortable.e2e.yml b/.github/workflows/bit.ci.Bortable.e2e.yml index f0cdb99c4ef..5bca47bcc7d 100644 --- a/.github/workflows/bit.ci.Bortable.e2e.yml +++ b/.github/workflows/bit.ci.Bortable.e2e.yml @@ -17,7 +17,7 @@ jobs: e2e: name: Bortable E2E (Chromium) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 60 steps: @@ -27,7 +27,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -45,7 +45,7 @@ jobs: dotnet build src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. diff --git a/.github/workflows/bit.ci.Bortable.yml b/.github/workflows/bit.ci.Bortable.yml index baad2c6b142..e55e4ee239e 100644 --- a/.github/workflows/bit.ci.Bortable.yml +++ b/.github/workflows/bit.ci.Bortable.yml @@ -19,7 +19,7 @@ jobs: build-Bortable: if: startsWith(github.event.pull_request.title, 'Prerelease') != true && startsWith(github.event.pull_request.title, 'Release') != true && startsWith(github.event.pull_request.title, 'Version') != true name: build Bit.Bortable - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: @@ -28,11 +28,16 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + - name: Setup .NET 10.0 + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + dotnet-version: 10.0.x + - name: Setup .NET 9.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: diff --git a/.github/workflows/borm.demo.cd.yml b/.github/workflows/borm.demo.cd.yml index 87427b930cf..ab7e1d5d641 100644 --- a/.github/workflows/borm.demo.cd.yml +++ b/.github/workflows/borm.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/.github/workflows/bortable.demo.cd.yml b/.github/workflows/bortable.demo.cd.yml index a1a759b328e..7be4070c245 100644 --- a/.github/workflows/bortable.demo.cd.yml +++ b/.github/workflows/bortable.demo.cd.yml @@ -11,7 +11,7 @@ jobs: build_blazor_wasm: name: build blazor wasm - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted.Client/Bit.BlazorUI.Tests.Trimming.Hosted.Client.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted.Client/Bit.BlazorUI.Tests.Trimming.Hosted.Client.csproj index ee1ee6fa4f0..bcb054a87e7 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted.Client/Bit.BlazorUI.Tests.Trimming.Hosted.Client.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted.Client/Bit.BlazorUI.Tests.Trimming.Hosted.Client.csproj @@ -14,7 +14,7 @@ --> - net10.0 + net11.0 enable enable false @@ -33,7 +33,7 @@ - + diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted/Bit.BlazorUI.Tests.Trimming.Hosted.csproj b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted/Bit.BlazorUI.Tests.Trimming.Hosted.csproj index df6aec00896..6ab7550a719 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted/Bit.BlazorUI.Tests.Trimming.Hosted.csproj +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming.Hosted/Bit.BlazorUI.Tests.Trimming.Hosted.csproj @@ -14,7 +14,7 @@ --> - net10.0 + net11.0 enable enable false diff --git a/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted.Client/Bit.Butil.Tests.PublishFixture.Hosted.Client.csproj b/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted.Client/Bit.Butil.Tests.PublishFixture.Hosted.Client.csproj index d2f363d7625..9386ff7d11a 100644 --- a/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted.Client/Bit.Butil.Tests.PublishFixture.Hosted.Client.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted.Client/Bit.Butil.Tests.PublishFixture.Hosted.Client.csproj @@ -13,7 +13,7 @@ --> - net10.0 + net11.0 $(FixtureFramework) @@ -32,6 +32,7 @@ + diff --git a/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted/Bit.Butil.Tests.PublishFixture.Hosted.csproj b/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted/Bit.Butil.Tests.PublishFixture.Hosted.csproj index a6f7792fd6f..6b1138aa949 100644 --- a/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted/Bit.Butil.Tests.PublishFixture.Hosted.csproj +++ b/src/Butil/tests/Bit.Butil.Tests.PublishFixture.Hosted/Bit.Butil.Tests.PublishFixture.Hosted.csproj @@ -14,7 +14,7 @@ --> - net10.0 + net11.0 $(FixtureFramework) enable diff --git a/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj index f8de0fe436b..f41bf05db23 100644 --- a/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bcrdt.Server enable true diff --git a/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj index ae8f6fffdcf..489fc3b65d1 100644 --- a/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bcrdt.SignalR enable true @@ -20,6 +20,7 @@ + diff --git a/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj index 809b40a22a1..971ad604bec 100644 --- a/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bcrdt.Testing enable - + diff --git a/src/Utilities/Bcrdt/Demo/Server/Program.cs b/src/Utilities/Bcrdt/Demo/Server/Program.cs index ec1df3a129d..d924617fd68 100644 --- a/src/Utilities/Bcrdt/Demo/Server/Program.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Program.cs @@ -74,11 +74,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json index bdee3343e10..217545ed4fe 100644 --- a/src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5561;http://localhost:5560", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj index fcbb4f2e366..a5ae5837bb3 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj index 8ac7fa786b8..db639df40df 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs index ec8e0f435a7..470d09eee26 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs index a07f6efc9b4..20ff5a7155d 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs @@ -14,7 +14,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); /// The demo's routable pages, which the page sweep reads its routes from. public static string DemoPagesDirectory() => diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj index 043cc35b9e0..08ec5cc5de0 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj index ec997094f0a..56aa2f332b7 100644 --- a/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable preview @@ -28,13 +28,13 @@ - - + - + diff --git a/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj b/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj index 0f94251b33f..46c62c4e918 100644 --- a/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj +++ b/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bdnd enable true @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj b/src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj index f2ab73aa5fa..d7309a9123e 100644 --- a/src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj +++ b/src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj b/src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj index 6c9674bd295..edb0cbd1055 100644 --- a/src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj +++ b/src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Bdnd/Demo/Server/Program.cs b/src/Utilities/Bdnd/Demo/Server/Program.cs index 0e11cbbd55f..89361734ed8 100644 --- a/src/Utilities/Bdnd/Demo/Server/Program.cs +++ b/src/Utilities/Bdnd/Demo/Server/Program.cs @@ -67,11 +67,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json index bb0073aacda..3d808cbff9c 100644 --- a/src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5561;http://localhost:5560", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj index 4db8920fc44..8604240801c 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs index ad2d25231b9..fb4ee7ed942 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs index 082f46dea67..0dd2c976e09 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); /// The demo's routable pages, which the page sweep reads its routes from. public static string DemoPagesDirectory() => diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj index 1c578c6dd92..a0648ee6d1a 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj index 9dd2ecd814d..439c09f9056 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj index 6a1d5b77d23..7321501dcbc 100644 --- a/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj +++ b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj @@ -7,7 +7,7 @@ because EF Core is a dependency most Blazor apps (every WebAssembly one) do not want in their telemetry SDK. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable true @@ -19,6 +19,7 @@ + diff --git a/src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj b/src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj index b6107bf69c6..9b996ff60da 100644 --- a/src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj +++ b/src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj @@ -7,7 +7,7 @@ collects by default. A separate package because Hangfire is a server-only dependency. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable true diff --git a/src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj b/src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj index 90d26e24e9e..c00eef403ce 100644 --- a/src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj +++ b/src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 true @@ -30,6 +30,7 @@ + diff --git a/src/Utilities/Belemetry/Demo/Client/Bit.Belemetry.Demo.Client.csproj b/src/Utilities/Belemetry/Demo/Client/Bit.Belemetry.Demo.Client.csproj index 2addede371b..fc4ae6781df 100644 --- a/src/Utilities/Belemetry/Demo/Client/Bit.Belemetry.Demo.Client.csproj +++ b/src/Utilities/Belemetry/Demo/Client/Bit.Belemetry.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj b/src/Utilities/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj index e77331155b6..8375eb9b6fa 100644 --- a/src/Utilities/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj +++ b/src/Utilities/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Belemetry/Demo/Server/Program.cs b/src/Utilities/Belemetry/Demo/Server/Program.cs index 2802978f2a2..9c04cd0a4ae 100644 --- a/src/Utilities/Belemetry/Demo/Server/Program.cs +++ b/src/Utilities/Belemetry/Demo/Server/Program.cs @@ -83,11 +83,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Belemetry/Demo/Server/Properties/launchSettings.json b/src/Utilities/Belemetry/Demo/Server/Properties/launchSettings.json index 4ab91c216ee..a49531b60df 100644 --- a/src/Utilities/Belemetry/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Belemetry/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5081;http://localhost:5080", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto.Client/Bit.Belemetry.Samples.Auto.Client.csproj b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto.Client/Bit.Belemetry.Samples.Auto.Client.csproj index 1709a6e5d77..3989d62b73a 100644 --- a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto.Client/Bit.Belemetry.Samples.Auto.Client.csproj +++ b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto.Client/Bit.Belemetry.Samples.Auto.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable false @@ -11,7 +12,7 @@ - + diff --git a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Bit.Belemetry.Samples.Auto.csproj b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Bit.Belemetry.Samples.Auto.csproj index fa78db73880..b6ea47e7ee9 100644 --- a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Bit.Belemetry.Samples.Auto.csproj +++ b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Bit.Belemetry.Samples.Auto.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false @@ -9,7 +9,7 @@ - + diff --git a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Program.cs b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Program.cs index 7b3981b26f2..144f7ad0522 100644 --- a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Program.cs +++ b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Program.cs @@ -35,11 +35,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Properties/launchSettings.json b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Properties/launchSettings.json index 7347e41649a..6d2d52b72bb 100644 --- a/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Properties/launchSettings.json +++ b/src/Utilities/Belemetry/Samples/Auto/Bit.Belemetry.Samples.Auto/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7393;http://localhost:5393", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Belemetry/Samples/Core/Bit.Belemetry.Samples.Core.csproj b/src/Utilities/Belemetry/Samples/Core/Bit.Belemetry.Samples.Core.csproj index d11c96d2348..d7af7ecfd84 100644 --- a/src/Utilities/Belemetry/Samples/Core/Bit.Belemetry.Samples.Core.csproj +++ b/src/Utilities/Belemetry/Samples/Core/Bit.Belemetry.Samples.Core.csproj @@ -4,7 +4,7 @@ host it runs in: each host's Program.cs owns its Belemetry setup, which is the part worth comparing. --> - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Belemetry/Samples/Maui/Bit.Belemetry.Samples.Maui.csproj b/src/Utilities/Belemetry/Samples/Maui/Bit.Belemetry.Samples.Maui.csproj index 77798d2912d..aa5d7ec43bb 100644 --- a/src/Utilities/Belemetry/Samples/Maui/Bit.Belemetry.Samples.Maui.csproj +++ b/src/Utilities/Belemetry/Samples/Maui/Bit.Belemetry.Samples.Maui.csproj @@ -1,9 +1,9 @@  - net10.0-android;net10.0-ios;net10.0-maccatalyst - $(TargetFrameworks);net10.0-windows10.0.19041.0 - net10.0-android + net11.0-android;net11.0-ios;net11.0-maccatalyst + $(TargetFrameworks);net11.0-windows10.0.19041.0 + net11.0-android Exe true true @@ -22,9 +22,6 @@ 1.0.0 1 - - True - $(NoWarn);ClassWithoutModifierAnalyzer 15.0 @@ -47,9 +44,10 @@ - - - + + + + diff --git a/src/Utilities/Belemetry/Samples/Server/Bit.Belemetry.Samples.Server.csproj b/src/Utilities/Belemetry/Samples/Server/Bit.Belemetry.Samples.Server.csproj index 675ea12f669..52e1ea003b6 100644 --- a/src/Utilities/Belemetry/Samples/Server/Bit.Belemetry.Samples.Server.csproj +++ b/src/Utilities/Belemetry/Samples/Server/Bit.Belemetry.Samples.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm.Client/Bit.Belemetry.Samples.Wasm.Client.csproj b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm.Client/Bit.Belemetry.Samples.Wasm.Client.csproj index 1709a6e5d77..3989d62b73a 100644 --- a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm.Client/Bit.Belemetry.Samples.Wasm.Client.csproj +++ b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm.Client/Bit.Belemetry.Samples.Wasm.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable false @@ -11,7 +12,7 @@ - + diff --git a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Bit.Belemetry.Samples.Wasm.csproj b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Bit.Belemetry.Samples.Wasm.csproj index f7ea4b92f49..31282a9c316 100644 --- a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Bit.Belemetry.Samples.Wasm.csproj +++ b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Bit.Belemetry.Samples.Wasm.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false @@ -9,7 +9,7 @@ - + diff --git a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Program.cs b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Program.cs index a27c2b4a17a..ab825b13cd5 100644 --- a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Program.cs +++ b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Program.cs @@ -31,11 +31,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Properties/launchSettings.json b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Properties/launchSettings.json index 7a196eeaeeb..85fb9b46292 100644 --- a/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Properties/launchSettings.json +++ b/src/Utilities/Belemetry/Samples/Wasm/Bit.Belemetry.Samples.Wasm/Properties/launchSettings.json @@ -4,7 +4,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:7392;http://localhost:5392", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Belemetry/Samples/WinForms/Bit.Belemetry.Samples.WinForms.csproj b/src/Utilities/Belemetry/Samples/WinForms/Bit.Belemetry.Samples.WinForms.csproj index d3df803216e..5350f982422 100644 --- a/src/Utilities/Belemetry/Samples/WinForms/Bit.Belemetry.Samples.WinForms.csproj +++ b/src/Utilities/Belemetry/Samples/WinForms/Bit.Belemetry.Samples.WinForms.csproj @@ -6,7 +6,7 @@ WinExe - net10.0-windows + net11.0-windows true true @@ -17,8 +17,8 @@ - - + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj index b7653dff331..b2dbbfa86db 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/E2EEnvironment.cs index 57b97397f5e..c9943982b4f 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/E2EEnvironment.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/E2EEnvironment.cs @@ -7,10 +7,10 @@ public static class E2EEnvironment { /// - /// BELEMETRY_E2E_FRAMEWORK: the target framework the web harness host runs on (net10.0, net9.0 or net8.0). - /// Defaults to net10.0. The hybrid host is always net10.0-windows. + /// BELEMETRY_E2E_FRAMEWORK: the target framework the web harness host runs on (net11.0, net10.0, net9.0 or net8.0). + /// Defaults to net11.0. The hybrid host is always net11.0-windows. /// - public static string Framework { get; } = Read("BELEMETRY_E2E_FRAMEWORK") ?? "net10.0"; + public static string Framework { get; } = Read("BELEMETRY_E2E_FRAMEWORK") ?? "net11.0"; /// /// BELEMETRY_E2E_CONFIGURATION: the build configuration of the harness hosts. Defaults to the configuration diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/RepoLayout.cs index 1e439165b4d..6870af1743f 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Infrastructure/RepoLayout.cs @@ -17,7 +17,7 @@ public static string WebHostAssembly(string framework, string configuration) => Path.Combine(Path.GetDirectoryName(WebHostProject())!, "bin", configuration, framework, $"{WebHostName}.dll"); public static string HybridHostExecutable(string configuration) => - Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net10.0-windows", $"{HybridHostName}.exe"); + Path.Combine(Path.GetDirectoryName(HybridHostProject())!, "bin", configuration, "net11.0-windows", $"{HybridHostName}.exe"); private static string FindUpward(string relativePath) { diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh index fa0adc9485d..06fbc208c0f 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh @@ -13,8 +13,8 @@ set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" -# TargetFrameworks=net10.0 on top of -f: -f alone does not reach project references, which then still +# TargetFrameworks=net11.0 on top of -f: -f alone does not reach project references, which then still # evaluate every framework they target - and with RunAOTCompilation each of those demands its own # wasm-tools workload. exec bash "$here/../../../../publish-gate.sh" Bit.Belemetry Tests "$here/../Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj" \ - "$1" -f net10.0 -p:TargetFrameworks=net10.0 "${@:2}" + "$1" -f net11.0 -p:TargetFrameworks=net11.0 "${@:2}" diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore/Bit.Belemetry.Tests.EntityFrameworkCore.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore/Bit.Belemetry.Tests.EntityFrameworkCore.csproj index b2b40af1e9d..0245b323869 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore/Bit.Belemetry.Tests.EntityFrameworkCore.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore/Bit.Belemetry.Tests.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ tags, parenting, failures and the filter, on every target framework the package ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -21,6 +21,7 @@ + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire/Bit.Belemetry.Tests.Hangfire.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire/Bit.Belemetry.Tests.Hangfire.csproj index e8121188273..67de945adf4 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire/Bit.Belemetry.Tests.Hangfire.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire/Bit.Belemetry.Tests.Hangfire.csproj @@ -4,7 +4,7 @@ enqueue, failures and the filter, on every target framework the package ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -21,6 +21,7 @@ + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj index 6be5f2d1d75..7161de4b32a 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj @@ -7,7 +7,7 @@ WinExe - net10.0-windows + net11.0-windows true true @@ -17,7 +17,7 @@ - + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj index d2dbd929450..327c57f63fb 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj @@ -5,7 +5,7 @@ Bit.Belemetry.Tests.Harness. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -15,9 +15,10 @@ - - - + + + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj index 2ce29236f18..7792d71afa9 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj @@ -7,7 +7,7 @@ because the library is: the suites can run the harness on every runtime Bit.Belemetry ships for. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -15,9 +15,10 @@ - - - + + + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Properties/launchSettings.json b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Properties/launchSettings.json index 18819c40db0..15fbafbc067 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Properties/launchSettings.json +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Properties/launchSettings.json @@ -25,7 +25,6 @@ "commandName": "Project", "commandLineArgs": "--BelemetryHarness:Mode=wasm", "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5390", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness/Bit.Belemetry.Tests.Harness.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness/Bit.Belemetry.Tests.Harness.csproj index 77b0532d059..c776f9d8900 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness/Bit.Belemetry.Tests.Harness.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness/Bit.Belemetry.Tests.Harness.csproj @@ -6,7 +6,7 @@ the same assertions against every host and attribute a difference to the host. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/AssemblySetup.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/AssemblySetup.cs index cf0c0f34f83..fdbc9c11a54 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/AssemblySetup.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/AssemblySetup.cs @@ -13,7 +13,7 @@ public static class AssemblySetup public static async Task CleanupAsync() { await HarnessHostFactory.DisposeSharedAsync(); -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER await SampleHostFactories.DisposeAsync(); #endif } diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj index 31b3b76dfbc..d87f18b9a71 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj @@ -6,7 +6,7 @@ every target framework in the regular CI job. --> - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -19,17 +19,18 @@ - - - + + + + - - + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/SamplesHostingTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/SamplesHostingTests.cs index 3f7924ba935..805c70ad960 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/SamplesHostingTests.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/SamplesHostingTests.cs @@ -1,4 +1,4 @@ -#if NET10_0_OR_GREATER +#if NET11_0_OR_GREATER using System.Net; using Bit.Belemetry.Tests.Hosting.Infrastructure; using Microsoft.AspNetCore.Hosting; diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp/Bit.Belemetry.Tests.Mcp.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp/Bit.Belemetry.Tests.Mcp.csproj index b816fa1eca2..c36bb6bdf94 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp/Bit.Belemetry.Tests.Mcp.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp/Bit.Belemetry.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + only exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Bit.Belemetry.Tests.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Bit.Belemetry.Tests.csproj index e4d89c28155..7727dde64a3 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Bit.Belemetry.Tests.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Bit.Belemetry.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false @@ -24,7 +24,9 @@ + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs index c6b0afacb08..eeb810dd513 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs @@ -33,6 +33,7 @@ public async Task ConvertsAStoppedActivity() string traceId, spanId; DateTime startUtc; + int flags; using (var activity = source.StartActivity("GET /orders", ActivityKind.Client, parentContext: default, tags: null, links: links)!) { Assert.IsNotNull(activity); @@ -46,6 +47,7 @@ public async Task ConvertsAStoppedActivity() activity.AddEvent(new ActivityEvent("retry", DateTimeOffset.UtcNow, new ActivityTagsCollection { ["attempt"] = 2 })); activity.SetStatus(ActivityStatusCode.Error, "unavailable"); traceId = activity.TraceId.ToHexString(); + flags = (int)activity.ActivityTraceFlags; spanId = activity.SpanId.ToHexString(); startUtc = activity.StartTimeUtc; } @@ -57,7 +59,7 @@ public async Task ConvertsAStoppedActivity() Assert.AreEqual(spanId, span.SpanId); Assert.IsNull(span.ParentSpanId); Assert.AreEqual("vendor=1", span.TraceState); - Assert.AreEqual(1, span.Flags); + Assert.AreEqual(flags, span.Flags); Assert.AreEqual("GET /orders", span.Name); Assert.AreEqual(BelemetrySpanKind.Client, span.Kind); Assert.AreEqual(BelemetryTime.ToUnixNano(startUtc), span.StartTimeUnixNano); diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs index 859aefa1993..a01386262b3 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs @@ -207,11 +207,13 @@ public async Task TraceContext_ComesFromActivityCurrent() var logger = host.StartLogging().CreateLogger("MyApp"); string traceId, spanId; + int flags; using (var activity = new Activity("op").SetIdFormat(ActivityIdFormat.W3C)) { activity.ActivityTraceFlags = ActivityTraceFlags.Recorded; activity.Start(); traceId = activity.TraceId.ToHexString(); + flags = (int)activity.ActivityTraceFlags; spanId = activity.SpanId.ToHexString(); logger.LogInformation("inside"); } @@ -221,7 +223,7 @@ public async Task TraceContext_ComesFromActivityCurrent() var logs = host.Memory.Logs.ToList(); Assert.AreEqual(traceId, logs[0].TraceId); Assert.AreEqual(spanId, logs[0].SpanId); - Assert.AreEqual(1, logs[0].Flags); + Assert.AreEqual(flags, logs[0].Flags); Assert.IsNull(logs[1].TraceId); Assert.IsNull(logs[1].SpanId); } diff --git a/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj b/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj index 8693b308a48..a1f51b9a343 100644 --- a/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj +++ b/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.BevTools enable diff --git a/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj b/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj index f578f88812a..a9782a16307 100644 --- a/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj +++ b/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.BevTools enable Runtime instrumentation and in-app developer tools for Blazor: component tree, render profiler, event timeline, state, network, JS interop, errors, DI inspector and diagnostics, plus the extension API (panels, state providers, diagnostic rules, commands, timeline events) libraries use to integrate with it. @@ -30,12 +30,15 @@ + + + diff --git a/src/Utilities/BevTools/Demo/Client/Bit.BevTools.Demo.Client.csproj b/src/Utilities/BevTools/Demo/Client/Bit.BevTools.Demo.Client.csproj index a45e2a4a619..998ace999c8 100644 --- a/src/Utilities/BevTools/Demo/Client/Bit.BevTools.Demo.Client.csproj +++ b/src/Utilities/BevTools/Demo/Client/Bit.BevTools.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -17,7 +18,7 @@ - + diff --git a/src/Utilities/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj b/src/Utilities/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj index ad06ba6b8bc..19619641524 100644 --- a/src/Utilities/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj +++ b/src/Utilities/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/BevTools/Demo/Server/Program.cs b/src/Utilities/BevTools/Demo/Server/Program.cs index 08cf148e464..4329c55104b 100644 --- a/src/Utilities/BevTools/Demo/Server/Program.cs +++ b/src/Utilities/BevTools/Demo/Server/Program.cs @@ -31,11 +31,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/BevTools/Demo/Server/Properties/launchSettings.json b/src/Utilities/BevTools/Demo/Server/Properties/launchSettings.json index 00a6745ccfb..cd0db99418c 100644 --- a/src/Utilities/BevTools/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/BevTools/Demo/Server/Properties/launchSettings.json @@ -6,7 +6,6 @@ "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "problems", - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5091;http://localhost:5090", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/BevTools/Tests/Bit.BevTools.Benchmarks/Bit.BevTools.Benchmarks.csproj b/src/Utilities/BevTools/Tests/Bit.BevTools.Benchmarks/Bit.BevTools.Benchmarks.csproj index beca76968b7..f35d78f1e8e 100644 --- a/src/Utilities/BevTools/Tests/Bit.BevTools.Benchmarks/Bit.BevTools.Benchmarks.csproj +++ b/src/Utilities/BevTools/Tests/Bit.BevTools.Benchmarks/Bit.BevTools.Benchmarks.csproj @@ -2,9 +2,9 @@ Exe - - net10.0 + net11.0 disable enable false diff --git a/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/Bit.BevTools.Tests.csproj b/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/Bit.BevTools.Tests.csproj index 6f569892bb2..391fbcc4a76 100644 --- a/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/Bit.BevTools.Tests.csproj +++ b/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/Bit.BevTools.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable preview diff --git a/src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj b/src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj index a98d54e34ae..d453a12ac17 100644 --- a/src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj +++ b/src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Borm enable diff --git a/src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj b/src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj index 7498e0183bb..f17e72644aa 100644 --- a/src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj +++ b/src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Borm enable - + diff --git a/src/Utilities/Borm/Demo/Server/Program.cs b/src/Utilities/Borm/Demo/Server/Program.cs index 4b8b5a0a6f0..7da1c4ef7b4 100644 --- a/src/Utilities/Borm/Demo/Server/Program.cs +++ b/src/Utilities/Borm/Demo/Server/Program.cs @@ -68,11 +68,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Borm/Demo/Server/Properties/launchSettings.json b/src/Utilities/Borm/Demo/Server/Properties/launchSettings.json index af994dba2b2..5f420df2ec7 100644 --- a/src/Utilities/Borm/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Borm/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5581;http://localhost:5580", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj index 858b2fde073..9eafbcc8fb6 100644 --- a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj +++ b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/PlaywrightSession.cs index 5558cdf303b..d4696f7058a 100644 --- a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/RepoLayout.cs index 39928d2ac1d..94c2dd0e6bd 100644 --- a/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); /// The demo's routable pages, which the page sweep reads its routes from. public static string DemoPagesDirectory() => diff --git a/src/Utilities/Borm/Tests/Bit.Borm.Tests.Mcp/Bit.Borm.Tests.Mcp.csproj b/src/Utilities/Borm/Tests/Bit.Borm.Tests.Mcp/Bit.Borm.Tests.Mcp.csproj index b5b4682cdd3..fcbaaac2c52 100644 --- a/src/Utilities/Borm/Tests/Bit.Borm.Tests.Mcp/Bit.Borm.Tests.Mcp.csproj +++ b/src/Utilities/Borm/Tests/Bit.Borm.Tests.Mcp/Bit.Borm.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Borm/Tests/Bit.Borm.Tests/Bit.Borm.Tests.csproj b/src/Utilities/Borm/Tests/Bit.Borm.Tests/Bit.Borm.Tests.csproj index 5ab8039b7e0..8fa7483e05d 100644 --- a/src/Utilities/Borm/Tests/Bit.Borm.Tests/Bit.Borm.Tests.csproj +++ b/src/Utilities/Borm/Tests/Bit.Borm.Tests/Bit.Borm.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false diff --git a/src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj b/src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj index b098a948e32..32e1d681e22 100644 --- a/src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj +++ b/src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.Bortable enable true @@ -22,6 +22,7 @@ + diff --git a/src/Utilities/Bortable/Demo/Client/Bit.Bortable.Demo.Client.csproj b/src/Utilities/Bortable/Demo/Client/Bit.Bortable.Demo.Client.csproj index e2ce58bc76a..76021a1cefa 100644 --- a/src/Utilities/Bortable/Demo/Client/Bit.Bortable.Demo.Client.csproj +++ b/src/Utilities/Bortable/Demo/Client/Bit.Bortable.Demo.Client.csproj @@ -1,7 +1,8 @@  - net10.0 + net11.0 + false enable enable true @@ -14,7 +15,7 @@ - + diff --git a/src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj b/src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj index cc72042992d..ae1c1cbf01d 100644 --- a/src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj +++ b/src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable true @@ -10,7 +10,7 @@ - + diff --git a/src/Utilities/Bortable/Demo/Server/Program.cs b/src/Utilities/Bortable/Demo/Server/Program.cs index 84cc5ed6405..999b371727a 100644 --- a/src/Utilities/Bortable/Demo/Server/Program.cs +++ b/src/Utilities/Bortable/Demo/Server/Program.cs @@ -67,11 +67,7 @@ var app = builder.Build(); -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else +if (app.Environment.IsDevelopment() is false) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); diff --git a/src/Utilities/Bortable/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bortable/Demo/Server/Properties/launchSettings.json index d4b54a18b7e..f461365bf09 100644 --- a/src/Utilities/Bortable/Demo/Server/Properties/launchSettings.json +++ b/src/Utilities/Bortable/Demo/Server/Properties/launchSettings.json @@ -5,7 +5,6 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "https://localhost:5561;http://localhost:5560", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj index d022f068b6f..cb826eac6ae 100644 --- a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj +++ b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj @@ -1,7 +1,7 @@  - net10.0 + net11.0 enable enable false diff --git a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/PlaywrightSession.cs index e50ed862f03..49c942e3627 100644 --- a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/PlaywrightSession.cs +++ b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/PlaywrightSession.cs @@ -51,7 +51,7 @@ private static async Task StartAsync() if (browser is null) { playwright.Dispose(); - return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net10.0/playwright.ps1 install chromium', or install Chrome or Edge."); + return Session.Fail("no Chromium-based browser could be launched. Run 'pwsh bin//net11.0/playwright.ps1 install chromium', or install Chrome or Edge."); } try diff --git a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/RepoLayout.cs index 88382bc3a4a..b09d5468473 100644 --- a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/RepoLayout.cs +++ b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Infrastructure/RepoLayout.cs @@ -11,7 +11,7 @@ public static class RepoLayout public static string DemoServerProject() => FindUpward(Path.Combine("Demo", "Server", $"{DemoServerName}.csproj")); public static string DemoServerAssembly(string configuration) => - Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net10.0", $"{DemoServerName}.dll"); + Path.Combine(Path.GetDirectoryName(DemoServerProject())!, "bin", configuration, "net11.0", $"{DemoServerName}.dll"); /// The demo's routable pages, which the page sweep reads its routes from. public static string DemoPagesDirectory() => diff --git a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.Mcp/Bit.Bortable.Tests.Mcp.csproj b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.Mcp/Bit.Bortable.Tests.Mcp.csproj index e4a0053bf5e..f6d8441fdf9 100644 --- a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.Mcp/Bit.Bortable.Tests.Mcp.csproj +++ b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests.Mcp/Bit.Bortable.Tests.Mcp.csproj @@ -1,9 +1,9 @@  + exists on net11.0, while the library's own tests multi-target back to net8.0. --> - net10.0 + net11.0 Exe @@ -20,7 +20,7 @@ - + diff --git a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests/Bit.Bortable.Tests.csproj b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests/Bit.Bortable.Tests.csproj index c3f2d8f3aca..6e0ac0bab13 100644 --- a/src/Utilities/Bortable/Tests/Bit.Bortable.Tests/Bit.Bortable.Tests.csproj +++ b/src/Utilities/Bortable/Tests/Bit.Bortable.Tests/Bit.Bortable.Tests.csproj @@ -1,7 +1,7 @@  - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 enable enable false From 0f29e124e91e0f80152222dd4d64308d4606dc0c Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 17:43:59 +0200 Subject: [PATCH 25/45] feat(templates): let bit Boilerplate create a .NET 10 or a .NET 11 project The new framework option of bit Boilerplate picks net10.0, the default, or net11.0. The template's own tree stays the .NET 11 project. A .NET 10 project takes the 10.x build of every package whose 11.x build has no net10.0 assets, its SDK, dev container, runners and dotnet-ef, and leaves out the Windows kiosk mode and the other .NET 11 APIs. bit new and bit doctor install the SDK of the chosen framework, and bit itself runs on .NET 10 again. The Todo, TodoOffline and Sales demos build .NET 10, AdminPanel .NET 11, and All CI's PostgreSQL and MySQL jobs .NET 10, with MySQL back on. The getting started page installs the .NET 10 SDK. --- .github/agents/dependency-update.md | 21 ++- .github/agents/test-platform.md | 19 ++- .../agents/test-platform/test-platform.ps1 | 10 +- .github/workflows/admin-sample.cd.yml | 10 +- .github/workflows/all.ci.yml | 25 ++-- .github/workflows/sales-module-demo.cd.yml | 6 +- .github/workflows/todo-sample.cd.yml | 52 +++---- src/Cli/Bit.Cli/Bit.Cli.csproj | 10 +- src/Cli/Bit.Cli/Commands/DoctorCommand.cs | 2 +- src/Cli/Bit.Cli/Projects/NewWorkflow.cs | 2 +- src/Cli/Bit.Cli/Templates/TemplateManifest.cs | 71 ++++++++- .../Bit.Cli/Templates/TemplateRequirements.cs | 22 ++- src/Cli/README.md | 5 +- src/Cli/Tests/Bit.Cli.Tests/ToolTests.cs | 14 ++ .../.template.config/ide.host.json | 3 + .../.template.config/template.json | 138 ++++++++++++++++++ .../Boilerplate/Bit.Boilerplate/bit.json | 1 + .../Components/Pages/Home/HomePage.razor | 2 + .../Components/Pages/Home/HomePage.razor.cs | 2 + .../Identity/SignIn/SignInPanel.razor.cs | 10 ++ .../IClientCoreServiceCollectionExtensions.cs | 2 + .../Boilerplate.Client.Maui.csproj | 21 +++ .../Properties/launchSettings.json | 9 ++ .../ClientWindowsSettings.cs | 8 + .../Boilerplate.Client.Windows/Program.cs | 10 ++ .../appsettings.json | 2 + .../Bit.Boilerplate/src/Directory.Build.props | 13 +- .../src/Directory.Packages.props | 87 +++++++---- .../DownloadSize/WebAppDownloadSizeTests.cs | 10 +- .../Infrastructure/SignalR/AppHubOptions.cs | 2 + .../Program.Middlewares.cs | 16 +- .../Properties/launchSettings.json | 9 ++ src/Templates/Boilerplate/Readme.md | 2 +- .../Templates02GettingStartedPage.razor | 6 +- 34 files changed, 504 insertions(+), 118 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 76b2a1634ac..fd3888ce53f 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -113,9 +113,16 @@ calls a SkiaSharp overload missing from the SkiaSharp next to it, so any SVG it the build with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrixConvolution` ([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). develop holds MAUI at 10.0.100 for it. On this branch MAUI can't stay behind: a MAUI built for an older preview doesn't compile against the newer -preview's Android workload (CS1705 on `Java.Interop`). So MAUI follows the SDK here, and the app icons of the -Boilerplate and the BlazorUI demo carry no drop shadow (their ``) until that issue is fixed; the Todo CD -strips it from the icon it takes from the `TODO_ICON` variable. +preview's Android workload (CS1705 on `Java.Interop`). So MAUI follows the SDK here for .NET 11, while a .NET 10 +Boilerplate project keeps develop's 10.0.100, and the app icons of the Boilerplate and the BlazorUI demo carry no +drop shadow (their ``) until that issue is fixed. + +**bit Boilerplate builds for .NET 10 and .NET 11.** Its `framework` option picks one; the template's own tree is +the .NET 11 project. In its `Directory.Packages.props`, a package whose 11.x build has no `net10.0` assets has a +version in each of the two framework groups at the end of the file: the 11.x one, and a 10.x one that moves within +10.x. Every other package takes one version for both. The few literals that differ per framework are switch +symbols in `template.json` (the SDK and its `rollForward`, the dev container image, the `dotnet-ef` version, the +runner image), so they move together with the files they replace. **`Xamarin.Firebase.Messaging` is held at 125.1.1.** 125.1.2 pulls `Xamarin.AndroidX.Fragment` 1.9.0 (through `GooglePlayServices.Base` 118.10.1), which absorbed the ktx classes, while the rest of the @@ -137,7 +144,8 @@ rest of ASP.NET Core moves on. A NU1608 on Npgsql in a restore means this was mi defaults to JDK 25 (`(default)` in the image readme's Java table), which .NET for Android accepts from .NET 11 RC2 on (`LatestSupportedJavaVersion` 25.0.99 in `Xamarin.Android.Common.props.in`). develop stays on `ubuntu-24.04`, since .NET for Android 10 accepts up to 21, so a runner pin that comes over from develop moves -to `ubuntu-26.04` here. +to `ubuntu-26.04` here, except in the jobs that build a .NET 10 Boilerplate project (the Todo and Sales CDs), which +keep develop's runners. When a held pin's rationale no longer holds — the oldest supported SDK moved, TS 7 was adopted repo-wide — say so in the report rather than acting on it. @@ -255,7 +263,8 @@ There are no `.config/dotnet-tools.json` manifests any more: every tool is run w @`, so the pins live in the workflow and doc lines that call them (`grep -rn "dnx .*@"`). `vpk` must equal the `Velopack` PackageReference version in the same project — Velopack requires the CLI and the library to match, and this has drifted before. `dotnet-ef` should equal the -EF Core package version. Likewise the `npx playwright@` command in the Boilerplate's two +EF Core package version of the project it runs on: the .NET 11 one in the template's files, the .NET 10 one in +`template.json`'s `efToolVersion` and in the Todo CD. Likewise the `npx playwright@` command in the Boilerplate's two `.runsettings` (`src/Tests` and `src/Internal/Boilerplate.Tests.E2E`) must equal `Microsoft.Playwright.MSTest.v4`: a remote Playwright server of any other version refuses the client, and every test that runs on it fails at connect. @@ -263,7 +272,7 @@ every test that runs on it fails at connect. `src/global.json` is `rollForward: disable` and tracks the newest SDK. While .NET 11 is a release candidate, the two template `global.json` files pin the same RC SDK, also `rollForward: disable`, and move with it. Once .NET 11 ships they go back to `11.0.100` + `latestFeature`, so they accept any -11.0.x on a consumer's machine. +11.0.x on a consumer's machine. A .NET 10 project gets `10.0.100` + `latestFeature` from `template.json`. ### Container images diff --git a/.github/agents/test-platform.md b/.github/agents/test-platform.md index cfaf1d8447f..12b7d26ebce 100644 --- a/.github/agents/test-platform.md +++ b/.github/agents/test-platform.md @@ -106,8 +106,8 @@ websites - is checked. Every command prints what it checked and exits non-zero o | `windows [-Force]` | Opens each Windows app that is behind and taps its version, which updates it and restarts it. | | `e2e [-Stage ] [-Filter ] [-PrereleasePackages]` | Signs the global admin in once, then runs the E2E suite stage by stage like `RunTests.bat` - skipping the mac's stages when its Playwright server is down or on another version - keeping each stage's log and TRX. With `-PrereleasePackages`, it builds the suite with the Bit packages of the newest Prerelease nuget packages run. | | `mcp [-McpVersion ] [-Tool -Arguments ]` | One `tools/list` or `tools/call` on `https://bitplatform.dev/mcp`. | -| `devcontainer [-Sha [-PrereleasePackages]] [-Keep]` | Creates a project with `bit new`, brings its dev container up with the devcontainers CLI and runs `bit doctor` in it, with bit and the template from that commit or from nuget.org. Then removes the container, its volumes and its image, and keeps the logs. | -| `aspire [-Sha [-PrereleasePackages]] [-Keep]` | Creates a project with `bit new` the same way and runs its Aspire app host three times with `dotnet run`: the second run must reuse the first one's containers, they must stop once the app host has sat idle for its idle time, and the third run must bring them back on the same volumes. Then removes the project, its containers and their volumes, and keeps the logs. | +| `devcontainer [-Sha [-PrereleasePackages]] [-Framework ] [-Keep]` | Creates a project with `bit new`, for the template's default .NET or the one `-Framework` names, brings its dev container up with the devcontainers CLI and runs `bit doctor` in it, with bit and the template from that commit or from nuget.org. Then removes the container, its volumes and its image, and keeps the logs. | +| `aspire [-Sha [-PrereleasePackages]] [-Framework ] [-Keep]` | Creates a project with `bit new` the same way and runs its Aspire app host three times with `dotnet run`: the second run must reuse the first one's containers, they must stop once the app host has sat idle for its idle time, and the third run must bring them back on the same volumes. Then removes the project, its containers and their volumes, and keeps the logs. | ## 1. The CI run @@ -319,7 +319,8 @@ Triage every failure: tell flaky from broken. A stage's console log counts every failed attempt of a test that retries, its TRX only the last one: a test the TRX shows passed failed once and passed on its retry. Compare a failure only with earlier runs against a deployment from the same branch: the demos run whichever branch the last CD built, and the - branches differ in their .NET. + branches differ in their .NET. On one branch the demos can differ too: each demo's CD names the `--framework` it + builds with, so a failure in one app and not another may be the .NET version rather than the app. 2. Read the server's side. The demo backends run on this machine and log to the Windows **Application** event log, source `.NET Runtime`. How much gets there is each site's own `Logging` section in its server-owned `appsettings.json` under `C:\inetpub\`: the Boilerplate backends log from Information up, the platform @@ -345,9 +346,9 @@ no `Content-Length`, was compressed again on the way. Compare the libraries' ass with a publish of the commit the expected sizes were measured on. The service worker's own scripts, its asset list included, report no size to Playwright, so the total leaves them out. -Two failures on .NET 11 are known gaps of third-party libraries; report them as known and don't triage them: the -template's MySQL provider doesn't work there (All CI keeps its MySQL job off), and CommunityToolkit.Datasync doesn't -sync, so the offline Todo test that waits for an item added offline to reach the server fails every time. Check them +Two gaps of third-party libraries on .NET 11 are known: the template's MySQL provider doesn't work there, and +CommunityToolkit.Datasync doesn't sync. That is why All CI's MySQL job and the offline Todo demo build .NET 10 +projects. A .NET 11 project that uses either fails by design: report it as known and don't triage it. Check them again once those libraries support .NET 11. **A fix is proven only by the next CD.** The suite tests the deployed build, so a fix to the template or to a demo @@ -475,8 +476,10 @@ alive for its idle time. `aspire` checks that the way a developer meets it: - `-Sha` and `-PrereleasePackages` work as for `devcontainer`. With `-PrereleasePackages` the project restores into a packages folder of its own, since this machine's cache may hold nuget.org's build of the same version; without it the Bit packages come from nuget.org at the version the template asks for. The project's `global.json` asks for - the repository's SDK, which needs the workloads the template's clients build with (`wasm-tools`): an SDK that - Visual Studio installed brings only its own. + the SDK of its .NET version, which needs the workloads the template's clients build with (`wasm-tools`): an SDK + that Visual Studio installed brings only its own. +- Without `-Framework`, both `aspire` and `devcontainer` create a project for the template's default .NET. When a + change touches what differs between the .NET versions, run `aspire` once with each. - It takes about half an hour, most of it the idle wait, and a few GB of Docker's memory while the app runs. Start it in the background once the CD's deploy jobs are done, and never next to `devcontainer` or the Android stage. Its containers hold that memory, and Docker's VM keeps it for a while after they stop: IIS sites diff --git a/.github/agents/test-platform/test-platform.ps1 b/.github/agents/test-platform/test-platform.ps1 index 2aabb63b7b1..defd90c360e 100644 --- a/.github/agents/test-platform/test-platform.ps1 +++ b/.github/agents/test-platform/test-platform.ps1 @@ -23,6 +23,7 @@ finds something missing. aspire Runs a new project's Aspire app host three times: the second run reuses the first one's containers, they stop once it sits idle, and the third run brings them back on the same volumes. -Sha and -Keep as above. + Both create the project for the template's default .NET version unless -Framework names another. What is deployed where is read from those CD workflows and from the E2E suite's DeployedApps.cs and RunTests.bat rather than repeated here, so this script follows them. @@ -83,7 +84,11 @@ param( [switch] $PrereleasePackages, - [switch] $Keep + [switch] $Keep, + + # devcontainer, aspire: the project's --framework; the template's default when omitted. + [ValidateSet('net10.0', 'net11.0')] + [string] $Framework ) $ErrorActionPreference = 'Stop' @@ -1003,9 +1008,10 @@ function New-BitProject([string] $lab, $bit, [string] $name, [string[]] $options Push-Location $lab $templateArguments = $bit.TemplateArguments + $frameworkArguments = $Framework ? @('--framework', $Framework) : @() try { - & $bit.Path new $name --yes --no-open --no-trust --no-setup @options @templateArguments *> (Join-Path $lab 'new.log') + & $bit.Path new $name --yes --no-open --no-trust --no-setup @options @frameworkArguments @templateArguments *> (Join-Path $lab 'new.log') $newExitCode = $LASTEXITCODE } finally { diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 72cfd47e028..4e5d4f6287b 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -100,7 +100,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --database PostgreSQL --module Admin --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --api Standalone --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --api Standalone --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -257,7 +257,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --theme Material --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --theme Material --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -318,7 +318,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -422,7 +422,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms android --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms android --no-build --no-format --no-migration --no-trust - name: Extract Android signing key from env uses: timheuer/base64-to-file@dfa5a5dd38803cb4f5c3a081eeb28e8362d43e9c # v2.0.0 @@ -518,7 +518,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms ios --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms ios --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index 589a6158e35..e12b1d05581 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -15,13 +15,10 @@ on: description: Boilerplate tests with PostgreSQL type: boolean default: true - # Off by default on .NET 11: MySql.EntityFrameworkCore has no EF 11 build, and the EF 10 one throws - # "Method not found: RelationalTypeMapping.Clone" the moment the DbContext is created. Turn it back - # on with the provider, not before - see the note next to the reference in Directory.Packages.props. boilerplate_mysql: description: Boilerplate tests with MySQL type: boolean - default: false + default: true boilerplate_mssql: description: Boilerplate tests with SQL Server type: boolean @@ -76,10 +73,11 @@ jobs: with: persist-credentials: false - - name: Setup .NET 11 + - name: Setup .NET uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -91,7 +89,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TestPostgreSQL --database PostgreSQL --module Sales --signalR --aspire --redis --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust + run: bit new TestPostgreSQL --framework net10.0 --database PostgreSQL --module Sales --signalR --aspire --redis --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust - name: Create appsettings.json for Client.Web run: | @@ -161,10 +159,11 @@ jobs: with: persist-credentials: false - - name: Setup .NET 11 + - name: Setup .NET uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -176,7 +175,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TestMySql --database MySql --module Sales --signalR --aspire --redis --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust + run: bit new TestMySql --framework net10.0 --database MySql --module Sales --signalR --aspire --redis --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust - name: Create appsettings.json for Client.Web run: | @@ -261,7 +260,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TestSqlServer --database SqlServer --module Admin --signalR --aspire false --api Standalone --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust + run: bit new TestSqlServer --framework net11.0 --database SqlServer --module Admin --signalR --aspire false --api Standalone --advancedTests --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust - name: Create appsettings.json for Client.Web run: | @@ -354,15 +353,15 @@ jobs: env: EnforceCodeStyleInBuild: true run: | - bit new TestStandalone --api Standalone --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers + bit new TestStandalone --framework net11.0 --api Standalone --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers rm -r "TestStandalone" - bit new TestIntegrated --api Integrated --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers + bit new TestIntegrated --framework net11.0 --api Integrated --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers rm -r "TestIntegrated" - name: Build sample configuration 1 working-directory: ${{ runner.temp }} run: | - bit new MyCompany.TestProject --database SqlServer --filesStorage AzureBlobStorage --api Integrated --captcha reCaptcha --pipeline Azure --module Admin --offlineDb --appInsights --sentry --signalR --notification --cloudflare --ads --aspire --redis --multitenant --brouter --platforms web,android --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers -p:InvariantGlobalization=false -p:Environment=Staging -p:EnforceCodeStyleInBuild=true + bit new MyCompany.TestProject --framework net11.0 --database SqlServer --filesStorage AzureBlobStorage --api Integrated --captcha reCaptcha --pipeline Azure --module Admin --offlineDb --appInsights --sentry --signalR --notification --cloudflare --ads --aspire --redis --multitenant --brouter --platforms web,android --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-format --no-browsers -p:InvariantGlobalization=false -p:Environment=Staging -p:EnforceCodeStyleInBuild=true cd MyCompany.TestProject git log --oneline --decorate --all git status --short @@ -375,7 +374,7 @@ jobs: - name: Build sample configuration 2 working-directory: ${{ runner.temp }} run: | - bit new TestProject2 --database Other --filesStorage S3 --api Standalone --captcha None --pipeline None --module None --offlineDb false --appInsights false --sentry false --signalR false --notification false --cloudflare false --ads false --aspire true --redis false --multitenant false --brouter false --platforms web,android --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-browsers -p:InvariantGlobalization=true -p:Environment=Development -p:EnforceCodeStyleInBuild=true + bit new TestProject2 --framework net11.0 --database Other --filesStorage S3 --api Standalone --captcha None --pipeline None --module None --offlineDb false --appInsights false --sentry false --signalR false --notification false --cloudflare false --ads false --aspire true --redis false --multitenant false --brouter false --platforms web,android --template-package "$BIT_TEMPLATE_PACKAGE" --yes --no-trust --no-browsers -p:InvariantGlobalization=true -p:Environment=Development -p:EnforceCodeStyleInBuild=true rm -r "TestProject2" diff --git a/.github/workflows/sales-module-demo.cd.yml b/.github/workflows/sales-module-demo.cd.yml index d0f67e07858..78d1bc14040 100644 --- a/.github/workflows/sales-module-demo.cd.yml +++ b/.github/workflows/sales-module-demo.cd.yml @@ -65,6 +65,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -76,7 +77,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new SalesModule --database PostgreSQL --module Sales --appInsights --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new SalesModule --framework net10.0 --database PostgreSQL --module Sales --appInsights --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -180,6 +181,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src\global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -191,7 +193,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new SalesModule --database PostgreSQL --module Sales --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust + run: bit new SalesModule --framework net10.0 --database PostgreSQL --module Sales --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index 0cd3189ac67..bae48ba6471 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -88,6 +88,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -99,7 +100,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --offlineDb --signalR --ads --api Standalone --redis --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-restore --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --offlineDb --signalR --ads --api Standalone --redis --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-restore --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -161,6 +162,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -172,7 +174,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --api Standalone --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --api Standalone --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -287,7 +289,7 @@ jobs: deploy_blazor_wasm_standalone_aot: name: build blazor wasm standalone (AOT) if: inputs.wasm - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 steps: @@ -300,6 +302,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -311,7 +314,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --ads --multitenant false --theme Cupertino --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --ads --multitenant false --theme Cupertino --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -341,7 +344,7 @@ jobs: deploy_blazor_wasm_standalone_offlineDb: name: build blazor wasm standalone (Offline database) if: inputs.wasm - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 steps: @@ -354,6 +357,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -365,7 +369,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --offlineDb --signalR --ads --multitenant false --theme Fluent --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-restore --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --appInsights --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --offlineDb --signalR --ads --multitenant false --theme Fluent --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-restore --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -383,7 +387,7 @@ jobs: - name: Optimize DbContext run: | - cd TodoSample/src/Server/TodoSample.Server.Web && dotnet build -c Release && dnx dotnet-ef@11.0.0-rc.1.26425.128 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace TodoSample.Client.Core.Infrastructure.Data --project ../../Client/TodoSample.Client.Core/TodoSample.Client.Core.csproj --verbose + cd TodoSample/src/Server/TodoSample.Server.Web && dotnet build -c Release && dnx dotnet-ef@10.0.13 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace TodoSample.Client.Core.Infrastructure.Data --project ../../Client/TodoSample.Client.Core/TodoSample.Client.Core.csproj --verbose - name: Publish run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true @@ -396,7 +400,7 @@ jobs: deploy_blazor_wasm_standalone_small: name: build blazor wasm standalone (small) if: inputs.wasm - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 steps: @@ -409,6 +413,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -420,7 +425,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --ads --multitenant false --brouter false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --ads --multitenant false --brouter false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -432,7 +437,7 @@ jobs: GoogleRecaptchaSiteKey: ${{ secrets.GOOGLE_RECAPTCHA_SITE_KEY }} - name: Publish - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:UseMonoRuntime=false -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact @@ -468,6 +473,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -479,7 +485,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms windows --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -552,7 +558,7 @@ jobs: build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android - runs-on: ubuntu-26.04 + runs-on: ubuntu-24.04 permissions: contents: read actions: read @@ -570,6 +576,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -581,7 +588,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms android --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms android --no-build --no-format --no-migration --no-trust - name: Extract Android signing key from env uses: timheuer/base64-to-file@dfa5a5dd38803cb4f5c3a081eeb28e8362d43e9c # v2.0.0 @@ -622,9 +629,6 @@ jobs: fileName: 'appicon.svg' encodedString: ${{ vars.TODO_ICON }} - - name: Leave the App Icon's SVG filters out, which MAUI's resizetizer can't render (dotnet/maui#38319) - run: perl -0pi -e 's/ filter="url\(#[^)]*\)"//g; s/\s*//gs' TodoSample/src/Client/TodoSample.Client.Maui/Resources/AppIcon/appicon.svg - - name: Delete App Splash Screen run: rm TodoSample/src/Client/TodoSample.Client.Maui/Resources/Splash/splash.svg @@ -637,14 +641,14 @@ jobs: - name: Publish aab - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-android + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-android - name: Upload artifact id: artifact uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-bundle - path: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net11.0-android/*-Signed.apk + path: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net10.0-android/*-Signed.apk - name: Attest artifact uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -658,7 +662,7 @@ jobs: with: serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} packageName: ${{ env.APP_BUNDLE_ID }} - releaseFiles: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net11.0-android/*-Signed.aab + releaseFiles: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net10.0-android/*-Signed.aab releaseName: ${{ vars.APP_VERSION }} track: internal status: completed @@ -684,6 +688,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: @@ -699,7 +704,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new TodoSample --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms ios --no-build --no-format --no-migration --no-trust + run: bit new TodoSample --framework net10.0 --database PostgreSQL --sample --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --multitenant false --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --platforms ios --no-build --no-format --no-migration --no-trust - name: Translate .resx files run: | @@ -740,9 +745,6 @@ jobs: fileName: 'appicon.svg' encodedString: ${{ vars.TODO_ICON }} - - name: Leave the App Icon's SVG filters out, which MAUI's resizetizer can't render (dotnet/maui#38319) - run: perl -0pi -e 's/ filter="url\(#[^)]*\)"//g; s/\s*//gs' TodoSample/src/Client/TodoSample.Client.Maui/Resources/AppIcon/appicon.svg - - name: Delete App Splash Screen run: rm TodoSample/src/Client/TodoSample.Client.Maui/Resources/Splash/splash.svg @@ -755,11 +757,11 @@ jobs: - name: Build ipa - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net11.0-ios + run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-ios - name: Locate ipa id: ipa - run: echo "path=$(ls TodoSample/src/Client/TodoSample.Client.Maui/bin/release/net11.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT + run: echo "path=$(ls TodoSample/src/Client/TodoSample.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa | head -n 1)" >> $GITHUB_OUTPUT - name: Attest ipa uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 diff --git a/src/Cli/Bit.Cli/Bit.Cli.csproj b/src/Cli/Bit.Cli/Bit.Cli.csproj index 4887a130df9..44e47bda7cd 100644 --- a/src/Cli/Bit.Cli/Bit.Cli.csproj +++ b/src/Cli/Bit.Cli/Bit.Cli.csproj @@ -4,7 +4,7 @@ Exe - net11.0 + net10.0 Major enable enable @@ -30,10 +30,10 @@ - - - - + + + + diff --git a/src/Cli/Bit.Cli/Commands/DoctorCommand.cs b/src/Cli/Bit.Cli/Commands/DoctorCommand.cs index 604f8747929..cc415ea1852 100644 --- a/src/Cli/Bit.Cli/Commands/DoctorCommand.cs +++ b/src/Cli/Bit.Cli/Commands/DoctorCommand.cs @@ -41,7 +41,7 @@ public static Command Create(Func services) var projectName = ProjectContext.FindProjectName(cli.Environment.CurrentDirectory); var aspire = projectName is null || Directory.Exists(Path.Combine(cli.Environment.CurrentDirectory, "src", "Server", $"{projectName}.Server.AppHost")); - var requirements = projectName is null ? TemplateRequirements.Embedded : TemplateRequirements.FromProject(cli.Environment.CurrentDirectory, projectName); + var requirements = projectName is null ? TemplateRequirements.Embedded.For(new TemplateSelection(TemplateManifest.Embedded)) : TemplateRequirements.FromProject(cli.Environment.CurrentDirectory, projectName); var needs = new ToolNeeds { Aspire = aspire, diff --git a/src/Cli/Bit.Cli/Projects/NewWorkflow.cs b/src/Cli/Bit.Cli/Projects/NewWorkflow.cs index a210734815e..4a25cb5104a 100644 --- a/src/Cli/Bit.Cli/Projects/NewWorkflow.cs +++ b/src/Cli/Bit.Cli/Projects/NewWorkflow.cs @@ -64,7 +64,7 @@ public async Task RunAsync(NewRequest request, CancellationToken cancellati return UsageError(request.PropertyError); var ide = request.NoOpen ? IdeLocator.None : request.Ide; - var requirements = request.TemplatePackage is null ? TemplateRequirements.Embedded : TemplateRequirements.FromPackage(Path.GetFullPath(request.TemplatePackage, cli.Environment.CurrentDirectory)); + var requirements = (request.TemplatePackage is null ? TemplateRequirements.Embedded : TemplateRequirements.FromPackage(Path.GetFullPath(request.TemplatePackage, cli.Environment.CurrentDirectory))).For(selection); var needs = new ToolNeeds { Aspire = selection.Aspire, Containers = selection.AspireContainers(), ContainersRequired = selection.NeedsContainers, NativeWebAssembly = selection.IsTrue("offlineDb"), GitHubRepo = request.GitHubRepo, Platforms = platforms, Ide = ide, Sdk = requirements.Sdk, NodeMajor = requirements.NodeMajor, AspireVersion = requirements.Aspire }; var hardware = request.NoSetup ? null : ProbeHardwareAsync(cli, directory, cancellationToken); var selectedTools = request.NoTools ? [] : await ChooseToolsAsync(cli, needs, request.Tools, request.ToolsGiven, interactive, hardware, cancellationToken); diff --git a/src/Cli/Bit.Cli/Templates/TemplateManifest.cs b/src/Cli/Bit.Cli/Templates/TemplateManifest.cs index 060fe17c009..5d630891c2b 100644 --- a/src/Cli/Bit.Cli/Templates/TemplateManifest.cs +++ b/src/Cli/Bit.Cli/Templates/TemplateManifest.cs @@ -1,4 +1,5 @@ using System.Text.Json; +using System.Text.RegularExpressions; namespace Bit.Cli.Templates; @@ -11,6 +12,10 @@ public enum TemplateParameterType public sealed record TemplateChoice(string Value, string? Description); +public sealed record TemplateSwitchCase(string? Parameter, string? Value, string Result); + +public sealed record TemplateSwitch(string Replaces, IReadOnlyList Cases); + public sealed record TemplateParameter { public required string Name { get; init; } @@ -41,7 +46,7 @@ public sealed record TemplateParameter } } -public sealed class TemplateManifest +public sealed partial class TemplateManifest { private static readonly string[] hiddenParameters = ["helpUrl"]; @@ -55,11 +60,28 @@ public sealed class TemplateManifest public required IReadOnlyList Parameters { get; init; } + public IReadOnlyList Switches { get; init; } = []; + public TemplateParameter? Find(string name) { return Parameters.FirstOrDefault(p => string.Equals(p.Name, name, StringComparison.OrdinalIgnoreCase)); } + public string ApplySwitches(string text, TemplateSelection selection) + { + foreach (var templateSwitch in Switches) + { + var match = templateSwitch.Cases.FirstOrDefault(c => c.Parameter is null || string.Equals(selection[c.Parameter], c.Value, StringComparison.OrdinalIgnoreCase)); + + if (match is not null) + { + text = text.Replace(templateSwitch.Replaces, match.Result, StringComparison.Ordinal); + } + } + + return text; + } + public static TemplateManifest Embedded { get; } = LoadEmbedded(); public static TemplateManifest Parse(string json) @@ -68,11 +90,22 @@ public static TemplateManifest Parse(string json) var root = document.RootElement; var parameters = new List(); + var switches = new List(); foreach (var symbol in root.GetProperty("symbols").EnumerateObject()) { var value = symbol.Value; + if (GetString(value, "type") is "generated" && GetString(value, "generator") is "switch") + { + if (ParseSwitch(value) is { } templateSwitch) + { + switches.Add(templateSwitch); + } + + continue; + } + if (GetString(value, "type") is not "parameter" || hiddenParameters.Contains(symbol.Name)) continue; @@ -103,10 +136,44 @@ public static TemplateManifest Parse(string json) Identity = GetString(root, "identity") ?? "Bit.Boilerplate", ShortName = GetString(root, "shortName") ?? "bit-bp", SourceName = GetString(root, "sourceName") ?? "Boilerplate", - Parameters = parameters + Parameters = parameters, + Switches = switches }; } + private static TemplateSwitch? ParseSwitch(JsonElement symbol) + { + if (GetString(symbol, "replaces") is not { Length: > 0 } replaces + || symbol.TryGetProperty("parameters", out var parameters) is false + || parameters.TryGetProperty("cases", out var cases) is false + || cases.ValueKind is not JsonValueKind.Array) + return null; + + var parsed = new List(); + + foreach (var templateCase in cases.EnumerateArray()) + { + if (GetString(templateCase, "value") is not { } result) + continue; + + var condition = GetString(templateCase, "condition") ?? ""; + + if (condition.Trim().Length is 0) + { + parsed.Add(new(null, null, result)); + } + else if (SwitchConditionRegex().Match(condition) is { Success: true } match) + { + parsed.Add(new(match.Groups["parameter"].Value, match.Groups["value"].Value, result)); + } + } + + return new TemplateSwitch(replaces, parsed); + } + + [GeneratedRegex("""^\s*\(\s*(?\w+)\s*==\s*['"](?[^'"]*)['"]\s*\)\s*$""")] + private static partial Regex SwitchConditionRegex(); + private static TemplateManifest LoadEmbedded() { using var stream = typeof(TemplateManifest).Assembly.GetManifestResourceStream("Bit.Cli.template.json") diff --git a/src/Cli/Bit.Cli/Templates/TemplateRequirements.cs b/src/Cli/Bit.Cli/Templates/TemplateRequirements.cs index d9fca48924c..18362139f9e 100644 --- a/src/Cli/Bit.Cli/Templates/TemplateRequirements.cs +++ b/src/Cli/Bit.Cli/Templates/TemplateRequirements.cs @@ -4,7 +4,7 @@ namespace Bit.Cli.Templates; -public sealed partial record TemplateRequirements(int? NodeMajor, Version? Aspire, SdkRequirement? Sdk) +public sealed partial record TemplateRequirements(int? NodeMajor, Version? Aspire, SdkRequirement? Sdk, string? GlobalJson = null) { private const string PackageJsonEntry = "Bit.Boilerplate/src/Client/Boilerplate.Client.Core/package.json"; @@ -12,14 +12,24 @@ public sealed partial record TemplateRequirements(int? NodeMajor, Version? Aspir private const string GlobalJsonEntry = "Bit.Boilerplate/global.json"; - public static TemplateRequirements Embedded { get; } = new(ParseNodeMajor(ReadResource("Bit.Cli.package.json")), ParseAspire(ReadResource("Bit.Cli.AppHost.csproj")), SdkRequirement.FromGlobalJson(ReadResource("Bit.Cli.global.json"))); + public static TemplateRequirements Embedded { get; } = FromTemplate(ReadResource("Bit.Cli.package.json"), ReadResource("Bit.Cli.AppHost.csproj"), ReadResource("Bit.Cli.global.json")); public static TemplateRequirements FromPackage(string packagePath) { - return new( - ParseNodeMajor(TemplateSource.ReadEntry(packagePath, PackageJsonEntry)), - ParseAspire(TemplateSource.ReadEntry(packagePath, AppHostEntry)), - SdkRequirement.FromGlobalJson(TemplateSource.ReadEntry(packagePath, GlobalJsonEntry))); + return FromTemplate( + TemplateSource.ReadEntry(packagePath, PackageJsonEntry), + TemplateSource.ReadEntry(packagePath, AppHostEntry), + TemplateSource.ReadEntry(packagePath, GlobalJsonEntry)); + } + + public TemplateRequirements For(TemplateSelection selection) + { + return GlobalJson is null ? this : this with { Sdk = SdkRequirement.FromGlobalJson(selection.Manifest.ApplySwitches(GlobalJson, selection)) ?? Sdk }; + } + + private static TemplateRequirements FromTemplate(string? packageJson, string? appHostProject, string? globalJson) + { + return new(ParseNodeMajor(packageJson), ParseAspire(appHostProject), SdkRequirement.FromGlobalJson(globalJson), globalJson); } public static TemplateRequirements FromProject(string directory, string name) diff --git a/src/Cli/README.md b/src/Cli/README.md index 324abbda4c7..7c22e303349 100644 --- a/src/Cli/README.md +++ b/src/Cli/README.md @@ -13,7 +13,7 @@ Or run it without installing anything: dnx Bit.Cli --prerelease -- new MyApp ``` -It needs a .NET 11 SDK or later. `dnx` asks once before it downloads the package. +It needs a .NET 10 SDK or later. `dnx` asks once before it downloads the package. ## bit new @@ -49,6 +49,7 @@ Every option of the bit Boilerplate template works the same way: | Option | Values | Default | |---|---|---| +| `--framework` | `net10.0`, `net11.0` | `net10.0` | | `--database` | `Sqlite`, `SqlServer`, `PostgreSQL`, `MySql`, `Other` | `Sqlite` | | `--filesStorage` | `Local`, `S3`, `AzureBlobStorage`, `Other` | `Local` | | `--api` | `Integrated`, `Standalone` | `Integrated` | @@ -310,7 +311,7 @@ bit about shows the version, the commit and the GitHub Actions run that built it. Release packages are built from this repository by GitHub Actions, which signs the bit assemblies inside them, `bit.dll` included, and attests the provenance and the SBOM of every package and of those assemblies. On Windows, `bit about` says who signed the `bit.dll` it runs once Windows has checked the signature. For a release, it also asks GitHub whether it holds a build attestation for that exact `bit.dll`, and prints the command that verifies it fully: ```bash -gh attestation verify ~/.dotnet/tools/.store/bit.cli//bit.cli//tools/net11.0/any/bit.dll --repo bitfoundation/bitplatform +gh attestation verify ~/.dotnet/tools/.store/bit.cli//bit.cli//tools/net10.0/any/bit.dll --repo bitfoundation/bitplatform ``` ## Exit codes diff --git a/src/Cli/Tests/Bit.Cli.Tests/ToolTests.cs b/src/Cli/Tests/Bit.Cli.Tests/ToolTests.cs index 77d79b5a6bd..12e863314a5 100644 --- a/src/Cli/Tests/Bit.Cli.Tests/ToolTests.cs +++ b/src/Cli/Tests/Bit.Cli.Tests/ToolTests.cs @@ -298,6 +298,20 @@ public void TheEmbeddedTemplate_Should_CarryTheSdkOfTheTemplatesGlobalJson() Assert.AreEqual(expected, TemplateRequirements.Embedded.Sdk); } + [TestMethod] + public void TheSdk_Should_FollowTheChosenFramework() + { + var net10 = new TemplateSelection(TemplateManifest.Embedded); + var net11 = new TemplateSelection(TemplateManifest.Embedded); + Assert.IsNull(net10.Set("framework", "net10.0")); + Assert.IsNull(net11.Set("framework", "net11.0")); + + Assert.AreEqual(TemplateRequirements.Embedded.Sdk, TemplateRequirements.Embedded.For(net11).Sdk); + Assert.AreEqual("10.0", TemplateRequirements.Embedded.For(net10).Sdk?.Channel); + Assert.IsFalse(TemplateRequirements.Embedded.For(net10).Sdk?.Pinned); + Assert.AreEqual(TemplateRequirements.Embedded.For(net10).Sdk, TemplateRequirements.Embedded.For(new TemplateSelection(TemplateManifest.Embedded)).Sdk); + } + [TestMethod] public async Task TheSdk_Should_InstallItsExactVersionOnMacOSAndLinux() { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/ide.host.json b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/ide.host.json index a9cadfdd819..066640e0908 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/ide.host.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/ide.host.json @@ -11,6 +11,9 @@ { "id": "helpUrl" }, + { + "id": "framework" + }, { "id": "aspire" }, diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json index 78c7de3fd3e..9daa9d13c73 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json @@ -16,6 +16,138 @@ "sourceName": "Boilerplate", "preferNameDirectory": true, "symbols": { + "framework": { + "displayName": ".NET version", + "type": "parameter", + "datatype": "choice", + "replaces": "net11.0", + "defaultValue": "net10.0", + "choices": [ + { + "choice": "net10.0", + "description": ".NET 10, the current long term support release" + }, + { + "choice": "net11.0", + "description": ".NET 11, which adds the Windows app's kiosk mode" + } + ], + "description": "The .NET version the project targets." + }, + "sdkVersion": { + "type": "generated", + "generator": "switch", + "replaces": "\"version\": \"11.0.100-rc.2.26504.105\"", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "\"version\": \"10.0.100\"" + }, + { + "condition": "", + "value": "\"version\": \"11.0.100-rc.2.26504.105\"" + } + ] + } + }, + "sdkRollForward": { + "type": "generated", + "generator": "switch", + "replaces": "\"rollForward\": \"disable\"", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "\"rollForward\": \"latestFeature\"" + }, + { + "condition": "", + "value": "\"rollForward\": \"disable\"" + } + ] + } + }, + "devContainerImage": { + "type": "generated", + "generator": "switch", + "replaces": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.2", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "mcr.microsoft.com/dotnet/sdk:10.0.402" + }, + { + "condition": "", + "value": "mcr.microsoft.com/dotnet/sdk:11.0.100-rc.2" + } + ] + } + }, + "efToolVersion": { + "type": "generated", + "generator": "switch", + "replaces": "dotnet-ef@11.0.0-rc.1.26425.128", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "dotnet-ef@10.0.13" + }, + { + "condition": "", + "value": "dotnet-ef@11.0.0-rc.1.26425.128" + } + ] + } + }, + "runnerImage": { + "type": "generated", + "generator": "switch", + "replaces": "ubuntu-26.04", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "ubuntu-24.04" + }, + { + "condition": "", + "value": "ubuntu-26.04" + } + ] + } + }, + "aspNetCoreVersionName": { + "type": "generated", + "generator": "switch", + "replaces": "ASP.NET Core 11.0", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "ASP.NET Core 10.0" + }, + { + "condition": "", + "value": "ASP.NET Core 11.0" + } + ] + } + }, "helpUrl": { "displayName": "More info at", "type": "parameter", @@ -1237,6 +1369,12 @@ "src/Client/Boilerplate.Client.Core/Components/Pages/AppPageBase.BrouterLifecycles.cs", "src/Client/Boilerplate.Client.Core/Components/Common/AppPageData.BrouterLifecycles.cs" ] + }, + { + "condition": "(framework != 'net11.0')", + "exclude": [ + "src/Client/Boilerplate.Client.Windows/Infrastructure/Services/WindowsKioskGuard.cs" + ] } ] } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/bit.json b/src/Templates/Boilerplate/Bit.Boilerplate/bit.json index e01b9d2377a..5be9f461cb8 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/bit.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/bit.json @@ -3,6 +3,7 @@ "version": "11.0.0-pre-10", "name": "Boilerplate", "options": { + "framework": "net11.0", "database": "bit-option-database", "filesStorage": "bit-option-filesStorage", "api": "bit-option-api", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor index 8a0188f9902..1d43774bd04 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor @@ -13,6 +13,7 @@
+ @*#if (framework == 'net11.0')*@ @if (IsKiosk) { @@ -26,6 +27,7 @@ } + @*#endif*@ @Localizer[nameof(AppStrings.HomePanelTitle)] diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs index a1b15060bc1..3cf224e51b5 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Home/HomePage.razor.cs @@ -46,6 +46,7 @@ private string BuildSiteJsonLd() ["@graph"] = new JsonArray(organization, webSite) }.ToJsonString(); } + //#if (framework == 'net11.0') /// /// The demo Windows app ships with kiosk mode on, so the page offers the way out that the lockdown takes away. @@ -54,6 +55,7 @@ private string BuildSiteJsonLd() /// Nothing else closes a kiosk window: the close button is gone and WM_CLOSE is refused. private void ExitApp() => Environment.Exit(0); + //#endif //#if(module != "Sales") diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs index 6301465b5b3..f1442f99def 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/Identity/SignIn/SignInPanel.razor.cs @@ -144,7 +144,17 @@ private async Task DoSignIn() { CleanModel(); + //#if (framework == 'net11.0') if (validatorRef is not null && await validatorRef.EditContext.ValidateAsync(CurrentCancellationToken) is false) return; + //#else + //#if (IsInsideProjectTemplate == true) + /* + //#endif + if (validatorRef?.EditContext.Validate() is false) return; + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif if (isNewUser is false) { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs index 36157bd8185..8519efce95b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Infrastructure/Extensions/IClientCoreServiceCollectionExtensions.cs @@ -178,11 +178,13 @@ public IServiceCollection AddClientCoreProjectServices(IConfiguration configurat } }) .WithAutomaticReconnect(sp.GetRequiredService()) + //#if (framework == 'net11.0') .WithAuthenticationRefresh(options => { options.EnableAutoRefresh = true; options.RefreshBeforeExpiration = TimeSpan.FromMinutes(1); }) + //#endif .WithUrl(new Uri(absoluteServerAddressProvider.GetAddress(), "app-hub?origin=" + Uri.EscapeDataString(xOrigin)), options => { //#if (redis == true) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj index 5564a04c5bc..d905f50f133 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj @@ -23,6 +23,14 @@ $(NoWarn);ClassWithoutModifierAnalyzer + + + + True + + + + false + false + + + True + Platforms/iOS/Entitlements.Development.plist + + True + -all + Platforms/iOS/Entitlements.Production.plist @@ -76,6 +94,9 @@ Platforms/MacCatalyst/Entitlements.Production.plist true + + -all + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json index 33721d5a5fb..3fdd0348de8 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Properties/launchSettings.json @@ -4,6 +4,15 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, + //#if (framework == 'net10.0') + //#if (IsInsideProjectTemplate) + /* + //#endif + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + //#if (IsInsideProjectTemplate) + */ + //#endif + //#endif "applicationUrl": "http://localhost:4030", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs index 32bc279db64..a8f66b7ad58 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/ClientWindowsSettings.cs @@ -1,14 +1,18 @@ //+:cnd:noEmit using Boilerplate.Client.Core; +//#if (framework == 'net11.0') using Boilerplate.Client.Windows.Infrastructure.Services; +//#endif namespace Boilerplate.Client.Windows; public class ClientWindowsSettings : ClientCoreSettings { public WindowsUpdateOptions? WindowsUpdate { get; set; } + //#if (framework == 'net11.0') public KioskOptions? Kiosk { get; set; } + //#endif public override IEnumerable Validate(ValidationContext validationContext) { @@ -18,11 +22,13 @@ public override IEnumerable Validate(ValidationContext validat { Validator.TryValidateObject(WindowsUpdate, new ValidationContext(WindowsUpdate), validationResults, true); } + //#if (framework == 'net11.0') if (Kiosk is not null) { Validator.TryValidateObject(Kiosk, new ValidationContext(Kiosk), validationResults, true); } + //#endif return validationResults; } @@ -34,6 +40,7 @@ public partial class WindowsUpdateOptions public string? FilesUrl { get; set; } } +//#if (framework == 'net11.0') /// /// Options of the .NET 11 and of . @@ -52,3 +59,4 @@ public partial class KioskOptions /// public bool PreventSleep { get; set; } } +//#endif diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs index 43573da688b..c339f96026f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs @@ -77,9 +77,12 @@ public static void Main(string[] args) BackColor = backgroundColor, FormCaptionBackColor = backgroundColor, Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath), + //#if (framework == 'net11.0') FormRevealMode = FormRevealMode.Deferred + //#endif }; + //#if (framework == 'net11.0') var kioskOptions = Services.GetRequiredService().Kiosk; var isKiosk = kioskOptions?.Enabled is true; kioskModeManagerReferenceToKeepAlive = new KioskModeManager @@ -91,6 +94,7 @@ public static void Main(string[] args) EscapeExitsFullScreen = isKiosk is false, FullScreen = isKiosk }; + //#endif var pubSubService = Services.GetRequiredService(); pubSubHandlerReferenceToKeepAlive = pubSubService.Subscribe(ClientAppMessages.PAGE_DATA_CHANGED, async args => { @@ -139,6 +143,7 @@ or CoreWebView2PermissionKind.ClipboardRead args.Handled = true; args.State = CoreWebView2PermissionState.Allow; }; + //#if (framework == 'net11.0') if (isKiosk) { @@ -153,16 +158,19 @@ or CoreWebView2PermissionKind.ClipboardRead // A second window would be one the lockdown does not own, and its chrome is the way back to the desktop. blazorWebView.WebView.CoreWebView2.NewWindowRequested += (_, args) => args.Handled = true; } + //#endif _ = StartBlazor(blazorWebView); }; form.Controls.Add(blazorWebView); + //#if (framework == 'net11.0') if (isKiosk) { WindowsKioskGuard.Apply(form); } + //#endif Application.Run(form); } @@ -218,9 +226,11 @@ private static void LogException(object? error, string reportedBy) /// Strong root for the PAGE_DATA_CHANGED subscription, which PubSubService itself only holds weakly. /// private static Action? pubSubHandlerReferenceToKeepAlive; + //#if (framework == 'net11.0') /// /// Strong root for the kiosk manager, which only the form it hooks would otherwise keep alive. /// private static KioskModeManager? kioskModeManagerReferenceToKeepAlive; + //#endif } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json index d221667ad53..c1376852f29 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/appsettings.json @@ -16,9 +16,11 @@ "FilesUrl": null, "AutoReload": false }, + //#if (framework == 'net11.0') "Kiosk": { "Enabled": false, "PreventSleep": false }, + //#endif "$schema": "https://json.schemastore.org/appsettings.json" } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props index d3666339d57..5173362dc4d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props @@ -53,13 +53,24 @@ 14.0 15.0 - 17.0 26.0 10.0.17763.0 10.0.17763.0 6.5 + + + 17.0 + + + + + + 15.0 + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index bc9e291f948..66f1a152056 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -17,27 +17,16 @@ - - - - - - - - - - - @@ -95,7 +84,6 @@ - @@ -106,8 +94,6 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs index e8dadda72d9..7b63de50245 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs @@ -42,12 +42,12 @@ public partial class WebAppDownloadSizeTests : AppPageTest [DataRow(DeployedApps.AdminPanel, 5.6, DisplayName = nameof(DeployedApps.AdminPanel))] [DataRow(DeployedApps.AdminPanelWasmStandalone, 5.9, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] - [DataRow(DeployedApps.Todo, 5.4, DisplayName = nameof(DeployedApps.Todo))] - [DataRow(DeployedApps.TodoAot, 9.6, DisplayName = nameof(DeployedApps.TodoAot))] - [DataRow(DeployedApps.TodoSmall, 4.4, DisplayName = nameof(DeployedApps.TodoSmall))] - [DataRow(DeployedApps.TodoOffline, 8.3, DisplayName = nameof(DeployedApps.TodoOffline))] + [DataRow(DeployedApps.Todo, 5.1, DisplayName = nameof(DeployedApps.Todo))] + [DataRow(DeployedApps.TodoAot, 8.6, DisplayName = nameof(DeployedApps.TodoAot))] + [DataRow(DeployedApps.TodoSmall, 3.7, DisplayName = nameof(DeployedApps.TodoSmall))] + [DataRow(DeployedApps.TodoOffline, 7.7, DisplayName = nameof(DeployedApps.TodoOffline))] - [DataRow(DeployedApps.Sales, 5.7, DisplayName = nameof(DeployedApps.Sales))] + [DataRow(DeployedApps.Sales, 5.5, DisplayName = nameof(DeployedApps.Sales))] public async Task FirstVisitDownloadSize_Should_NotRegress(string url, double expectedMegabytes) { // Qualified because the inherited BrowserType property shadows the type of the same name. diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs index b1204664334..6af7bed4628 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Infrastructure/SignalR/AppHubOptions.cs @@ -8,6 +8,7 @@ public static class AppHubOptions public static void Configure(HttpConnectionDispatcherOptions options) { options.AllowStatefulReconnects = true; + //#if (framework == 'net11.0') options.EnableAuthenticationRefresh = true; options.CloseOnAuthenticationExpiration = true; @@ -23,5 +24,6 @@ public static void Configure(HttpConnectionDispatcherOptions options) return Task.FromResult(previous.GetUserId() == refreshed.GetUserId() && previous.GetSessionId() == refreshed.GetSessionId()); }; + //#endif } } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs index 978021b4d3d..bda0ed7dc64 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs @@ -47,6 +47,19 @@ public void ConfigureMiddlewares() app.UseExceptionHandler(); //#endif + //#if (framework == 'net10.0') + //#if (IsInsideProjectTemplate == true) + /* + //#endif + if (env.IsDevelopment()) + { + app.UseWebAssemblyDebugging(); + } + + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif if (env.IsDevelopment() is false) { app.UseHttpsRedirection(); @@ -235,9 +248,6 @@ public void ConfigureMiddlewares() app.UseSiteMap(); // Handle the rest of requests with blazor - // blazor.web.js is endpoint-served from .NET 9 on, and this has to precede AddInteractiveWebAssemblyRenderMode. - app.MapStaticAssets(); - var blazorApp = app.MapRazorComponents() .CacheOutput("AppResponseCachePolicy") .AddInteractiveServerRenderMode() diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json index 6b61d3698b6..0f0a96e2ad1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Properties/launchSettings.json @@ -31,6 +31,15 @@ "WebAppRender:BlazorMode": "BlazorWebAssembly" }, "dotnetRunMessages": true, + //#if (framework == 'net10.0') + //#if (IsInsideProjectTemplate) + /* + //#endif + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + //#if (IsInsideProjectTemplate) + */ + //#endif + //#endif "applicationUrl": "http://localhost:5030;http://*:5030" }, "WSL": { diff --git a/src/Templates/Boilerplate/Readme.md b/src/Templates/Boilerplate/Readme.md index ad5138a09d7..32a2f3e188c 100644 --- a/src/Templates/Boilerplate/Readme.md +++ b/src/Templates/Boilerplate/Readme.md @@ -47,7 +47,7 @@ Comprehensive **Data and Response caching**: - Powerful vectorized database search using embeddings ### Modern Stack -- **ASP.NET Core 11**, **C# 14**, **.NET Aspire** +- **ASP.NET Core 10 or 11**, **C# 14**, **.NET Aspire** - **Entity Framework Core** with multiple database support (SQL Server, PostgreSQL, MySQL, SQLite) - Flexible file storage (Local, S3, Azure Blob Storage) - CI/CD pipelines for GitHub Actions and Azure DevOps diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor index 3e9b8f81964..a701406a416 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates02GettingStartedPage.razor @@ -21,14 +21,14 @@ 1. Install the .NET SDK - winget install Microsoft.DotNet.SDK.Preview --accept-package-agreements --accept-source-agreements + winget install Microsoft.DotNet.SDK.10 --accept-package-agreements --accept-source-agreements
- Download and run the macOS installer of the latest .NET 11 SDK. + Download and run the macOS installer of the latest .NET 10 SDK.
- curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 11.0 --quality preview + curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 10.0 echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc echo 'export PATH=$HOME/.dotnet:$HOME/.dotnet/tools:$PATH' >> ~/.bashrc source ~/.bashrc From 30e5fb2dc4c0b912ca6d058e82eae3379d1ef866 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 17:47:39 +0200 Subject: [PATCH 26/45] fix(cli): keep the framework of a project whose bit.json predates bit Boilerplate's framework option in bit diff --- src/Cli/Bit.Cli/Projects/ProjectContext.cs | 27 +++++++++++----------- src/Cli/Bit.Cli/Projects/TemplateDiff.cs | 12 +++++++--- src/Cli/Tests/Bit.Cli.Tests/DiffTests.cs | 17 ++++++++++++++ 3 files changed, 39 insertions(+), 17 deletions(-) diff --git a/src/Cli/Bit.Cli/Projects/ProjectContext.cs b/src/Cli/Bit.Cli/Projects/ProjectContext.cs index 00094c94ea9..686cf47143b 100644 --- a/src/Cli/Bit.Cli/Projects/ProjectContext.cs +++ b/src/Cli/Bit.Cli/Projects/ProjectContext.cs @@ -42,23 +42,22 @@ public sealed partial class ProjectContext public string? SeedPassword { get; set; } - public string TargetFrameworkVersion + public string TargetFrameworkVersion => ReadTargetFramework(Directory, Name) ?? $"net{Environment.Version.Major}.0"; + + public static string? ReadTargetFramework(string directory, string name) { - get + var core = Path.Combine(directory, "src", "Client", $"{name}.Client.Core", $"{name}.Client.Core.csproj"); + + try { - var core = Path.Combine(Directory, "src", "Client", $"{Name}.Client.Core", $"{Name}.Client.Core.csproj"); - - try - { - if (File.Exists(core) && TargetFrameworkRegex().Match(File.ReadAllText(core)) is { Success: true } match) - return match.Groups["tfm"].Value; - } - catch (IOException) - { - } - - return $"net{Environment.Version.Major}.0"; + if (File.Exists(core) && TargetFrameworkRegex().Match(File.ReadAllText(core)) is { Success: true } match) + return match.Groups["tfm"].Value; } + catch (IOException) + { + } + + return null; } public string? PackageVersion(string packageId) diff --git a/src/Cli/Bit.Cli/Projects/TemplateDiff.cs b/src/Cli/Bit.Cli/Projects/TemplateDiff.cs index b499d508ad2..461a334a4a7 100644 --- a/src/Cli/Bit.Cli/Projects/TemplateDiff.cs +++ b/src/Cli/Bit.Cli/Projects/TemplateDiff.cs @@ -184,10 +184,16 @@ public static (List Arguments, List Unknown) TemplateArguments(T public static ProjectRecord ReadProject(string directory) { var bitJson = Path.Combine(directory, "bit.json"); - - return File.Exists(bitJson) && ReadBitJson(File.ReadAllText(bitJson)) is { } record - ? record + var record = File.Exists(bitJson) && ReadBitJson(File.ReadAllText(bitJson)) is { } read + ? read : new ProjectRecord(null, null, new Dictionary()); + + if (record.Options.ContainsKey("framework") || Directory.Exists(directory) is false + || (record.Name ?? ProjectContext.FindProjectName(directory)) is not { } name + || ProjectContext.ReadTargetFramework(directory, name) is not { } framework) + return record; + + return record with { Options = new Dictionary(record.Options, StringComparer.OrdinalIgnoreCase) { ["framework"] = framework } }; } public static ProjectRecord? ReadBitJson(string json) diff --git a/src/Cli/Tests/Bit.Cli.Tests/DiffTests.cs b/src/Cli/Tests/Bit.Cli.Tests/DiffTests.cs index ea7e10594c1..6ed6ad6eebb 100644 --- a/src/Cli/Tests/Bit.Cli.Tests/DiffTests.cs +++ b/src/Cli/Tests/Bit.Cli.Tests/DiffTests.cs @@ -32,6 +32,23 @@ public void BitJson_Should_GiveTheVersionNameAndOptions() Assert.IsNull(TemplateDiff.ReadProject(host.WorkingDirectory).Version); } + [TestMethod] + public void AProjectFromBeforeTheFrameworkOption_Should_KeepItsOwnFramework() + { + using var host = new Infrastructure.TestHost(); + File.WriteAllText(Path.Combine(host.WorkingDirectory, "bit.json"), """{ "version": "11.0.0-pre-09", "name": "Contoso", "options": { "database": "PostgreSQL" } }"""); + var core = Path.Combine(host.WorkingDirectory, "src", "Client", "Contoso.Client.Core"); + Directory.CreateDirectory(core); + File.WriteAllText(Path.Combine(core, "Contoso.Client.Core.csproj"), "net11.0"); + + Assert.AreEqual("net11.0", TemplateDiff.ReadProject(host.WorkingDirectory).Options["framework"]); + + File.Delete(Path.Combine(host.WorkingDirectory, "bit.json")); + File.WriteAllText(Path.Combine(host.WorkingDirectory, "Contoso.slnx"), ""); + + Assert.AreEqual("net11.0", TemplateDiff.ReadProject(host.WorkingDirectory).Options["framework"]); + } + [TestMethod] public void TheSummary_Should_ShowThePasswordTheReadmeNames() { From a8232501699094790f37a7202fc969771a40a34f Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 18:55:29 +0200 Subject: [PATCH 27/45] fix(templates): give bit Boilerplate's .NET 10 projects the 10.x Microsoft.Extensions packages Their 11.x builds have net10.0 assets, but they bring Microsoft.Extensions.Logging.Abstractions 11 into the .NET 10 server projects. Its targets file defines the same target Microsoft.Extensions.Telemetry.Abstractions turns the framework's logging generator off with, so depending on import order both generators implement every LoggerMessage method and the build fails with CS0757. A PostgreSQL project with Redis and no module hit it. The .NET 10 projects go back to IStartupValidator, which 10.x has. --- .github/agents/dependency-update.md | 5 ++- .../Boilerplate.Client.Maui/MauiProgram.cs | 10 ++++++ .../Client/Boilerplate.Client.Web/Program.cs | 10 ++++++ .../Boilerplate.Client.Windows/Program.cs | 10 ++++++ .../src/Directory.Packages.props | 33 ++++++++++++------- .../ClientSettingsValidationTests.cs | 24 ++++++++++++++ 6 files changed, 80 insertions(+), 12 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index fd3888ce53f..d3ec8aaf945 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -120,7 +120,10 @@ drop shadow (their ``) until that issue is fixed. **bit Boilerplate builds for .NET 10 and .NET 11.** Its `framework` option picks one; the template's own tree is the .NET 11 project. In its `Directory.Packages.props`, a package whose 11.x build has no `net10.0` assets has a version in each of the two framework groups at the end of the file: the 11.x one, and a 10.x one that moves within -10.x. Every other package takes one version for both. The few literals that differ per framework are switch +10.x. So do the `Microsoft.Extensions.*` packages, although their 11.x builds have `net10.0` assets: they bring +`Microsoft.Extensions.Logging.Abstractions` 11 into the .NET 10 server projects, whose targets file then overrides +the one `Microsoft.Extensions.Telemetry.Abstractions` turns the framework's logging generator off with, depending +on import order, and the build fails with CS0757. Every other package takes one version for both. The few literals that differ per framework are switch symbols in `template.json` (the SDK and its `rollForward`, the dev container image, the `dotnet-ef` version, the runner image), so they move together with the files they replace. diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs index 301439f483d..71eadaefb53 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs @@ -107,10 +107,20 @@ bool HandleAppLink(NSUserActivity? userActivity) var mauiApp = builder.Build(); + //#if (framework == 'net11.0') foreach (var startupValidator in mauiApp.Services.GetServices()) { startupValidator.ValidateAsync().GetAwaiter().GetResult(); } + //#else + //#if (IsInsideProjectTemplate == true) + /* + //#endif + mauiApp.Services.GetService()?.Validate(); + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif mauiApp.Services.GetRequiredService() .Subscribe(ClientAppMessages.PAGE_DATA_CHANGED, async (args) => diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs index e6ea152f1fe..1183340446d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Program.cs @@ -43,10 +43,20 @@ public static async Task Main(string[] args) var host = builder.Build(); + //#if (framework == 'net11.0') foreach (var startupValidator in host.Services.GetServices()) { await startupValidator.ValidateAsync(); } + //#else + //#if (IsInsideProjectTemplate == true) + /* + //#endif + host.Services.GetService()?.Validate(); + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif AppDomain.CurrentDomain.UnhandledException += (_, e) => LogException(e.ExceptionObject, reportedBy: nameof(AppDomain.UnhandledException), host); TaskScheduler.UnobservedTaskException += (_, e) => diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs index c339f96026f..2dcfdd57983 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs @@ -43,10 +43,20 @@ public static void Main(string[] args) services.AddClientWindowsProjectServices(configuration); Services = services.BuildServiceProvider(); + //#if (framework == 'net11.0') foreach (var startupValidator in Services.GetServices()) { startupValidator.ValidateAsync().GetAwaiter().GetResult(); } + //#else + //#if (IsInsideProjectTemplate == true) + /* + //#endif + Services.GetService()?.Validate(); + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif if (CultureInfoManager.InvariantGlobalization is false) { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 66f1a152056..8660aa20e66 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -20,13 +20,9 @@ - - - - @@ -43,11 +39,6 @@ - - - - - @@ -108,7 +99,6 @@ - @@ -124,7 +114,6 @@ - @@ -135,6 +124,17 @@
+ + + + + + + + + + + @@ -164,6 +164,17 @@ + + + + + + + + + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs index 2dc999c1ab0..c3fdea87f8c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/Configuration/ClientSettingsValidationTests.cs @@ -45,6 +45,7 @@ public void TheInjectedSettings_Should_BeTheValidatedOptionsInstance() /// come from the settings validation itself. ///
[TestMethod] + //#if (framework == 'net11.0') public async Task AnInvalidSetting_Should_FailTheHostsThatRunNoStartupValidator() { using var serviceProvider = BuildClientServiceProvider(new() { ["ServerAddress"] = " " }); @@ -65,6 +66,29 @@ await Assert.ThrowsExactlyAsync(async () => Assert.ThrowsExactly(() => serviceProvider.GetRequiredService(), "Resolving the settings returned an invalid instance instead of failing, which is what happens when the injected copy bypasses the options pipeline."); } + //#else + //#if (IsInsideProjectTemplate == true) + /* + //#endif + public void AnInvalidSetting_Should_FailTheHostsThatRunNoStartupValidator() + { + using var serviceProvider = BuildClientServiceProvider(new() { ["ServerAddress"] = " " }); + + var startupValidator = serviceProvider.GetService(); + + Assert.IsNotNull(startupValidator, + "No IStartupValidator is registered, so the explicit Validate() call the non-IHost client hosts make would silently do nothing."); + + Assert.ThrowsExactly(() => startupValidator.Validate(), + "Settings validation passed for a ClientCoreSettings whose [Required] ServerAddress is whitespace."); + + Assert.ThrowsExactly(() => serviceProvider.GetRequiredService(), + "Resolving the settings returned an invalid instance instead of failing, which is what happens when the injected copy bypasses the options pipeline."); + } + //#if (IsInsideProjectTemplate == true) + */ + //#endif + //#endif private static ServiceProvider BuildClientServiceProvider(Dictionary? overrides = null) { From 4297b780a5af50babb6ee6e2014f86788f50e0eb Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 19:42:01 +0200 Subject: [PATCH 28/45] feat(cli): let bit diff show what moving a project to another .NET version changes, and tell a .NET 10 project's upgrade skill about it --- src/Cli/Bit.Cli/Projects/TemplateDiff.cs | 36 ++++++++++++++----- src/Cli/README.md | 1 + .../.github/agents/upgrade.agent.md | 3 ++ .../.template.config/template.json | 4 +-- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/Cli/Bit.Cli/Projects/TemplateDiff.cs b/src/Cli/Bit.Cli/Projects/TemplateDiff.cs index 461a334a4a7..6dc58732f4c 100644 --- a/src/Cli/Bit.Cli/Projects/TemplateDiff.cs +++ b/src/Cli/Bit.Cli/Projects/TemplateDiff.cs @@ -42,12 +42,6 @@ public async Task RunAsync(DiffRequest request, CancellationToken cancellat if (from is null) return UsageError($"{directory} has no bit.json that says which bit Boilerplate version made the project. Pass it: bit diff [to]."); - if (string.Equals(from, to, StringComparison.OrdinalIgnoreCase) && request.TemplatePackage is null) - { - cli.Console.Out.MarkupLine($" [green]{Markup.Escape(name)} is already on bit Boilerplate {Markup.Escape(to)}.[/]"); - return CliApp.ExitOk; - } - var options = new Dictionary(record.Options, StringComparer.OrdinalIgnoreCase); foreach (var (option, value) in request.TemplateValues) @@ -55,6 +49,27 @@ public async Task RunAsync(DiffRequest request, CancellationToken cancellat options[option] = value; } + var fromOptions = new Dictionary(options, StringComparer.OrdinalIgnoreCase); + + if (Directory.Exists(directory) && ProjectContext.ReadTargetFramework(directory, name) is { } framework) + { + fromOptions["framework"] = framework; + + if (request.TemplateValues.ContainsKey("framework") is false) + { + options["framework"] = framework; + } + } + + var frameworkChanges = fromOptions.TryGetValue("framework", out var fromFramework) && options.TryGetValue("framework", out var toFramework) + && string.Equals(fromFramework, toFramework, StringComparison.OrdinalIgnoreCase) is false; + + if (string.Equals(from, to, StringComparison.OrdinalIgnoreCase) && request.TemplatePackage is null && frameworkChanges is false) + { + cli.Console.Out.MarkupLine($" [green]{Markup.Escape(name)} is already on bit Boilerplate {Markup.Escape(to)}.[/]"); + return CliApp.ExitOk; + } + var output = Path.GetFullPath(request.Output ?? Path.Combine(Path.GetTempPath(), "bit-diff", $"{name}-{from}-{to}"), cli.Environment.CurrentDirectory); if (Directory.Exists(output) && Directory.EnumerateFileSystemEntries(output).Any()) @@ -69,6 +84,11 @@ public async Task RunAsync(DiffRequest request, CancellationToken cancellat cli.Console.Out.MarkupLine($" Comparing bit Boilerplate [bold]{Markup.Escape(from)}[/] with [bold]{Markup.Escape(to)}[/] for [bold]{Markup.Escape(name)}[/]"); cli.Console.Out.MarkupLine($" [grey]{(options.Count == 0 ? "the template's default options" : string.Join(" ", options.Select(o => o.Value is "true" ? $"--{o.Key}" : $"--{o.Key} {o.Value}")))}[/]"); + + if (frameworkChanges) + { + cli.Console.Out.MarkupLine($" [grey]from {Markup.Escape(fromOptions["framework"])} to {Markup.Escape(options["framework"])}[/]"); + } cli.Console.Out.WriteLine(); var steps = new StepRunner(cli); @@ -88,7 +108,7 @@ await steps.RunAsync("git", "Creating a git repository", async (_, ct) => if (steps.AnyFailed is false) { - await SnapshotAsync(steps, "from", source, from, null, name, output, options, cancellationToken); + await SnapshotAsync(steps, "from", source, from, null, name, output, fromOptions, cancellationToken); } if (steps.AnyFailed is false) @@ -123,7 +143,7 @@ await steps.RunAsync("clear", $"Clearing bit Boilerplate {from}", (_, _) => cli.Console.Out.MarkupLine($" [bold]Patch[/] {Markup.Escape(patch)}"); cli.Console.Out.MarkupLine($" [bold]Files[/] git -C {Markup.Escape(ProcessSpec.Quote(output))} diff --stat HEAD~1"); cli.Console.Out.WriteLine(); - cli.Console.Out.MarkupLine(" [grey]Both have the same name and options. What the template picks at random on every run, such as ports, GUIDs, dates and the seeded accounts' password, differs between them, and so does what bit new adds.[/]"); + cli.Console.Out.MarkupLine($" [grey]Both have the same name and options{(frameworkChanges ? ", apart from the .NET version" : "")}. What the template picks at random on every run, such as ports, GUIDs, dates and the seeded accounts' password, differs between them, and so does what bit new adds.[/]"); cli.Console.Out.MarkupLine($" [grey]Delete it when you're done: bit remove {Markup.Escape(ProcessSpec.Quote(output))} --yes[/]"); cli.Console.Out.WriteLine(); diff --git a/src/Cli/README.md b/src/Cli/README.md index 7c22e303349..e572e1396ba 100644 --- a/src/Cli/README.md +++ b/src/Cli/README.md @@ -116,6 +116,7 @@ bit diff --template-package ../bitplatform/src/Templates/Boilerplate/Bit.Boilerp - It creates the project with each version, the old one first, into one git repository in the temp folder, so the second commit is exactly the upgrade, and writes it as `bit-diff.patch` in that repository too. Your project isn't touched. - In a project, it takes the name, the version and the options from the project's `bit.json`, where the template records them. Pass `from`, `to`, `--name` or any option of `bit new` to change them. `to` defaults to this bit's own version. - An option a version doesn't have is left out for that version, and said so. +- Both sides get the project's own .NET version. `--framework` gives only the newer side another one, so `bit diff --framework net11.0` shows what moving a .NET 10 project to .NET 11 changes. - What the template picks at random on every run, like ports, GUIDs, dates and the seeded accounts' password, differs between the two, and so does what `bit new` adds after creating a project. - The repository goes to `/bit-diff/--`, or `-o `. Delete it with `bit remove --yes` when you're done. diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/upgrade.agent.md b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/upgrade.agent.md index dc10fcff9c5..a2c2fe93710 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/upgrade.agent.md +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/agents/upgrade.agent.md @@ -20,6 +20,9 @@ The work is yours to judge. Ask the user only what the code can't answer and wha ## 2. Get the upstream changes - Run `bit diff` from the project folder, with the from and to versions when they aren't the defaults and with any option whose recorded value no longer matches the project. It only reads the project's `bit.json`; it creates the project with each version in a temporary folder of its own, into one git repository, so the second commit is exactly what the template changed for a project with this name and these options, and it writes that commit as a patch file there too. Its output says where. + +- Moving this .NET 10 project to .NET 11 is the same work: give `bit diff` the .NET 11 value of `--framework`, which `bit diff --help` lists, and it creates the project for .NET 10 and for .NET 11, so the second commit is what the move changes. With a to version too, it shows both at once. + - Some differences come from generating a project, not from the upgrade, and stay as they are in this project: everything the template picks at random on every run, such as ports, GUIDs like the user secrets id, dates and the seeded accounts' password, plus the app certificate, the formatting `bit new` applies, and EF Core migrations, which neither version has. - Read the whole change set before touching anything: which areas it touches, which files are new, deleted or renamed, and which changes belong together, such as a package bump and the code that needs it. diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json index 9daa9d13c73..08a5fc25668 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json @@ -25,11 +25,11 @@ "choices": [ { "choice": "net10.0", - "description": ".NET 10, the current long term support release" + "description": ".NET 10 (LTS)" }, { "choice": "net11.0", - "description": ".NET 11, which adds the Windows app's kiosk mode" + "description": ".NET 11" } ], "description": "The .NET version the project targets." From 7f612af3c593a2eadd2339f5d82030058faaec33 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 21:05:10 +0200 Subject: [PATCH 29/45] fix(infra): publish the .NET 10 demos with the SDK their own global.json asks for The CD jobs ran dotnet publish from the repository's root, where no global.json applies, so the .NET 11 SDK built the Todo and Sales demos while bit new had installed their workloads into the .NET 10 SDK, and the Todo Android build failed with NETSDK1147. --- .github/workflows/sales-module-demo.cd.yml | 3 ++- .github/workflows/todo-sample.cd.yml | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/sales-module-demo.cd.yml b/.github/workflows/sales-module-demo.cd.yml index 78d1bc14040..fe9cd0500bd 100644 --- a/.github/workflows/sales-module-demo.cd.yml +++ b/.github/workflows/sales-module-demo.cd.yml @@ -100,7 +100,8 @@ jobs: sed -i 's/IsEmbeddingEnabled = false/IsEmbeddingEnabled = true/' SalesModule/src/Server/SalesModule.Server.Api/Infrastructure/Data/AppDbContext.cs - name: Publish - run: dotnet publish SalesModule/src/Server/SalesModule.Server.Web/SalesModule.Server.Web.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + working-directory: SalesModule + run: dotnet publish src/Server/SalesModule.Server.Web/SalesModule.Server.Web.csproj -c Release -o ../server -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # Every publish renames afresh, so this map reads the stack traces of this release and of no other. It lives in # obj, which this checkout throws away - kept here, and never next to the client, which would serve it. diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index bae48ba6471..e6c815b8d86 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -118,7 +118,8 @@ jobs: ApplicationInsights.ConnectionString: ${{ secrets.APPLICATION_INSIGHTS_CONNECTION_STRING }} - name: Publish Server API - run: dotnet publish TodoSample/src/Server/TodoSample.Server.Api/TodoSample.Server.Api.csproj -c Release -o server-api -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess + working-directory: TodoSample + run: dotnet publish src/Server/TodoSample.Server.Api/TodoSample.Server.Api.csproj -c Release -o ../server-api -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess # Server-owned; C:\inetpub keeps its own copies. Also keeps them out of the artifact. - name: Strip server-owned files from bundle @@ -199,7 +200,8 @@ jobs: - name: Publish Server Web - run: dotnet publish TodoSample/src/Server/TodoSample.Server.Web/TodoSample.Server.Web.csproj -c Release -o server-web -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + working-directory: TodoSample + run: dotnet publish src/Server/TodoSample.Server.Web/TodoSample.Server.Web.csproj -c Release -o ../server-web -p:Version="${{ vars.APP_VERSION}}" -p:AspNetCoreHostingModel=OutOfProcess -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # Every publish renames afresh, so this map reads the stack traces of this release and of no other. It lives in # obj, which this checkout throws away - kept here, and never next to the client, which would serve it. @@ -327,7 +329,8 @@ jobs: - name: Publish - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:RunAOTCompilation=true -p:InvariantGlobalization=true -p:WasmEnableSIMD=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + working-directory: TodoSample + run: dotnet publish src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o ../client -p:Version="${{ vars.APP_VERSION}}" -p:RunAOTCompilation=true -p:InvariantGlobalization=true -p:WasmEnableSIMD=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact @@ -390,7 +393,8 @@ jobs: cd TodoSample/src/Server/TodoSample.Server.Web && dotnet build -c Release && dnx dotnet-ef@10.0.13 -- dbcontext optimize --context AppOfflineDbContext --output-dir Infrastructure/Data/CompiledModel --namespace TodoSample.Client.Core.Infrastructure.Data --project ../../Client/TodoSample.Client.Core/TodoSample.Client.Core.csproj --verbose - name: Publish - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true + working-directory: TodoSample + run: dotnet publish src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o ../client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true - name: Upload to asw run: | @@ -437,7 +441,8 @@ jobs: GoogleRecaptchaSiteKey: ${{ secrets.GOOGLE_RECAPTCHA_SITE_KEY }} - name: Publish - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + working-directory: TodoSample + run: dotnet publish src/Client/TodoSample.Client.Web/TodoSample.Client.Web.csproj -c Release -o ../client -p:Version="${{ vars.APP_VERSION}}" -p:WasmEnableSIMD=true -p:InvariantGlobalization=true -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact @@ -641,7 +646,8 @@ jobs: - name: Publish aab - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-android + working-directory: TodoSample + run: dotnet publish src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -c Release -p:AndroidPackageFormats=aab%3Bapk -p:AndroidKeyStore=true -p:AndroidSigningKeyStore="TodoSample.keystore" -p:AndroidSigningKeyAlias=bitplatform -p:AndroidSigningKeyPass="${{ secrets.ANDROID_RELEASE_KEYSTORE_PASSWORD }}" -p:AndroidSigningStorePass="${{ secrets.ANDROID_RELEASE_SIGNING_PASSWORD }}" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="TodoSample" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-android - name: Upload artifact id: artifact @@ -757,7 +763,8 @@ jobs: - name: Build ipa - run: dotnet publish TodoSample/src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-ios + working-directory: TodoSample + run: dotnet publish src/Client/TodoSample.Client.Maui/TodoSample.Client.Maui.csproj -p:RuntimeIdentifier=ios-arm64 -c Release -p:ArchiveOnBuild=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision="TodoTemplate" -p:Version="${{ vars.APP_VERSION }}" -p:ApplicationTitle="Todo" -p:ApplicationId="${{ env.APP_BUNDLE_ID }}" -f net10.0-ios - name: Locate ipa id: ipa From bc6d5a3ffbe537a0a7180cc5a329c8df57b78edb Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 21:35:50 +0200 Subject: [PATCH 30/45] fix(infra): compile bmage.bitplatform.dev ahead of time on .NET 11 #14008 Its client ran on CoreCLR WebAssembly, which has no AOT, so RunAOTCompilation did nothing and every pixel loop ran on the interpreter. It runs on Mono again, which compiles it ahead of time. --- src/Utilities/Bmage/Demo/Client/Bit.Bmage.Demo.Client.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Utilities/Bmage/Demo/Client/Bit.Bmage.Demo.Client.csproj b/src/Utilities/Bmage/Demo/Client/Bit.Bmage.Demo.Client.csproj index 177dae0541e..c40e9ba359e 100644 --- a/src/Utilities/Bmage/Demo/Client/Bit.Bmage.Demo.Client.csproj +++ b/src/Utilities/Bmage/Demo/Client/Bit.Bmage.Demo.Client.csproj @@ -2,7 +2,6 @@ net11.0 - false enable enable true From f23e1222e126afd1113817141f5205ca74c5e18c Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 21:57:10 +0200 Subject: [PATCH 31/45] fix(templates): give a .NET 10 bit Boilerplate project's MAUI app the startup validator .NET 10 has MauiProgram.cs switches the template's conditions off around its #if iOS directives, and the framework condition sat in such a stretch, so a .NET 10 project kept both branches and its Android and iOS builds failed on IAsyncStartupValidator. --- .../src/Client/Boilerplate.Client.Maui/MauiProgram.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs index 71eadaefb53..d89a81c6817 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs @@ -107,6 +107,7 @@ bool HandleAppLink(NSUserActivity? userActivity) var mauiApp = builder.Build(); + //+:cnd:noEmit //#if (framework == 'net11.0') foreach (var startupValidator in mauiApp.Services.GetServices()) { @@ -121,6 +122,7 @@ bool HandleAppLink(NSUserActivity? userActivity) */ //#endif //#endif + //-:cnd:noEmit mauiApp.Services.GetRequiredService() .Subscribe(ClientAppMessages.PAGE_DATA_CHANGED, async (args) => From c5509f5c3c41516be69b5e7b26f7350b16219df2 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Tue, 20 Oct 2026 22:43:07 +0200 Subject: [PATCH 32/45] fix(infra): build a .NET 10 iOS app with the Xcode 27.1 that .NET for iOS 27.1 asks for #14012 The Todo demo's iOS job and a .NET 10 bit Boilerplate project's cd-template.yml pick Xcode 27.1, while the .NET 11 iOS apps keep 27.0. --- .github/workflows/admin-sample.cd.yml | 2 +- .github/workflows/blazorui.demo.cd.yml | 2 +- .../.github/workflows/cd-template.yml | 2 +- .../.template.config/template.json | 19 +++++++++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 4e5d4f6287b..7dd815845a6 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -506,7 +506,7 @@ jobs: - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: - xcode-version: '27.1' + xcode-version: '27.0' - name: Use prerelease packages if: inputs.prerelease_packages diff --git a/.github/workflows/blazorui.demo.cd.yml b/.github/workflows/blazorui.demo.cd.yml index c09d7e201a4..56b95cee8d2 100644 --- a/.github/workflows/blazorui.demo.cd.yml +++ b/.github/workflows/blazorui.demo.cd.yml @@ -320,7 +320,7 @@ jobs: - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: - xcode-version: '27.1' + xcode-version: '27.0' - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml index 98a40dd4150..f8fd5d74a38 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml @@ -357,7 +357,7 @@ jobs: - uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: - xcode-version: '27.1' + xcode-version: '27.0' - name: Install the bit CLI shell: pwsh diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json index 08a5fc25668..2e90895bcdd 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.template.config/template.json @@ -110,6 +110,25 @@ ] } }, + "xcodeVersion": { + "type": "generated", + "generator": "switch", + "replaces": "xcode-version: '27.0'", + "parameters": { + "evaluator": "C++", + "datatype": "string", + "cases": [ + { + "condition": "(framework == 'net10.0')", + "value": "xcode-version: '27.1'" + }, + { + "condition": "", + "value": "xcode-version: '27.0'" + } + ] + } + }, "runnerImage": { "type": "generated", "generator": "switch", From 95ec0cd1b75b1eb725a76ffaaafec66ed9ebc590 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 00:34:03 +0200 Subject: [PATCH 33/45] fix(templates): re-baseline bit Boilerplate's E2E download sizes on the .NET 10 Todo and Sales demos and the image editor TodoAot grew 15%, the rest 4 to 8%: the Todo and Sales demos moved to .NET 10, every app now carries Bmage's image editor, and an AOT build loads Bit.Bmage up front instead of lazily. --- .../DownloadSize/WebAppDownloadSizeTests.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs index 7b63de50245..940e59da084 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs @@ -39,15 +39,15 @@ public partial class WebAppDownloadSizeTests : AppPageTest /// them from the failure message whenever a deliberate change moves an app's size. ///
[TestMethod] - [DataRow(DeployedApps.AdminPanel, 5.6, DisplayName = nameof(DeployedApps.AdminPanel))] - [DataRow(DeployedApps.AdminPanelWasmStandalone, 5.9, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] + [DataRow(DeployedApps.AdminPanel, 5.9, DisplayName = nameof(DeployedApps.AdminPanel))] + [DataRow(DeployedApps.AdminPanelWasmStandalone, 6.2, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] - [DataRow(DeployedApps.Todo, 5.1, DisplayName = nameof(DeployedApps.Todo))] - [DataRow(DeployedApps.TodoAot, 8.6, DisplayName = nameof(DeployedApps.TodoAot))] - [DataRow(DeployedApps.TodoSmall, 3.7, DisplayName = nameof(DeployedApps.TodoSmall))] - [DataRow(DeployedApps.TodoOffline, 7.7, DisplayName = nameof(DeployedApps.TodoOffline))] + [DataRow(DeployedApps.Todo, 5.4, DisplayName = nameof(DeployedApps.Todo))] + [DataRow(DeployedApps.TodoAot, 9.9, DisplayName = nameof(DeployedApps.TodoAot))] + [DataRow(DeployedApps.TodoSmall, 3.9, DisplayName = nameof(DeployedApps.TodoSmall))] + [DataRow(DeployedApps.TodoOffline, 8.3, DisplayName = nameof(DeployedApps.TodoOffline))] - [DataRow(DeployedApps.Sales, 5.5, DisplayName = nameof(DeployedApps.Sales))] + [DataRow(DeployedApps.Sales, 5.7, DisplayName = nameof(DeployedApps.Sales))] public async Task FirstVisitDownloadSize_Should_NotRegress(string url, double expectedMegabytes) { // Qualified because the inherited BrowserType property shadows the type of the same name. From 5fa54f944913afaaf03cb5db70247401a08fbd20 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 15:07:17 +0200 Subject: [PATCH 34/45] move BlazorUI's untrimmed assembly reads in the trimming tests to net11.0 --- .../Bit.BlazorUI.Tests.Trimming/Infrastructure/PublishResult.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Infrastructure/PublishResult.cs b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Infrastructure/PublishResult.cs index 65a63dd7b7c..85447130cb5 100644 --- a/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Infrastructure/PublishResult.cs +++ b/src/BlazorUI/Tests/Bit.BlazorUI.Tests.Trimming/Infrastructure/PublishResult.cs @@ -126,7 +126,7 @@ public List PublishedModules(string package) public AssemblyMetadata ReadTrimmedAssembly(string package) => AssemblyMetadata.Read(Path.Combine(Directory, "trimmed", package + ".dll")); /// A package's assembly as its Release build wrote it - the one a publish of the source tree trims. - public static AssemblyMetadata ReadUntrimmedAssembly(string package) => AssemblyMetadata.Read(Path.Combine(Publisher.Root, package, "bin", "Release", "net10.0", package + ".dll")); + public static AssemblyMetadata ReadUntrimmedAssembly(string package) => AssemblyMetadata.Read(Path.Combine(Publisher.Root, package, "bin", "Release", "net11.0", package + ".dll")); /// /// The JavaScript initializers a Blazor Web App's publish lists for Blazor to import as it starts (its modules manifest), From 8a20c5cdb5e150cb862db260c2c1a92fd9adc5fc Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 18:02:48 +0200 Subject: [PATCH 35/45] feat(infra): publish the demos' Windows apps to WinGet and the Microsoft Store #14055 --- .github/actions/submit-to-winget/action.yml | 61 ++++++++++ .../submit-to-winget/submit-to-winget.ps1 | 112 ++++++++++++++++++ .github/workflows/admin-sample.cd.yml | 57 ++++++++- .github/workflows/all.cd.yml | 8 ++ .github/workflows/blazorui.demo.cd.yml | 56 ++++++++- .github/workflows/sales-module-demo.cd.yml | 57 ++++++++- .github/workflows/todo-sample.cd.yml | 57 ++++++++- 7 files changed, 400 insertions(+), 8 deletions(-) create mode 100644 .github/actions/submit-to-winget/action.yml create mode 100644 .github/actions/submit-to-winget/submit-to-winget.ps1 diff --git a/.github/actions/submit-to-winget/action.yml b/.github/actions/submit-to-winget/action.yml new file mode 100644 index 00000000000..ff5790671fb --- /dev/null +++ b/.github/actions/submit-to-winget/action.yml @@ -0,0 +1,61 @@ +name: Submit to WinGet +description: Sends one version of a Windows app to the WinGet community repository, as a new package the first time and as an update after that. + +inputs: + id: + description: The WinGet package identifier, such as BitPlatform.Todo. + required: true + version: + description: The app's version. + required: true + installer: + description: Path of the installer the job built. + required: true + installer-url: + description: The URL of that installer, whose file must never change. + required: true + architecture: + description: x64 or x86. + required: true + product-code: + description: The key of the app's Add/Remove Programs entry. + required: true + name: + description: The package's name. + required: true + short-description: + description: One sentence about the app. + required: true + package-url: + description: The app's web page. + required: true + privacy-url: + description: The app's privacy policy. + default: '' + token: + description: A classic GitHub token with the public_repo scope. The pull request comes from its owner's fork of winget-pkgs. + required: true + +runs: + using: composite + + steps: + + - name: Submit to WinGet + shell: pwsh + env: + WINGET_CREATE_GITHUB_TOKEN: ${{ inputs.token }} + DOTNET_ROLL_FORWARD: Major + run: > + & "${{ github.action_path }}/submit-to-winget.ps1" + -Id "${{ inputs.id }}" + -Version "${{ inputs.version }}" + -Installer "${{ inputs.installer }}" + -InstallerUrl "${{ inputs.installer-url }}" + -Architecture "${{ inputs.architecture }}" + -ProductCode "${{ inputs.product-code }}" + -Name "${{ inputs.name }}" + -ShortDescription "${{ inputs.short-description }}" + -PackageUrl "${{ inputs.package-url }}" + -PrivacyUrl "${{ inputs.privacy-url }}" + -WorkFolder "${{ runner.temp }}/winget" diff --git a/.github/actions/submit-to-winget/submit-to-winget.ps1 b/.github/actions/submit-to-winget/submit-to-winget.ps1 new file mode 100644 index 00000000000..a5b7df6240b --- /dev/null +++ b/.github/actions/submit-to-winget/submit-to-winget.ps1 @@ -0,0 +1,112 @@ +#Requires -Version 7.4 +param( + [Parameter(Mandatory)] [string] $Id, + [Parameter(Mandatory)] [string] $Version, + [Parameter(Mandatory)] [string] $Installer, + [Parameter(Mandatory)] [string] $InstallerUrl, + [Parameter(Mandatory)] [ValidateSet('x64', 'x86')] [string] $Architecture, + [Parameter(Mandatory)] [string] $ProductCode, + [Parameter(Mandatory)] [string] $Name, + [Parameter(Mandatory)] [string] $ShortDescription, + [Parameter(Mandatory)] [string] $PackageUrl, + [string] $PrivacyUrl, + [Parameter(Mandatory)] [string] $WorkFolder +) + +$ErrorActionPreference = 'Stop' +$PSNativeCommandUseErrorActionPreference = $true + +function ConvertTo-YamlString([string] $value) { + "'" + $value.Replace("'", "''") + "'" +} + +function New-Manifests([string] $folder) { + New-Item -ItemType Directory -Force $folder | Out-Null + $sha256 = (Get-FileHash $Installer -Algorithm SHA256).Hash + $privacy = $PrivacyUrl ? "PrivacyUrl: $(ConvertTo-YamlString $PrivacyUrl)`n" : '' + + Set-Content (Join-Path $folder "$Id.yaml") -Encoding utf8NoBOM -NoNewline -Value @" +# yaml-language-server: `$schema=https://aka.ms/winget-manifest.version.1.10.0.schema.json +PackageIdentifier: $Id +PackageVersion: $Version +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.10.0 + +"@ + + Set-Content (Join-Path $folder "$Id.installer.yaml") -Encoding utf8NoBOM -NoNewline -Value @" +# yaml-language-server: `$schema=https://aka.ms/winget-manifest.installer.1.10.0.schema.json +PackageIdentifier: $Id +PackageVersion: $Version +InstallerType: exe +Scope: user +InstallModes: +- interactive +- silent +- silentWithProgress +InstallerSwitches: + Silent: --silent + SilentWithProgress: --silent +UpgradeBehavior: install +RequireExplicitUpgrade: true +ProductCode: $(ConvertTo-YamlString $ProductCode) +Installers: +- Architecture: $Architecture + InstallerUrl: $(ConvertTo-YamlString $InstallerUrl) + InstallerSha256: $sha256 +ManifestType: installer +ManifestVersion: 1.10.0 + +"@ + + Set-Content (Join-Path $folder "$Id.locale.en-US.yaml") -Encoding utf8NoBOM -NoNewline -Value @" +# yaml-language-server: `$schema=https://aka.ms/winget-manifest.defaultLocale.1.10.0.schema.json +PackageIdentifier: $Id +PackageVersion: $Version +PackageLocale: en-US +Publisher: BitPlatform +PublisherUrl: https://bitplatform.dev +PublisherSupportUrl: https://github.com/bitfoundation/bitplatform/issues +$($privacy)PackageName: $(ConvertTo-YamlString $Name) +PackageUrl: $(ConvertTo-YamlString $PackageUrl) +License: MIT +LicenseUrl: https://github.com/bitfoundation/bitplatform/blob/develop/LICENSE +ShortDescription: $(ConvertTo-YamlString $ShortDescription) +ManifestType: defaultLocale +ManifestVersion: 1.10.0 + +"@ +} + +$publisher, $package = $Id -split '\.', 2 +$manifests = Join-Path $WorkFolder "manifests/$($publisher.Substring(0, 1).ToLowerInvariant())/$publisher/$package/$Version" + +$wingetcreate = Join-Path $WorkFolder 'wingetcreate.exe' +New-Item -ItemType Directory -Force $WorkFolder | Out-Null +Invoke-WebRequest https://github.com/microsoft/winget-create/releases/download/v1.12.13.0/wingetcreate.exe -OutFile $wingetcreate + +if ((Get-FileHash $wingetcreate -Algorithm SHA256).Hash -ne '24042BD37915805615E6CF969AC57C6439124C3FE85823327F5F3FB24BD9FFEA') { + throw 'wingetcreate.exe is not the build this script pins.' +} + +$listed = $true + +try { + Invoke-RestMethod "https://api.github.com/repos/microsoft/winget-pkgs/contents/manifests/$($publisher.Substring(0, 1).ToLowerInvariant())/$publisher/$package" -Headers @{ Authorization = "Bearer $env:WINGET_CREATE_GITHUB_TOKEN" } | Out-Null +} +catch { + if ($_.Exception.Response.StatusCode -ne [Net.HttpStatusCode]::NotFound) { + throw + } + + $listed = $false +} + +if ($listed) { + & $wingetcreate update $Id --version $Version --urls "$InstallerUrl|$Architecture" --submit --no-open +} +else { + New-Manifests $manifests + & $wingetcreate submit $manifests --prtitle "New package: $Id version $Version" --no-open +} diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 7dd815845a6..99da75c581b 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -41,6 +41,10 @@ on: description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org type: boolean default: false + windows_stores: + description: For WinGet and the Microsoft Store, sign every file of the Windows app, keep its installer at a URL of its own version and submit that version to both + type: boolean + default: false workflow_call: inputs: server: @@ -61,6 +65,9 @@ on: prerelease_packages: type: boolean default: false + windows_stores: + type: boolean + default: false permissions: contents: read @@ -368,13 +375,13 @@ jobs: run: | @{ Endpoint = '${{ vars.CODE_SIGNING_ENDPOINT }}'; CodeSigningAccountName = '${{ vars.CODE_SIGNING_ACCOUNT }}'; CertificateProfileName = '${{ vars.CODE_SIGNING_CERTIFICATE_PROFILE }}'; ExcludeCredentials = @('ManagedIdentityCredential', 'WorkloadIdentityCredential', 'SharedTokenCacheCredential', 'VisualStudioCredential', 'VisualStudioCodeCredential') } | ConvertTo-Json | Set-Content "$env:RUNNER_TEMP\code-signing.json" "VPK_AZURE_TRUSTED_SIGN_FILE=$env:RUNNER_TEMP\code-signing.json" >> $env:GITHUB_ENV - 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV + if ('${{ inputs.windows_stores }}' -ne 'true') { 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV } - name: Publish run: | cd AdminPanel\src\Client\AdminPanel.Client.Windows\ dotnet publish AdminPanel.Client.Windows.csproj -c Release -o .\publish-result -r win-x64 -p:Version="${{ vars.APP_VERSION}}" -p:PublishReadyToRun=true -p:PublishReadyToRunComposite=true --self-contained - vpk pack -u AdminPanel.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e AdminPanel.Client.Windows.exe -r win-x64 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'AdminPanel' + vpk pack -u AdminPanel.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e AdminPanel.Client.Windows.exe -r win-x64 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'AdminPanel' --packAuthors BitPlatform - name: Attest the installer and packages uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -390,6 +397,52 @@ jobs: cd AdminPanel\src\Client\AdminPanel.Client.Windows\ vpk upload s3 --endpoint ${{ vars.R2_ENDPOINT }} --bucket ${{ env.R2_BUCKET }} --keyId ${{ secrets.R2_ACCESS_KEY_ID }} --secret ${{ secrets.R2_SECRET_ACCESS_KEY }} -o .\Releases --keepMaxReleases 10 + - name: Upload this version's installer to R2 + if: inputs.windows_stores + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: auto + AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED + AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED + run: | + $key = "${{ vars.APP_VERSION }}/AdminPanel.Client.Windows-win-Setup.exe" + aws s3api head-object --bucket ${{ env.R2_BUCKET }} --key $key --endpoint-url ${{ vars.R2_ENDPOINT }} *> $null + if ($LASTEXITCODE -eq 0) { throw "$key is already on R2, and WinGet and the Microsoft Store need it unchanged. Raise APP_VERSION." } + aws s3 cp AdminPanel\src\Client\AdminPanel.Client.Windows\Releases\AdminPanel.Client.Windows-win-Setup.exe "s3://${{ env.R2_BUCKET }}/$key" --endpoint-url ${{ vars.R2_ENDPOINT }} + "::notice title=Installer::https://windows-adminpanel.bitplatform.dev/$key" + + - name: Submit this version to WinGet + if: inputs.windows_stores + uses: ./.github/actions/submit-to-winget + with: + id: BitPlatform.AdminPanel + version: ${{ vars.APP_VERSION }} + installer: AdminPanel\src\Client\AdminPanel.Client.Windows\Releases\AdminPanel.Client.Windows-win-Setup.exe + installer-url: https://windows-adminpanel.bitplatform.dev/${{ vars.APP_VERSION }}/AdminPanel.Client.Windows-win-Setup.exe + architecture: x64 + product-code: AdminPanel.Client.Windows + name: AdminPanel + short-description: An admin panel for products, categories and users, built with bit Boilerplate. + package-url: https://adminpanel.bitplatform.dev + privacy-url: https://adminpanel.bitplatform.dev/en-US/privacy-policy + token: ${{ secrets.WINGET_TOKEN }} + + - name: Set up the Microsoft Store CLI + if: inputs.windows_stores + uses: microsoft/microsoft-store-apppublisher@cc9910a8d59f2eb55cbb83df0a3800cf3b5300e0 # v1.4 + with: + version: v0.4.3 + + - name: Submit this version to the Microsoft Store + if: inputs.windows_stores + run: | + $PSNativeCommandUseErrorActionPreference = $true + msstore reconfigure --tenantId ${{ secrets.MSSTORE_TENANT_ID }} --sellerId ${{ secrets.MSSTORE_SELLER_ID }} --clientId ${{ secrets.MSSTORE_CLIENT_ID }} --clientSecret ${{ secrets.MSSTORE_CLIENT_SECRET }} + $package = @{ packages = @(@{ packageUrl = "https://windows-adminpanel.bitplatform.dev/${{ vars.APP_VERSION }}/AdminPanel.Client.Windows-win-Setup.exe"; languages = @('en'); architectures = @('X64'); installerParameters = '--silent'; isSilentInstall = $true }) } | ConvertTo-Json -Depth 4 -Compress + msstore submission update ${{ vars.ADMINPANEL_MSSTORE_PRODUCT_ID }} $package + msstore submission publish ${{ vars.ADMINPANEL_MSSTORE_PRODUCT_ID }} + build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android diff --git a/.github/workflows/all.cd.yml b/.github/workflows/all.cd.yml index 7bb87601bdf..dfeb3df7104 100644 --- a/.github/workflows/all.cd.yml +++ b/.github/workflows/all.cd.yml @@ -30,6 +30,10 @@ on: description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org (AdminPanel, Sales, Todo, and the platform and sales websites) type: boolean default: false + windows_stores: + description: For WinGet and the Microsoft Store, sign every file of the Windows apps, keep their installers at a URL of their own version and submit that version to both (AdminPanel, Sales, Todo and the Blazor UI demo) + type: boolean + default: false permissions: contents: read @@ -181,6 +185,7 @@ jobs: windows: ${{ inputs.windows }} android: ${{ inputs.android }} ios: ${{ inputs.ios }} + windows_stores: ${{ inputs.windows_stores }} sales_module_demo: name: sales module demo @@ -195,6 +200,7 @@ jobs: server: ${{ inputs.server }} windows: ${{ inputs.windows }} prerelease_packages: ${{ inputs.prerelease_packages }} + windows_stores: ${{ inputs.windows_stores }} admin_sample: name: admin sample @@ -212,6 +218,7 @@ jobs: android: ${{ inputs.android }} ios: ${{ inputs.ios }} prerelease_packages: ${{ inputs.prerelease_packages }} + windows_stores: ${{ inputs.windows_stores }} todo_sample: name: todo sample @@ -229,3 +236,4 @@ jobs: android: ${{ inputs.android }} ios: ${{ inputs.ios }} prerelease_packages: ${{ inputs.prerelease_packages }} + windows_stores: ${{ inputs.windows_stores }} diff --git a/.github/workflows/blazorui.demo.cd.yml b/.github/workflows/blazorui.demo.cd.yml index 56b95cee8d2..e5607780e07 100644 --- a/.github/workflows/blazorui.demo.cd.yml +++ b/.github/workflows/blazorui.demo.cd.yml @@ -25,6 +25,10 @@ on: description: iOS app type: boolean default: true + windows_stores: + description: For WinGet and the Microsoft Store, sign every file of the Windows app, keep its installer at a URL of its own version and submit that version to both + type: boolean + default: false workflow_call: inputs: server: @@ -39,6 +43,9 @@ on: ios: type: boolean default: true + windows_stores: + type: boolean + default: false permissions: contents: read @@ -201,13 +208,13 @@ jobs: run: | @{ Endpoint = '${{ vars.CODE_SIGNING_ENDPOINT }}'; CodeSigningAccountName = '${{ vars.CODE_SIGNING_ACCOUNT }}'; CertificateProfileName = '${{ vars.CODE_SIGNING_CERTIFICATE_PROFILE }}'; ExcludeCredentials = @('ManagedIdentityCredential', 'WorkloadIdentityCredential', 'SharedTokenCacheCredential', 'VisualStudioCredential', 'VisualStudioCodeCredential') } | ConvertTo-Json | Set-Content "$env:RUNNER_TEMP\code-signing.json" "VPK_AZURE_TRUSTED_SIGN_FILE=$env:RUNNER_TEMP\code-signing.json" >> $env:GITHUB_ENV - 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV + if ('${{ inputs.windows_stores }}' -ne 'true') { 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV } - name: Publish run: | cd src\BlazorUI\Demo\Client\Bit.BlazorUI.Demo.Client.Windows\ dotnet publish Bit.BlazorUI.Demo.Client.Windows.csproj -c Release -o .\publish-result -r win-x86 -p:Version="${{ vars.APP_VERSION}}" -p:CompressionEnabled=false -p:PublishReadyToRun=true -p:PublishReadyToRunComposite=true --self-contained - vpk pack -u Bit.BlazorUI.Demo.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e Bit.BlazorUI.Demo.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'Bit Blazor UI' + vpk pack -u Bit.BlazorUI.Demo.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e Bit.BlazorUI.Demo.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'Bit Blazor UI' --packAuthors BitPlatform - name: Attest the installer and packages uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -223,6 +230,51 @@ jobs: cd src\BlazorUI\Demo\Client\Bit.BlazorUI.Demo.Client.Windows\ vpk upload s3 --endpoint ${{ vars.R2_ENDPOINT }} --bucket ${{ env.R2_BUCKET }} --keyId ${{ secrets.R2_ACCESS_KEY_ID }} --secret ${{ secrets.R2_SECRET_ACCESS_KEY }} -o .\Releases --keepMaxReleases 10 + - name: Upload this version's installer to R2 + if: inputs.windows_stores + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: auto + AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED + AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED + run: | + $key = "${{ vars.APP_VERSION }}/Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe" + aws s3api head-object --bucket ${{ env.R2_BUCKET }} --key $key --endpoint-url ${{ vars.R2_ENDPOINT }} *> $null + if ($LASTEXITCODE -eq 0) { throw "$key is already on R2, and WinGet and the Microsoft Store need it unchanged. Raise APP_VERSION." } + aws s3 cp src\BlazorUI\Demo\Client\Bit.BlazorUI.Demo.Client.Windows\Releases\Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe "s3://${{ env.R2_BUCKET }}/$key" --endpoint-url ${{ vars.R2_ENDPOINT }} + "::notice title=Installer::https://windows-components.bitplatform.dev/$key" + + - name: Submit this version to WinGet + if: inputs.windows_stores + uses: ./.github/actions/submit-to-winget + with: + id: BitPlatform.BlazorUI + version: ${{ vars.APP_VERSION }} + installer: src\BlazorUI\Demo\Client\Bit.BlazorUI.Demo.Client.Windows\Releases\Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe + installer-url: https://windows-components.bitplatform.dev/${{ vars.APP_VERSION }}/Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe + architecture: x86 + product-code: Bit.BlazorUI.Demo.Client.Windows + name: BlazorUI + short-description: The demo app of bit BlazorUI, a library of native Blazor UI components. + package-url: https://blazorui.bitplatform.dev + token: ${{ secrets.WINGET_TOKEN }} + + - name: Set up the Microsoft Store CLI + if: inputs.windows_stores + uses: microsoft/microsoft-store-apppublisher@cc9910a8d59f2eb55cbb83df0a3800cf3b5300e0 # v1.4 + with: + version: v0.4.3 + + - name: Submit this version to the Microsoft Store + if: inputs.windows_stores + run: | + $PSNativeCommandUseErrorActionPreference = $true + msstore reconfigure --tenantId ${{ secrets.MSSTORE_TENANT_ID }} --sellerId ${{ secrets.MSSTORE_SELLER_ID }} --clientId ${{ secrets.MSSTORE_CLIENT_ID }} --clientSecret ${{ secrets.MSSTORE_CLIENT_SECRET }} + $package = @{ packages = @(@{ packageUrl = "https://windows-components.bitplatform.dev/${{ vars.APP_VERSION }}/Bit.BlazorUI.Demo.Client.Windows-win-Setup.exe"; languages = @('en'); architectures = @('X86'); installerParameters = '--silent'; isSilentInstall = $true }) } | ConvertTo-Json -Depth 4 -Compress + msstore submission update ${{ vars.BLAZORUI_MSSTORE_PRODUCT_ID }} $package + msstore submission publish ${{ vars.BLAZORUI_MSSTORE_PRODUCT_ID }} + build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android diff --git a/.github/workflows/sales-module-demo.cd.yml b/.github/workflows/sales-module-demo.cd.yml index fe9cd0500bd..4177442fb43 100644 --- a/.github/workflows/sales-module-demo.cd.yml +++ b/.github/workflows/sales-module-demo.cd.yml @@ -26,6 +26,10 @@ on: description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org type: boolean default: false + windows_stores: + description: For WinGet and the Microsoft Store, sign every file of the Windows app, keep its installer at a URL of its own version and submit that version to both + type: boolean + default: false workflow_call: inputs: server: @@ -37,6 +41,9 @@ on: prerelease_packages: type: boolean default: false + windows_stores: + type: boolean + default: false permissions: contents: read @@ -242,13 +249,13 @@ jobs: run: | @{ Endpoint = '${{ vars.CODE_SIGNING_ENDPOINT }}'; CodeSigningAccountName = '${{ vars.CODE_SIGNING_ACCOUNT }}'; CertificateProfileName = '${{ vars.CODE_SIGNING_CERTIFICATE_PROFILE }}'; ExcludeCredentials = @('ManagedIdentityCredential', 'WorkloadIdentityCredential', 'SharedTokenCacheCredential', 'VisualStudioCredential', 'VisualStudioCodeCredential') } | ConvertTo-Json | Set-Content "$env:RUNNER_TEMP\code-signing.json" "VPK_AZURE_TRUSTED_SIGN_FILE=$env:RUNNER_TEMP\code-signing.json" >> $env:GITHUB_ENV - 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV + if ('${{ inputs.windows_stores }}' -ne 'true') { 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV } - name: Publish run: | cd SalesModule\src\Client\SalesModule.Client.Windows\ dotnet publish SalesModule.Client.Windows.csproj -c Release -o .\publish-result -r win-x64 -p:Version="${{ vars.APP_VERSION}}" -p:PublishReadyToRun=true -p:PublishReadyToRunComposite=true --self-contained - vpk pack -u SalesModule.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e SalesModule.Client.Windows.exe -r win-x64 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'SalesModule' + vpk pack -u SalesModule.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e SalesModule.Client.Windows.exe -r win-x64 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'SalesModule' --packAuthors BitPlatform - name: Attest the installer and packages uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -263,3 +270,49 @@ jobs: run: | cd SalesModule\src\Client\SalesModule.Client.Windows\ vpk upload s3 --endpoint ${{ vars.R2_ENDPOINT }} --bucket ${{ env.R2_BUCKET }} --keyId ${{ secrets.R2_ACCESS_KEY_ID }} --secret ${{ secrets.R2_SECRET_ACCESS_KEY }} -o .\Releases --keepMaxReleases 10 + + - name: Upload this version's installer to R2 + if: inputs.windows_stores + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: auto + AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED + AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED + run: | + $key = "${{ vars.APP_VERSION }}/SalesModule.Client.Windows-win-Setup.exe" + aws s3api head-object --bucket ${{ env.R2_BUCKET }} --key $key --endpoint-url ${{ vars.R2_ENDPOINT }} *> $null + if ($LASTEXITCODE -eq 0) { throw "$key is already on R2, and WinGet and the Microsoft Store need it unchanged. Raise APP_VERSION." } + aws s3 cp SalesModule\src\Client\SalesModule.Client.Windows\Releases\SalesModule.Client.Windows-win-Setup.exe "s3://${{ env.R2_BUCKET }}/$key" --endpoint-url ${{ vars.R2_ENDPOINT }} + "::notice title=Installer::https://windows-sales.bitplatform.dev/$key" + + - name: Submit this version to WinGet + if: inputs.windows_stores + uses: ./.github/actions/submit-to-winget + with: + id: BitPlatform.Sales + version: ${{ vars.APP_VERSION }} + installer: SalesModule\src\Client\SalesModule.Client.Windows\Releases\SalesModule.Client.Windows-win-Setup.exe + installer-url: https://windows-sales.bitplatform.dev/${{ vars.APP_VERSION }}/SalesModule.Client.Windows-win-Setup.exe + architecture: x64 + product-code: SalesModule.Client.Windows + name: Sales + short-description: A product catalog and sales app built with bit Boilerplate. + package-url: https://sales.bitplatform.dev + privacy-url: https://sales.bitplatform.dev/en-US/privacy-policy + token: ${{ secrets.WINGET_TOKEN }} + + - name: Set up the Microsoft Store CLI + if: inputs.windows_stores + uses: microsoft/microsoft-store-apppublisher@cc9910a8d59f2eb55cbb83df0a3800cf3b5300e0 # v1.4 + with: + version: v0.4.3 + + - name: Submit this version to the Microsoft Store + if: inputs.windows_stores + run: | + $PSNativeCommandUseErrorActionPreference = $true + msstore reconfigure --tenantId ${{ secrets.MSSTORE_TENANT_ID }} --sellerId ${{ secrets.MSSTORE_SELLER_ID }} --clientId ${{ secrets.MSSTORE_CLIENT_ID }} --clientSecret ${{ secrets.MSSTORE_CLIENT_SECRET }} + $package = @{ packages = @(@{ packageUrl = "https://windows-sales.bitplatform.dev/${{ vars.APP_VERSION }}/SalesModule.Client.Windows-win-Setup.exe"; languages = @('en'); architectures = @('X64'); installerParameters = '--silent'; isSilentInstall = $true }) } | ConvertTo-Json -Depth 4 -Compress + msstore submission update ${{ vars.SALES_MSSTORE_PRODUCT_ID }} $package + msstore submission publish ${{ vars.SALES_MSSTORE_PRODUCT_ID }} diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index e6c815b8d86..17bc5947492 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -40,6 +40,10 @@ on: description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org type: boolean default: false + windows_stores: + description: For WinGet and the Microsoft Store, sign every file of the Windows app, keep its installer at a URL of its own version and submit that version to both + type: boolean + default: false workflow_call: inputs: server: @@ -60,6 +64,9 @@ on: prerelease_packages: type: boolean default: false + windows_stores: + type: boolean + default: false permissions: contents: read @@ -538,13 +545,13 @@ jobs: run: | @{ Endpoint = '${{ vars.CODE_SIGNING_ENDPOINT }}'; CodeSigningAccountName = '${{ vars.CODE_SIGNING_ACCOUNT }}'; CertificateProfileName = '${{ vars.CODE_SIGNING_CERTIFICATE_PROFILE }}'; ExcludeCredentials = @('ManagedIdentityCredential', 'WorkloadIdentityCredential', 'SharedTokenCacheCredential', 'VisualStudioCredential', 'VisualStudioCodeCredential') } | ConvertTo-Json | Set-Content "$env:RUNNER_TEMP\code-signing.json" "VPK_AZURE_TRUSTED_SIGN_FILE=$env:RUNNER_TEMP\code-signing.json" >> $env:GITHUB_ENV - 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV + if ('${{ inputs.windows_stores }}' -ne 'true') { 'VPK_SIGN_EXCLUDE=\.dll$' >> $env:GITHUB_ENV } - name: Publish run: | cd TodoSample\src\Client\TodoSample.Client.Windows\ dotnet publish TodoSample.Client.Windows.csproj -c Release -o .\publish-result -r win-x86 -p:Version="${{ vars.APP_VERSION}}" - vpk pack -u TodoSample.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e TodoSample.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle TodoSample + vpk pack -u TodoSample.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e TodoSample.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle TodoSample --packAuthors BitPlatform - name: Attest the installer and packages uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 @@ -560,6 +567,52 @@ jobs: cd TodoSample\src\Client\TodoSample.Client.Windows\ vpk upload s3 --endpoint ${{ vars.R2_ENDPOINT }} --bucket ${{ env.R2_BUCKET }} --keyId ${{ secrets.R2_ACCESS_KEY_ID }} --secret ${{ secrets.R2_SECRET_ACCESS_KEY }} -o .\Releases --keepMaxReleases 10 + - name: Upload this version's installer to R2 + if: inputs.windows_stores + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: auto + AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED + AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED + run: | + $key = "${{ vars.APP_VERSION }}/TodoSample.Client.Windows-win-Setup.exe" + aws s3api head-object --bucket ${{ env.R2_BUCKET }} --key $key --endpoint-url ${{ vars.R2_ENDPOINT }} *> $null + if ($LASTEXITCODE -eq 0) { throw "$key is already on R2, and WinGet and the Microsoft Store need it unchanged. Raise APP_VERSION." } + aws s3 cp TodoSample\src\Client\TodoSample.Client.Windows\Releases\TodoSample.Client.Windows-win-Setup.exe "s3://${{ env.R2_BUCKET }}/$key" --endpoint-url ${{ vars.R2_ENDPOINT }} + "::notice title=Installer::https://windows-todo.bitplatform.dev/$key" + + - name: Submit this version to WinGet + if: inputs.windows_stores + uses: ./.github/actions/submit-to-winget + with: + id: BitPlatform.Todo + version: ${{ vars.APP_VERSION }} + installer: TodoSample\src\Client\TodoSample.Client.Windows\Releases\TodoSample.Client.Windows-win-Setup.exe + installer-url: https://windows-todo.bitplatform.dev/${{ vars.APP_VERSION }}/TodoSample.Client.Windows-win-Setup.exe + architecture: x86 + product-code: TodoSample.Client.Windows + name: Todo + short-description: A to-do list app built with bit Boilerplate. + package-url: https://todo.bitplatform.dev + privacy-url: https://todo.bitplatform.dev/en-US/privacy-policy + token: ${{ secrets.WINGET_TOKEN }} + + - name: Set up the Microsoft Store CLI + if: inputs.windows_stores + uses: microsoft/microsoft-store-apppublisher@cc9910a8d59f2eb55cbb83df0a3800cf3b5300e0 # v1.4 + with: + version: v0.4.3 + + - name: Submit this version to the Microsoft Store + if: inputs.windows_stores + run: | + $PSNativeCommandUseErrorActionPreference = $true + msstore reconfigure --tenantId ${{ secrets.MSSTORE_TENANT_ID }} --sellerId ${{ secrets.MSSTORE_SELLER_ID }} --clientId ${{ secrets.MSSTORE_CLIENT_ID }} --clientSecret ${{ secrets.MSSTORE_CLIENT_SECRET }} + $package = @{ packages = @(@{ packageUrl = "https://windows-todo.bitplatform.dev/${{ vars.APP_VERSION }}/TodoSample.Client.Windows-win-Setup.exe"; languages = @('en'); architectures = @('X86'); installerParameters = '--silent'; isSilentInstall = $true }) } | ConvertTo-Json -Depth 4 -Compress + msstore submission update ${{ vars.TODO_MSSTORE_PRODUCT_ID }} $package + msstore submission publish ${{ vars.TODO_MSSTORE_PRODUCT_ID }} + build_blazor_hybrid_android: name: build blazor hybrid (android) if: inputs.android From 45b5c89a3e76fa69b429f612b03c18a356fb89cb Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 18:40:02 +0200 Subject: [PATCH 36/45] feat(blazores2019): build Bit.BlazorES2019 for .NET 11 and use it again instead of MapStaticAssets The move to .NET 11 swapped the ES2019 Blazor scripts for blazor.web.js served by MapStaticAssets in bit Boilerplate, the BlazorUI demo and the websites. The scripts come back, built from aspnetcore's release/11.0 the way the .NET 9 and 10 ones are (its web, server and webassembly scripts now land in dist/Release/_framework), and MapStaticAssets goes. --- .github/workflows/all.ci.yml | 17 +++++++++++++++++ .github/workflows/bit.ci.BlazorES2019.yml | 17 +++++++++++++++++ .github/workflows/nuget.org.yml | 17 +++++++++++++++++ .github/workflows/prerelease.nuget.org.yml | 17 +++++++++++++++++ .../Bit.BlazorES2019/Bit.BlazorES2019.csproj | 7 ++++++- .../buildTransitive/Bit.BlazorES2019.targets | 6 ++++++ .../Bit.BlazorUI.Demo.Server.csproj | 1 + .../Components/App.razor | 4 ++++ .../Startup/Middlewares.cs | 3 --- .../Bit.BlazorUI.Demo.Client.Maui.csproj | 1 + .../wwwroot/index.html | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.BlazorUI.Demo.Client.Windows.csproj | 1 + .../Boilerplate.Client.Maui.csproj | 1 + .../Boilerplate.Client.Maui/wwwroot/index.html | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Boilerplate.Client.Windows.csproj | 1 + .../src/Directory.Packages.props | 1 + .../Boilerplate.Server.Web.csproj | 1 + .../Boilerplate.Server.Web/Components/App.razor | 4 ++-- .../src/Tests/Boilerplate.Tests.csproj | 1 + .../Features/ServerWeb/HostPageRenderTests.cs | 2 +- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Careers.Server.csproj | 1 + .../Components/App.razor | 4 ++-- .../Startup/Middlewares.cs | 3 --- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Platform.Server.csproj | 1 + .../Components/App.razor | 4 ++-- .../Startup/Middlewares.cs | 3 --- .../wwwroot/service-worker.published.js | 2 +- .../Bit.Websites.Sales.Server.csproj | 1 + .../Components/App.razor | 4 ++-- .../Startup/Middlewares.cs | 3 --- 34 files changed, 111 insertions(+), 29 deletions(-) diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index e12b1d05581..4691662bd65 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -479,6 +479,23 @@ jobs: cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot.net10/ rm -rf aspnetcore + - name: Generate ES2019 based blazor.*.js files for .NET 11 + run: | + git clone https://github.com/dotnet/aspnetcore.git + cd aspnetcore + git switch release/11.0 + git submodule update --init --recursive + sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json + npm install + npm run-script build + cd src/Components/Web.JS + npm install + npm run-script build:production + cd ../../../../ + mkdir -p src/BlazorES2019/wwwroot.net11/ + cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js aspnetcore/src/Components/Web.JS/dist/Release/_framework/blazor.*.js src/BlazorES2019/wwwroot.net11/ + rm -rf aspnetcore + - name: Build and pack BlazorES2019 run: | dotnet build src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false diff --git a/.github/workflows/bit.ci.BlazorES2019.yml b/.github/workflows/bit.ci.BlazorES2019.yml index 3e770430f8a..461056308cc 100644 --- a/.github/workflows/bit.ci.BlazorES2019.yml +++ b/.github/workflows/bit.ci.BlazorES2019.yml @@ -84,6 +84,23 @@ jobs: cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot.net10/ rm -rf aspnetcore + - name: Generate .NET 11.0 blazor.*.js files + run: | + git clone https://github.com/dotnet/aspnetcore.git + cd aspnetcore + git switch release/11.0 + git submodule update --init --recursive + sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json + npm install + npm run-script build + cd src/Components/Web.JS + npm install + npm run-script build:production + cd ../../../../ + mkdir -p src/BlazorES2019/wwwroot.net11/ + cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js aspnetcore/src/Components/Web.JS/dist/Release/_framework/blazor.*.js src/BlazorES2019/wwwroot.net11/ + rm -rf aspnetcore + - name: dotnet workload restore run: cd src/BlazorES2019/Bit.BlazorES2019 && dotnet workload restore diff --git a/.github/workflows/nuget.org.yml b/.github/workflows/nuget.org.yml index 3b745f1b0a6..48f2919c3f1 100644 --- a/.github/workflows/nuget.org.yml +++ b/.github/workflows/nuget.org.yml @@ -106,6 +106,23 @@ jobs: cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot.net10/ rm -rf aspnetcore + - name: Generate ES2019 based blazor.*.js files for .NET 11 + run: | + git clone https://github.com/dotnet/aspnetcore.git + cd aspnetcore + git switch release/11.0 + git submodule update --init --recursive + sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json + npm install + npm run-script build + cd src/Components/Web.JS + npm install + npm run-script build:production + cd ../../../../ + mkdir -p src/BlazorES2019/wwwroot.net11/ + cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js aspnetcore/src/Components/Web.JS/dist/Release/_framework/blazor.*.js src/BlazorES2019/wwwroot.net11/ + rm -rf aspnetcore + - name: dotnet pack BlazorES2019 run: | dotnet build src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false diff --git a/.github/workflows/prerelease.nuget.org.yml b/.github/workflows/prerelease.nuget.org.yml index 32d536b29f7..b93b251037b 100644 --- a/.github/workflows/prerelease.nuget.org.yml +++ b/.github/workflows/prerelease.nuget.org.yml @@ -78,6 +78,23 @@ jobs: cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot.net10/ rm -rf aspnetcore + - name: Generate ES2019 based blazor.*.js files for .NET 11 + run: | + git clone https://github.com/dotnet/aspnetcore.git + cd aspnetcore + git switch release/11.0 + git submodule update --init --recursive + sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json + npm install + npm run-script build + cd src/Components/Web.JS + npm install + npm run-script build:production + cd ../../../../ + mkdir -p src/BlazorES2019/wwwroot.net11/ + cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js aspnetcore/src/Components/Web.JS/dist/Release/_framework/blazor.*.js src/BlazorES2019/wwwroot.net11/ + rm -rf aspnetcore + - name: dotnet pack BlazorES2019 run: | dotnet build src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false diff --git a/src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj b/src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj index 56fc5c41e3d..e14da51063f 100644 --- a/src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj +++ b/src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0 + net11.0;net10.0;net9.0 enable enable @@ -19,6 +19,11 @@ PreserveNewest contentFiles\any\net10.0\wwwroot\_framework\bit.%(Filename).es2019%(Extension) + + true + PreserveNewest + contentFiles\any\net11.0\wwwroot\_framework\bit.%(Filename).es2019%(Extension) + diff --git a/src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets b/src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets index d11ef9d563f..8cd6872c4dc 100644 --- a/src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets +++ b/src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets @@ -16,5 +16,11 @@ PreserveNewest wwwroot\_framework\%(Filename)%(Extension) + + + PreserveNewest + PreserveNewest + wwwroot\_framework\%(Filename)%(Extension) + diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index 571f5a308b4..eab99846d61 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -25,6 +25,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor index 0b46373a9ec..9a9bf1b06a7 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor @@ -7,7 +7,11 @@ #else var includeWasm = false; #endif +#if DEBUG var blazorWebScript = "_framework/blazor.web.js"; +#else + var blazorWebScript = "_framework/bit.blazor.web.es2019.js"; +#endif var noPrerender = HttpContext.Request.Query["no-prerender"].Count > 0; // Without the WASM client in the build, WebAssembly render modes can't boot, so fall back to Blazor Server // even where AppRenderMode.Current would pick WebAssembly (e.g. Release with IncludeWasm=false). diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cs b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cs index e61ae84ca34..e68a3d4e758 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cs +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cs @@ -97,9 +97,6 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); // Handle the rest of requests with blazor - // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. - app.MapStaticAssets(); - app.MapRazorComponents() .AddInteractiveServerRenderMode() #if INCLUDE_WASM diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 3859f43806b..cb5ec08a4e5 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -89,6 +89,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html index fafde855483..d1ba0d2a39b 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html @@ -152,7 +152,7 @@
- + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js index 806210ec5a5..39ec3ce8e40 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js @@ -18,7 +18,7 @@ self.externalAssets = [ "url": "Bit.BlazorUI.Demo.Server.styles.css" }, { - url: "_framework/blazor.web.js" + url: "_framework/bit.blazor.web.es2019.js" } ]; diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj index 619a291de71..dbe0123a439 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj @@ -29,6 +29,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj index d905f50f133..4ccd43906e2 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj @@ -162,6 +162,7 @@ + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html index 262560fad64..73c2eb1b66e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html @@ -164,7 +164,7 @@ - + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js index 43ed6f9329c..b343274239f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js @@ -80,7 +80,7 @@ self.externalAssets = [ }, ...(isServerHosted ? [ { - url: "_framework/blazor.web.js" + url: "_framework/bit.blazor.web.es2019.js" }, { "url": "Boilerplate.Server.Web.styles.css" diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj index 65c4cd8ce33..fa5fa835fb7 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj @@ -32,6 +32,7 @@ + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index 8660aa20e66..cf1f17a2cd0 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -5,6 +5,7 @@ + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj index 1546ea31d02..938779fdee0 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj @@ -17,6 +17,7 @@ + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor index ad25d9245b1..cd8a20d7946 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor @@ -132,8 +132,8 @@ actually carries pre-rendered html - otherwise the caller gets a page with no content AND no way to fetch any. *@ @if ((HttpContext.Request.IsLightHouseRequest() || HttpContext.Request.IsCrawlerClient()) is false || noPrerenderedContent) { - - + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj index 9319e87e508..545439422e1 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj @@ -10,6 +10,7 @@ + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs index d922c33c9e0..8faeb6096bf 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Features/ServerWeb/HostPageRenderTests.cs @@ -48,7 +48,7 @@ public partial class HostPageRenderTests private const string DuckDuckBotUserAgent = "Mozilla/5.0 (compatible; DuckDuckBot-Https/1.1; https://duckduckgo.com/duckduckbot)"; - private const string BlazorBootScript = "_framework/blazor.web.js"; + private const string BlazorBootScript = "_framework/bit.blazor.web.es2019.js"; public TestContext TestContext { get; set; } = default!; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js index f3643d34696..64fea6ac2c7 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Careers.Client.bundle.scp.css" }, { - url: "_framework/blazor.web.js" + url: "_framework/bit.blazor.web.es2019.js" } ]; diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 40cb0adbeeb..90d2ab1ca76 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -13,6 +13,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor index 7d1fe4db7ed..3c4cacd66c4 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor @@ -28,8 +28,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs index a66782546a4..eaf7a582fed 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Startup/Middlewares.cs @@ -71,9 +71,6 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); - // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. - app.MapStaticAssets(); - app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js index 747fec1ef55..b1b500c81d6 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Platform.Client.bundle.scp.css" }, { - url: "_framework/blazor.web.js" + url: "_framework/bit.blazor.web.es2019.js" } ]; diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index 44004392fb3..5ec3540f6a6 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -16,6 +16,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor index 7a86ef38fe8..d89b93ac1f3 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor @@ -95,8 +95,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs index 996ac3a26b8..90280806634 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Startup/Middlewares.cs @@ -91,9 +91,6 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); - // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. - app.MapStaticAssets(); - app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js index 9990dbb9e7f..b40c7f737d5 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js @@ -20,7 +20,7 @@ self.externalAssets = [ "url": "Bit.Websites.Sales.Client.bundle.scp.css" }, { - url: "_framework/blazor.web.js" + url: "_framework/bit.blazor.web.es2019.js" } ]; diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 60cce1295c1..ba8e6ba6e1a 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -13,6 +13,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor index 7095a1b8b7d..6a7c51e91e6 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor @@ -49,8 +49,8 @@ @if (HttpContext.Request.IsLightHouseRequest() is false) { - - + + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs index eb4c193fe13..3b1f0c31576 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Startup/Middlewares.cs @@ -71,9 +71,6 @@ public static void Use(WebApplication app, IWebHostEnvironment env, IConfigurati UseSiteMap(app); - // blazor.web.js is endpoint-served from .NET 9 on, so UseStaticFiles never answers for it. - app.MapStaticAssets(); - app.MapRazorComponents() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() From ba3b19767ea204374b9f705f57ce14c5caf5359c Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 18:40:02 +0200 Subject: [PATCH 37/45] fix(infra): build adminpanel.bitplatform.cc on .NET 10 --- .github/workflows/admin-sample.cd.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/admin-sample.cd.yml b/.github/workflows/admin-sample.cd.yml index 99da75c581b..53beb7a98de 100644 --- a/.github/workflows/admin-sample.cd.yml +++ b/.github/workflows/admin-sample.cd.yml @@ -253,6 +253,7 @@ jobs: uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json + dotnet-version: 10.0.x - name: Use prerelease packages if: inputs.prerelease_packages @@ -264,7 +265,7 @@ jobs: uses: ./.github/actions/setup-bit-cli - name: Create project with bit new - run: bit new AdminPanel --framework net11.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --theme Material --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust + run: bit new AdminPanel --framework net10.0 --database PostgreSQL --module Admin --sentry --apiServerUrl ${{ env.SERVER_API_ADDRESS }} --webAppUrl ${{ env.SERVER_WEB_ADDRESS }} --filesStorage S3 --notification --captcha reCaptcha --signalR --ads --theme Material --template-package "${{ env.BIT_TEMPLATE_PACKAGE }}" --yes --no-build --no-format --no-migration --no-trust - name: Update core appsettings.json uses: devops-actions/variable-substitution@ae7b1f3676ae374dc70282e6b9650bc50b611222 # v1.2 @@ -278,7 +279,8 @@ jobs: - name: Publish - run: dotnet publish AdminPanel/src/Client/AdminPanel.Client.Web/AdminPanel.Client.Web.csproj -c Release -o client -p:UseMonoRuntime=false -p:WasmEnableSIMD=true -p:Version="${{ vars.APP_VERSION}}" -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" + working-directory: AdminPanel + run: dotnet publish src/Client/AdminPanel.Client.Web/AdminPanel.Client.Web.csproj -c Release -o ../client -p:WasmEnableSIMD=true -p:Version="${{ vars.APP_VERSION}}" -p:BitMinifyAggressive=true -p:BitMinifyMapOutputPath="${{ github.workspace }}/bit-minifier.map" # what the stack traces this client logs are read back through: see the note in the server web job - name: Upload minifier map artifact From 070586c46737901f6c35245ca118367e885d4fbe Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 19:50:41 +0200 Subject: [PATCH 38/45] fix(templates): answer a missing _framework or _content file with a 404 instead of the not-found page so .NET 11's WebAssembly dev tools stop waiting on it --- .../src/Server/Boilerplate.Server.Web/Program.Middlewares.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs index bda0ed7dc64..b2af41bbc03 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs @@ -332,7 +332,9 @@ private void Handle40XStatusCodes() httpContext.Response.Redirect($"{PageUrls.NotAuthorized}{redirectQuery}"); } else if (httpContext.Response.StatusCode is 404 && - httpContext.GetEndpoint() is null /* Please be aware that certain endpoints, particularly those associated with web API actions, may intentionally return a 404 error. */) + httpContext.GetEndpoint() is null /* Please be aware that certain endpoints, particularly those associated with web API actions, may intentionally return a 404 error. */ && + httpContext.Request.Path.StartsWithSegments("/_framework") is false && + httpContext.Request.Path.StartsWithSegments("/_content") is false) { httpContext.Response.Redirect($"{PageUrls.NotFound}{QueryString.Create("url", httpContext.Request.GetEncodedPathAndQuery())}"); } From 76a15671a2c2e9b0adba27fea80c77c340354895 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 20:59:15 +0200 Subject: [PATCH 39/45] fix(templates): re-baseline every E2E download size on the 325.33.23 demos, AdminPanel's WebAssembly standalone now on .NET 10 --- .../Features/DownloadSize/WebAppDownloadSizeTests.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs index 940e59da084..ae4ede37660 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Internal/Boilerplate.Tests.E2E/Features/DownloadSize/WebAppDownloadSizeTests.cs @@ -39,15 +39,15 @@ public partial class WebAppDownloadSizeTests : AppPageTest /// them from the failure message whenever a deliberate change moves an app's size. /// [TestMethod] - [DataRow(DeployedApps.AdminPanel, 5.9, DisplayName = nameof(DeployedApps.AdminPanel))] - [DataRow(DeployedApps.AdminPanelWasmStandalone, 6.2, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] + [DataRow(DeployedApps.AdminPanel, 5.8, DisplayName = nameof(DeployedApps.AdminPanel))] + [DataRow(DeployedApps.AdminPanelWasmStandalone, 5.3, DisplayName = nameof(DeployedApps.AdminPanelWasmStandalone))] - [DataRow(DeployedApps.Todo, 5.4, DisplayName = nameof(DeployedApps.Todo))] - [DataRow(DeployedApps.TodoAot, 9.9, DisplayName = nameof(DeployedApps.TodoAot))] - [DataRow(DeployedApps.TodoSmall, 3.9, DisplayName = nameof(DeployedApps.TodoSmall))] + [DataRow(DeployedApps.Todo, 5.3, DisplayName = nameof(DeployedApps.Todo))] + [DataRow(DeployedApps.TodoAot, 10.1, DisplayName = nameof(DeployedApps.TodoAot))] + [DataRow(DeployedApps.TodoSmall, 3.7, DisplayName = nameof(DeployedApps.TodoSmall))] [DataRow(DeployedApps.TodoOffline, 8.3, DisplayName = nameof(DeployedApps.TodoOffline))] - [DataRow(DeployedApps.Sales, 5.7, DisplayName = nameof(DeployedApps.Sales))] + [DataRow(DeployedApps.Sales, 5.6, DisplayName = nameof(DeployedApps.Sales))] public async Task FirstVisitDownloadSize_Should_NotRegress(string url, double expectedMegabytes) { // Qualified because the inherited BrowserType property shadows the type of the same name. From 29e999da765171e7f6da9a74ae1f80d0b690feb7 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Wed, 21 Oct 2026 22:51:57 +0200 Subject: [PATCH 40/45] feat(templates): compress bit Boilerplate's responses with zstd first on .NET 11 --- .../Extensions/WebApplicationBuilderExtensions.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs index 70048656b51..6873c845951 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs @@ -129,6 +129,9 @@ public TBuilder AddServerSharedServices() { opts.EnableForHttps = true; opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(["application/octet-stream"]).ToArray(); + //#if (framework == 'net11.0') + opts.Providers.Add(); + //#endif opts.Providers.Add(); opts.Providers.Add(); }) From 952b659576f81cde6ca8f33ec138956613ac11ec Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 22 Oct 2026 07:32:55 +0200 Subject: [PATCH 41/45] feat(deps): update project dependencies #14074 --- .../src/Directory.Packages.props | 18 +++++++++--------- ...t.Belemetry.Tests.Harness.Web.Client.csproj | 6 +++--- .../Bit.Belemetry.Tests.Harness.Web.csproj | 6 +++--- .../Bit.Belemetry.Tests.Hosting.csproj | 6 +++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index cf1f17a2cd0..419f4d52deb 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -90,13 +90,13 @@ restores and compiles against EF 11 - its EF dependency is a floor, not a range - but creating the DbContext throws "Method not found: RelationalTypeMapping.Clone", the same break the EF 10 Npgsql provider hit. MySQL is blocked on .NET 11 until Oracle ships an EF 11 build. --> - - - - - - - + + + + + + + @@ -107,7 +107,7 @@ - + @@ -186,7 +186,7 @@ - + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj index 327c57f63fb..2596e18d812 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web.Client/Bit.Belemetry.Tests.Harness.Web.Client.csproj @@ -15,9 +15,9 @@
- - - + + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj index 7792d71afa9..d65a8e00b89 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj @@ -15,9 +15,9 @@
- - - + + + diff --git a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj index d87f18b9a71..68af677730c 100644 --- a/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj +++ b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting/Bit.Belemetry.Tests.Hosting.csproj @@ -19,9 +19,9 @@ - - - + + + From 78b03b9a65c9914c9d5d0b9d3ae7afa7bef83ccf Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 22 Oct 2026 07:32:56 +0200 Subject: [PATCH 42/45] feat(deps): update project dependencies #13862 --- .github/workflows/support-tracking.yml | 2 +- src/Besql/Bit.Besql/Bit.Besql.csproj | 6 +++--- .../Bit.BlazorUI.Assets.csproj | 2 +- .../Bit.BlazorUI.Extras.csproj | 2 +- .../Bit.BlazorUI.Legacy.csproj | 2 +- src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj | 2 +- src/Bswup/Bit.Bswup/Bit.Bswup.csproj | 2 +- src/Butil/Bit.Butil/Bit.Butil.csproj | 2 +- .../.docs/01- Entity Framework Core.md | 6 +++--- .../.github/agents/scaffold-entity.agent.md | 2 +- .../.template.config/template.json | 4 ++-- .../Boilerplate/Bit.Boilerplate/AGENTS.md | 2 +- .../Infrastructure/Data/README.md | 4 ++-- .../IClientCoreServiceCollectionExtensions.cs | 2 +- .../src/Directory.Packages.props | 18 +++++++++--------- ....Belemetry.Tests.EntityFrameworkCore.csproj | 2 +- .../Demo/Data/Bit.Bsqlite.Demo.Data.csproj | 2 +- .../Demo/Server/Bit.Bsqlite.Demo.Server.csproj | 2 +- .../Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj | 2 +- 19 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/support-tracking.yml b/.github/workflows/support-tracking.yml index e139e6bd3ff..8e65a993c90 100644 --- a/.github/workflows/support-tracking.yml +++ b/.github/workflows/support-tracking.yml @@ -18,7 +18,7 @@ jobs: if: >- github.event.issue.user.type != 'Bot' && !contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: diff --git a/src/Besql/Bit.Besql/Bit.Besql.csproj b/src/Besql/Bit.Besql/Bit.Besql.csproj index 0bdab49407b..e086a016278 100644 --- a/src/Besql/Bit.Besql/Bit.Besql.csproj +++ b/src/Besql/Bit.Besql/Bit.Besql.csproj @@ -29,11 +29,11 @@ - + - + - +
diff --git a/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj b/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj index 1b51eea3c28..07dd13e2c03 100644 --- a/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj @@ -20,7 +20,7 @@ - +
diff --git a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj index 800054e636f..6a3988e3b17 100644 --- a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj b/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj index 5e13e4c50f3..5099c590497 100644 --- a/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Legacy/Bit.BlazorUI.Legacy.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj b/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj index c4167190016..92ea9c69523 100644 --- a/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj +++ b/src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj @@ -34,7 +34,7 @@ - +
diff --git a/src/Bswup/Bit.Bswup/Bit.Bswup.csproj b/src/Bswup/Bit.Bswup/Bit.Bswup.csproj index 567e60bb5b3..344dacbde2a 100644 --- a/src/Bswup/Bit.Bswup/Bit.Bswup.csproj +++ b/src/Bswup/Bit.Bswup/Bit.Bswup.csproj @@ -29,7 +29,7 @@ - + - +
diff --git a/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj b/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj index 276613015cf..56055d5fcac 100644 --- a/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj +++ b/src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj index ab47dfa0192..0cdbac3586d 100644 --- a/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj +++ b/src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests/Bit.Bsqlite.Tests.csproj @@ -25,7 +25,7 @@ - +
From fe14db34dc145a1d940f8b086c80c36a2a1f1cc7 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 22 Oct 2026 07:31:59 +0200 Subject: [PATCH 43/45] fix(bevtools): click the panel tabs inside InvokeAsync in the tab test so a render in between can't drop the handler #14075 --- .../Tests/Bit.BevTools.Tests/PanelInteractionTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/PanelInteractionTests.cs b/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/PanelInteractionTests.cs index 59417737f82..ec8470f618e 100644 --- a/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/PanelInteractionTests.cs +++ b/src/Utilities/BevTools/Tests/Bit.BevTools.Tests/PanelInteractionTests.cs @@ -38,7 +38,7 @@ private IRenderedComponent RenderPanel(string? prefs = null) } [TestMethod] - public void Every_built_in_panel_can_be_opened_from_its_tab() + public async Task Every_built_in_panel_can_be_opened_from_its_tab() { var cut = RenderPanel(); var tabs = cut.FindAll(".bev-tab").Select(t => t.TextContent.Trim().Split('\n')[0].Trim()).ToList(); @@ -46,7 +46,7 @@ public void Every_built_in_panel_can_be_opened_from_its_tab() foreach (var tab in tabs) { - cut.FindAll(".bev-tab").First(t => t.TextContent.Trim().StartsWith(tab, StringComparison.Ordinal)).Click(); + await cut.InvokeAsync(() => cut.FindAll(".bev-tab").First(t => t.TextContent.Trim().StartsWith(tab, StringComparison.Ordinal)).Click()); Assert.IsNotEmpty(cut.FindAll(".bev-body")); Assert.DoesNotContain(e => e.TextContent.Contains("Unknown panel", StringComparison.Ordinal), cut.FindAll(".bev-empty")); } From 579744f8557757968848a7e5a4d19ed0678e955e Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 22 Oct 2026 09:11:46 +0200 Subject: [PATCH 44/45] feat(deps): move the .NET 10 projects to MAUI 10.0.120, which renders the app icons' SVG filters again #14074 --- .github/agents/dependency-update.md | 12 ++++++------ .../Bit.Boilerplate/src/Directory.Packages.props | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index d3ec8aaf945..5d2b5c52c2b 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -108,14 +108,14 @@ gh api "repos///git/trees/?recursive=1" --jq '[.tree[]|select( A non-zero count on a JavaScript action that vendors `node_modules` means it will not stage. This is worth checking for *any* action bump, not just this one — it is invisible in the release notes. -**MAUI's resizetizer breaks on SVG filters.** From 10.0.101 and 11.0.0-rc.2 on, MAUI bundles an `Svg.Skia` that +**MAUI's resizetizer breaks on SVG filters.** MAUI 10.0.101 to 10.0.110 and 11.0.0-rc.2 bundle an `Svg.Skia` that calls a SkiaSharp overload missing from the SkiaSharp next to it, so any SVG it resizes that has a `` fails the build with `MAUIR0001` / `MissingMethodException: SKImageFilter.CreateMatrixConvolution` -([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). develop holds MAUI at 10.0.100 for it. On -this branch MAUI can't stay behind: a MAUI built for an older preview doesn't compile against the newer -preview's Android workload (CS1705 on `Java.Interop`). So MAUI follows the SDK here for .NET 11, while a .NET 10 -Boilerplate project keeps develop's 10.0.100, and the app icons of the Boilerplate and the BlazorUI demo carry no -drop shadow (their ``) until that issue is fixed. +([dotnet/maui#38319](https://github.com/dotnet/maui/issues/38319)). 10.0.120 fixed it for .NET 10, and a .NET 10 +Boilerplate project takes develop's MAUI. On this branch MAUI can't stay behind for .NET 11: a MAUI built for an +older preview doesn't compile against the newer preview's Android workload (CS1705 on `Java.Interop`). So MAUI +follows the SDK here, and the app icons of the Boilerplate and the BlazorUI demo carry no drop shadow (their +``) until a .NET 11 MAUI builds an app with the Boilerplate's `appicon.svg` as its icon. **bit Boilerplate builds for .NET 10 and .NET 11.** Its `framework` option picks one; the template's own tree is the .NET 11 project. In its `Directory.Packages.props`, a package whose 11.x build has no `net10.0` assets has a diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props index a2c69d7d616..46b649b6e4e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props @@ -183,9 +183,9 @@ - + - + From ec05293c263ed718e6f9103c390ed05701b64476 Mon Sep 17 00:00:00 2001 From: yasmoradi Date: Thu, 22 Oct 2026 10:40:32 +0200 Subject: [PATCH 45/45] move BevTools' new loader and Bdnd's new publish gate to net11.0 --- .github/workflows/bit.ci.Bdnd.e2e.yml | 6 +++--- src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/publish-gate.sh | 4 ++-- .../BevTools/Bit.BevTools.Loader/Bit.BevTools.Loader.csproj | 6 +++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/bit.ci.Bdnd.e2e.yml b/.github/workflows/bit.ci.Bdnd.e2e.yml index a178ff1467e..08f34967230 100644 --- a/.github/workflows/bit.ci.Bdnd.e2e.yml +++ b/.github/workflows/bit.ci.Bdnd.e2e.yml @@ -70,7 +70,7 @@ jobs: # reads and writes through reflection lose their members, and none of it is visible in a build output. publish-gate: name: Bdnd publish gate (${{ matrix.name }}) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 # The whole browser suite runs after the publish, which in the AOT leg compiles the entire client ahead of time. timeout-minutes: ${{ matrix.timeout }} strategy: @@ -91,7 +91,7 @@ jobs: with: persist-credentials: false - - name: Setup .NET 10.0 + - name: Setup .NET 11.0 uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 with: global-json-file: src/global.json @@ -113,7 +113,7 @@ jobs: run: dotnet build src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net11.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published demo env: diff --git a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/publish-gate.sh b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/publish-gate.sh index 236275eb500..aeed387a307 100644 --- a/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/publish-gate.sh +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/publish-gate.sh @@ -18,7 +18,7 @@ set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" -# Unlike the other publish gates, no -p:TargetFrameworks=net10.0: the WebAssembly client would get it too and then -# no longer resolve its runtime pack (WASM0005). Nor is it needed: the client, a net10.0 app, is the only project +# Unlike the other publish gates, no -p:TargetFrameworks=net11.0: the WebAssembly client would get it too and then +# no longer resolve its runtime pack (WASM0005). Nor is it needed: the client, a net11.0 app, is the only project # AOT compiles, and Bit.Bdnd's other frameworks demand no wasm-tools workload of their own. exec bash "$here/../../../../publish-gate.sh" Bit.Bdnd 'Demo|Tests' "$here/../../Demo/Server/Bit.Bdnd.Demo.Server.csproj" "$@" diff --git a/src/Utilities/BevTools/Bit.BevTools.Loader/Bit.BevTools.Loader.csproj b/src/Utilities/BevTools/Bit.BevTools.Loader/Bit.BevTools.Loader.csproj index d93e1574159..cb89200f48c 100644 --- a/src/Utilities/BevTools/Bit.BevTools.Loader/Bit.BevTools.Loader.csproj +++ b/src/Utilities/BevTools/Bit.BevTools.Loader/Bit.BevTools.Loader.csproj @@ -3,7 +3,7 @@ - net10.0;net9.0;net8.0 + net11.0;net10.0;net9.0;net8.0 Bit.BevTools enable Lets a Blazor app load bit BevTools on demand: startup hooks (component activator, HTTP pipeline, service collection, framework diagnostics) that cost next to nothing until BevTools is attached, a service that lazy loads Bit.BevTools.wasm, attaches it to the running app and opens it, and a component that renders its panel. @@ -22,16 +22,20 @@ + + + +