release/1.0.8-rc3 #43
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release/1.0.8-rc3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
TestWebApplicationFactory instances shared the same in-memory database because EF Core's UseInMemoryDatabase("InMemory") returns the same backing store to every DbContext that asks for it under the same connection string, in the same process. Whichever fixture started first defined the state, and every subsequent fixture inherited it, making tests silently order-dependent and flaky. Fix: - Yavsc.Tests.Shared/InMemoryDatabaseName: helper that suffixes the in-memory connection string with a per-fixture GUID. - TestWebApplicationFactory: instance GUID + ConnectionStrings__ YavscConnection set as an environment variable in the constructor and cleared in Dispose, so each factory gets its own backing store. Env var is needed because IdentityServer8.EntityFramework exposes ConfigureDbContext as Action<DbContextOptionsBuilder> with no service-provider access, so the connection string is captured at registration time. AddEnvironmentVariables is the last provider in the config pipeline and wins regardless. - WebServerFixture: process-static GUID (WebHostFixture is a per-process singleton by design, so the test collection shares one store; the GUID still isolates from TestWebApplicationFactory). - AddIdentityDBAndStores: read the connection string at DbContext construction time via the (sp, options) overload of AddDbContext, so test fixtures can override it via the host's IConfiguration. IdentityServer stores cannot do the same without subclassing the framework's DbContexts; the env var path is the documented escape hatch in HostingExtensions.AddIdentityServer. - UsesInMemoryProvider: StartsWith instead of equality, so 'InMemory-{guid}' is still recognised as an in-memory connection string. Regression sentinel in Controllers/TestWebApplicationFactoryIsolationTests: two factories seed a marker client in the first, the second must not see it. Suite: 45/45 over 3 stable runs, 13-15s each.WIP: addressing the layer-3 WindowingPlatformStub.NotSupportedException crash on PostIt.Android by downgrading to the Avalonia 11 / Avalonia.Maui 11 stack, where the Android runtime platform layer (IWindowingPlatform) gets properly bound via the MAUI embedding extension instead of being left as a stub. Touched files: - src/PostIt/Directory.Packages.props: - Avalonia 12.1.1 -> 11.3.20 (Avalonia, Avalonia.Android, Avalonia.AvaloniaEdit, Avalonia.Browser, Avalonia.Desktop, Avalonia.Fonts.Inter, Avalonia.Themes.Fluent). - New: Avalonia.Maui 11.3.0. - Microsoft.Maui.Essentials 10.0.100 -> 8.0.100 (aligns with the Microsoft.Maui.Controls 8.0.x family that Avalonia.Maui 11.3.0 pulls transitively). - New: Microsoft.Maui.Controls 8.0.100. - src/PostIt/PostIt.Android/PostIt.Android.csproj: - TargetFramework net10.0-android -> net9.0-android36.0 (Avalonia Android 11.3.20 targets net8.0-android34.0, but the compat-ascending fallback lets us consume from net9.0-android36.0 against the API-36 platform that's already installed locally). - Add Avalonia.Maui PackageReference. - Restore Microsoft.Maui.Essentials PackageReference (left in earlier removal during the MAUI-cause-of-crash hypothesis check). - src/PostIt/PostIt/PostIt.csproj: TargetFramework net10.0 -> net9.0 (must match what PostIt.Android consumes transitively, otherwise the build chain breaks). - src/Yavsc.Abstract/Yavsc.Abstract.csproj: net10.0 -> net9.0 (same reason; six other consumers stay on net10.0 and pick up the new assembly via standard TFM compat). - src/Yavsc.Api.Client/Yavsc.Api.Client.csproj: net10.0 -> net9.0 (same reason). - src/PostIt/PostIt.Android/Application.cs: rewritten as a bare Android.App.Application. Avalonia 11 no longer ships AvaloniaAndroidApplication<TApp> (that was an Avalonia 12 introduction); the Avalonia init now lives in MainActivity via AvaloniaMainActivity<TApp>. The class is kept only so the [Application] manifest entry remains. - src/PostIt/PostIt.Android/MainActivity.cs: now inherits AvaloniaMainActivity<App> and overrides CustomizeAppBuilder to chain .UseMaui<PostIt.Maui.MauiEmbeddingApp>(this) before .WithInterFont(). AvaloniaMainActivity<TApp> handles the AvaloniaView initialisation in OnCreate. - src/PostIt/PostIt/Maui/MauiEmbeddingApp.cs (new): empty Microsoft.Maui.Controls.Application used as the embedding host for Avalonia.Maui. The MAUI window it produces is consumed by the Avalonia.Maui embedding pipeline and never surfaces to the user; Avalonia owns the actual visual tree. Build status: 11 errors remaining, all CS0234 / CS0246 against 'Avalonia.Controls.ContentPage'. Avalonia 11 did not ship ContentPage (it's an Avalonia 12 type, presumably for MAUI parity). All seven PostIt pages inherit ContentPage today and need to be reworked to UserControl before the build can complete. Follow-up commit will do that. Reference: AGENTS.md, 'PostIt.Android boot crash sur AVD x86_64 : investigation par couches', couche 3.2bee3417adc707b5f29e1c485c83821ba114ee33