From 7f157e7ff01ef6598d27ef7e492142f503cb6db6 Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Thu, 28 Nov 2024 15:09:16 +0700 Subject: [PATCH] update projects to target dotnet 9 (#1057) * update projects to target dotnet 9 * upgrade FWLite projects * change workflows to use dotnet 9 * upgrade packages to latest versions * update harmony deps * fix warning 'Multiple test adapters with the same uri 'executor://xunit/VsTestRunner2/netcoreapp' were found. Ignoring adapter 'Xunit.Runner.VisualStudio.VsTestRunner'. Please uninstall the conflicting adapter(s) to avoid this warning.' * fix build by including harmony/Directory.Packages.props and some other missing files in docker builds * define `--prod-ui-build` in tilt to make running playwright tests more reliable as the vite server doesn't work well with playwright tests --- .config/dotnet-tools.json | 7 +++-- .github/workflows/fw-lite.yaml | 12 +++++--- .github/workflows/integration-test-gha.yaml | 3 ++ .github/workflows/integration-test.yaml | 2 +- .github/workflows/lexbox-api.yaml | 2 +- Taskfile.yml | 7 ++++- Tiltfile | 29 ++++++++++++------- backend/Directory.Build.props | 3 ++ backend/Dockerfile | 4 +-- backend/FixFwData/FixFwData.csproj | 13 +++++---- backend/FwHeadless/FwHeadless.csproj | 6 ++-- backend/FwHeadless/dev.Dockerfile | 4 +-- .../Fixtures/MockFwProjectList.cs | 2 +- .../FwDataMiniLcmBridge.Tests.csproj | 17 +++++------ .../FieldWorksProjectList.cs | 8 +++-- .../FwDataMiniLcmBridge.csproj | 15 ++++------ .../FwLite/FwLiteDesktop/FwLiteDesktop.csproj | 4 +-- .../FwLiteProjectSync.Tests.csproj | 16 ++++------ .../FwLiteProjectSync.csproj | 7 ++--- ...elSnapshotTests.VerifyDbModel.verified.txt | 2 +- .../FwLite/LcmCrdt.Tests/LcmCrdt.Tests.csproj | 11 +++---- .../FwLite/LcmCrdt.Tests/OpenProjectTests.cs | 1 + backend/FwLite/LcmCrdt/LcmCrdt.csproj | 11 +++---- backend/FwLite/LcmCrdt/LcmCrdtDbContext.cs | 1 - backend/FwLite/LocalWebApp/LocalWebApp.csproj | 9 ++---- .../LocalWebApp/Routes/HistoryRoutes.cs | 3 +- .../FwLite/MiniLcm.Tests/MiniLcm.Tests.csproj | 13 ++++----- backend/FwLite/MiniLcm/MiniLcm.csproj | 5 +--- backend/LexBoxApi/LexBoxApi.csproj | 22 +++++++------- backend/LexBoxApi/dev.Dockerfile | 6 ++-- backend/LexCore/LexCore.csproj | 6 +--- backend/LexData/DataKernel.cs | 4 +++ backend/LexData/LexData.csproj | 20 +++++-------- backend/LfClassicData/LfClassicData.csproj | 7 ++--- backend/LfNext/LcmDebugger/LcmDebugger.csproj | 3 -- backend/SyncReverseProxy/Dockerfile | 20 ------------- .../SyncReverseProxy/SyncReverseProxy.csproj | 20 +++++-------- backend/Testing/Testing.csproj | 22 ++++++-------- backend/harmony | 2 +- frontend/tests/pages/userDashboardPage.ts | 5 ++++ 40 files changed, 160 insertions(+), 194 deletions(-) delete mode 100644 backend/SyncReverseProxy/Dockerfile diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 6b7095305..4f487990c 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,10 +3,11 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "8.0.10", + "version": "9.0.0", "commands": [ "dotnet-ef" - ] + ], + "rollForward": false } } -} +} \ No newline at end of file diff --git a/.github/workflows/fw-lite.yaml b/.github/workflows/fw-lite.yaml index 37043dfda..f36d825e6 100644 --- a/.github/workflows/fw-lite.yaml +++ b/.github/workflows/fw-lite.yaml @@ -35,10 +35,14 @@ jobs: submodules: true - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - uses: actions/setup-node@v4 with: node-version-file: './frontend/package.json' + + - name: Setup Maui + run: dotnet workload install maui-windows + - name: Set Version id: setVersion shell: bash @@ -86,7 +90,7 @@ jobs: path: frontend/viewer/dist - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - name: Dotnet build working-directory: backend/FwLite/LocalWebApp @@ -123,7 +127,7 @@ jobs: path: frontend/viewer/dist - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - name: Dotnet build working-directory: backend/FwLite/LocalWebApp @@ -156,7 +160,7 @@ jobs: path: frontend/viewer/dist - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - name: Setup Maui run: dotnet workload install maui-windows diff --git a/.github/workflows/integration-test-gha.yaml b/.github/workflows/integration-test-gha.yaml index a604eea41..1e2315e21 100644 --- a/.github/workflows/integration-test-gha.yaml +++ b/.github/workflows/integration-test-gha.yaml @@ -22,6 +22,9 @@ jobs: - uses: actions/checkout@v4 with: submodules: true + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '9.x' - name: Install Task uses: arduino/setup-task@v2 with: diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index d35311121..e39d17716 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -85,7 +85,7 @@ jobs: env: DOTNET_INSTALL_DIR: ${{ inputs.runs-on == 'self-hosted' && '/opt/hostedtoolcache/dotnet' || '' }} #poor man's conditional with: - dotnet-version: '8.x' + dotnet-version: '9.x' - uses: MatteoH2O1999/setup-python@429b7dee8a48c31eb72ce0b420ea938ff51c2f11 # v3.2.1 id: python if: ${{ inputs.runs-on != 'windows-latest' && !env.act && inputs.hg-version == '3' }} diff --git a/.github/workflows/lexbox-api.yaml b/.github/workflows/lexbox-api.yaml index d0774bcd0..135e5ae95 100644 --- a/.github/workflows/lexbox-api.yaml +++ b/.github/workflows/lexbox-api.yaml @@ -49,7 +49,7 @@ jobs: submodules: true - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - name: Install Task uses: arduino/setup-task@v2 with: diff --git a/Taskfile.yml b/Taskfile.yml index 0306ea674..ec5513e7e 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -68,7 +68,12 @@ tasks: cmds: - tilt up - # dev + prod-ui-up: + interactive: true + desc: 'Starts the cluster using the production build of UI, good for automated testing' + cmds: + - tilt up -- --prod-ui-build + # dev infra-up: desc: 'Starts infrastructure for our ui and api, does not forward ports for api, if you want port forwarding use k8s:infra-forward' cmds: diff --git a/Tiltfile b/Tiltfile index 061bdb63d..224a00bcf 100644 --- a/Tiltfile +++ b/Tiltfile @@ -4,8 +4,10 @@ version_settings(constraint='>=0.33.20') secret_settings(disable_scrub=True) config.define_bool("lexbox-api-local") +config.define_bool("prod-ui-build") cfg = config.parse() forward_lexbox = not cfg.get("lexbox-api-local", False) +prod_ui_build = cfg.get("prod-ui-build", False) docker_build( 'local-dev-init', @@ -33,16 +35,23 @@ docker_build( sync('backend', '/src/backend') ] ) - -docker_build( - 'ghcr.io/sillsdev/lexbox-ui', - context='frontend', - dockerfile='./frontend/dev.Dockerfile', - only=['.'], - live_update=[ - sync('frontend', '/app'), - ] -) +if prod_ui_build: + docker_build( + 'ghcr.io/sillsdev/lexbox-ui', + context='frontend', + dockerfile='./frontend/Dockerfile', + only=['.'] + ) +else: + docker_build( + 'ghcr.io/sillsdev/lexbox-ui', + context='frontend', + dockerfile='./frontend/dev.Dockerfile', + only=['.'], + live_update=[ + sync('frontend', '/app'), + ] + ) docker_build( 'ghcr.io/sillsdev/lexbox-hgweb', diff --git a/backend/Directory.Build.props b/backend/Directory.Build.props index e70320586..574e961ef 100644 --- a/backend/Directory.Build.props +++ b/backend/Directory.Build.props @@ -9,7 +9,10 @@ $(MSBuildProjectDirectory)/bin/container/ + dev + net9.0 false + enable enable Nullable diff --git a/backend/Dockerfile b/backend/Dockerfile index 4c4630a7f..3a43c094f 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,10 +1,10 @@ # syntax=docker/dockerfile:1 -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build COPY . . # WORKDIR /src diff --git a/backend/FixFwData/FixFwData.csproj b/backend/FixFwData/FixFwData.csproj index 7c217f173..e96561fca 100644 --- a/backend/FixFwData/FixFwData.csproj +++ b/backend/FixFwData/FixFwData.csproj @@ -2,14 +2,17 @@ WinExe - net8.0 - enable - enable + FixFwData + FixFwData + SIL Global + SIL Global + LexBoxApi Testing + Copyright © 2024 SIL Global - - + + diff --git a/backend/FwHeadless/FwHeadless.csproj b/backend/FwHeadless/FwHeadless.csproj index 82dcf0521..a106c1fa5 100644 --- a/backend/FwHeadless/FwHeadless.csproj +++ b/backend/FwHeadless/FwHeadless.csproj @@ -1,17 +1,15 @@ - net9.0 - enable - enable $(MSBuildProjectDirectory) - + + diff --git a/backend/FwHeadless/dev.Dockerfile b/backend/FwHeadless/dev.Dockerfile index db60a422c..38a83bf9d 100644 --- a/backend/FwHeadless/dev.Dockerfile +++ b/backend/FwHeadless/dev.Dockerfile @@ -11,13 +11,13 @@ WORKDIR /src/backend # Uncomment line below if second COPY fails # RUN mkdir -p FwLite && chown www-data:www-data FwLite # Copy the main source project files -COPY --chown=www-data:www-data *.sln FwHeadless/FwHeadless.csproj FixFwData/FixFwData.csproj LexCore/LexCore.csproj LexData/LexData.csproj ./ +COPY --chown=www-data:www-data *.sln FwHeadless/FwHeadless.csproj FixFwData/FixFwData.csproj LexCore/LexCore.csproj LexData/LexData.csproj Directory.Build.props ./ # move them into the proper sub folders, based on the name of the project RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p ${dir}/ && mv -v $file ${dir}/; done # Do the same for csproj files in slightly different hierarchies COPY --chown=www-data:www-data harmony/src/*/*.csproj ./ RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p harmony/src/${dir}/ && mv -v $file harmony/src/${dir}/; done -COPY --chown=www-data:www-data harmony/src/Directory.Build.props ./harmony/src/ +COPY --chown=www-data:www-data harmony/src/Directory.Build.props harmony/Directory.Packages.props ./harmony/src/ COPY --chown=www-data:www-data FwLite/FwDataMiniLcmBridge/FwDataMiniLcmBridge.csproj FwLite/LcmCrdt/LcmCrdt.csproj FwLite/MiniLcm/MiniLcm.csproj FwLite/FwLiteProjectSync/FwLiteProjectSync.csproj ./ RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p FwLite/${dir}/ && mv -v $file FwLite/${dir}/; done diff --git a/backend/FwLite/FwDataMiniLcmBridge.Tests/Fixtures/MockFwProjectList.cs b/backend/FwLite/FwDataMiniLcmBridge.Tests/Fixtures/MockFwProjectList.cs index 43e3a65b8..6463670c1 100644 --- a/backend/FwLite/FwDataMiniLcmBridge.Tests/Fixtures/MockFwProjectList.cs +++ b/backend/FwLite/FwDataMiniLcmBridge.Tests/Fixtures/MockFwProjectList.cs @@ -7,7 +7,7 @@ public class MockFwProjectList(IOptions config, MockFwProjec { public override IEnumerable EnumerateProjects() { - return loader.Projects.Keys.Select(k => new FwDataProject(k, config.Value.ProjectsFolder)); + return loader.Projects.Keys.Select(k => new FwDataProject(k, _config.Value.ProjectsFolder)); } public override FwDataProject? GetProject(string name) diff --git a/backend/FwLite/FwDataMiniLcmBridge.Tests/FwDataMiniLcmBridge.Tests.csproj b/backend/FwLite/FwDataMiniLcmBridge.Tests/FwDataMiniLcmBridge.Tests.csproj index f2ff05e5d..c7f4be0c0 100644 --- a/backend/FwLite/FwDataMiniLcmBridge.Tests/FwDataMiniLcmBridge.Tests.csproj +++ b/backend/FwLite/FwDataMiniLcmBridge.Tests/FwDataMiniLcmBridge.Tests.csproj @@ -1,9 +1,6 @@ - net8.0 - enable - enable false true @@ -18,16 +15,16 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - + - all - runtime; build; native; contentfiles; analyzers; buildtransitive + all + runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/backend/FwLite/FwDataMiniLcmBridge/FieldWorksProjectList.cs b/backend/FwLite/FwDataMiniLcmBridge/FieldWorksProjectList.cs index 47cb91b57..f77bf944c 100644 --- a/backend/FwLite/FwDataMiniLcmBridge/FieldWorksProjectList.cs +++ b/backend/FwLite/FwDataMiniLcmBridge/FieldWorksProjectList.cs @@ -6,15 +6,17 @@ namespace FwDataMiniLcmBridge; public class FieldWorksProjectList(IOptions config) { + protected readonly IOptions _config = config; + public virtual IEnumerable EnumerateProjects() { - if (!Directory.Exists(config.Value.ProjectsFolder)) Directory.CreateDirectory(config.Value.ProjectsFolder); - foreach (var directory in Directory.EnumerateDirectories(config.Value.ProjectsFolder)) + if (!Directory.Exists(_config.Value.ProjectsFolder)) Directory.CreateDirectory(_config.Value.ProjectsFolder); + foreach (var directory in Directory.EnumerateDirectories(_config.Value.ProjectsFolder)) { var projectName = Path.GetFileName(directory); if (string.IsNullOrEmpty(projectName)) continue; if (!File.Exists(Path.Combine(directory, projectName + ".fwdata"))) continue; - yield return new FwDataProject(projectName, config.Value.ProjectsFolder); + yield return new FwDataProject(projectName, _config.Value.ProjectsFolder); } } diff --git a/backend/FwLite/FwDataMiniLcmBridge/FwDataMiniLcmBridge.csproj b/backend/FwLite/FwDataMiniLcmBridge/FwDataMiniLcmBridge.csproj index 5ab11b140..dd6ae3743 100644 --- a/backend/FwLite/FwDataMiniLcmBridge/FwDataMiniLcmBridge.csproj +++ b/backend/FwLite/FwDataMiniLcmBridge/FwDataMiniLcmBridge.csproj @@ -1,25 +1,22 @@  - net8.0 - enable - enable $(ApplicationDisplayVersion) $(ApplicationDisplayVersion) - - - - - - + + + + + + diff --git a/backend/FwLite/FwLiteDesktop/FwLiteDesktop.csproj b/backend/FwLite/FwLiteDesktop/FwLiteDesktop.csproj index 043dacd5d..71ce7fca5 100644 --- a/backend/FwLite/FwLiteDesktop/FwLiteDesktop.csproj +++ b/backend/FwLite/FwLiteDesktop/FwLiteDesktop.csproj @@ -2,7 +2,7 @@ - net8.0-windows10.0.19041.0 + net9.0-windows10.0.19041.0 @@ -80,7 +80,7 @@ - + diff --git a/backend/FwLite/FwLiteProjectSync.Tests/FwLiteProjectSync.Tests.csproj b/backend/FwLite/FwLiteProjectSync.Tests/FwLiteProjectSync.Tests.csproj index 0858009d0..abe85567f 100644 --- a/backend/FwLite/FwLiteProjectSync.Tests/FwLiteProjectSync.Tests.csproj +++ b/backend/FwLite/FwLiteProjectSync.Tests/FwLiteProjectSync.Tests.csproj @@ -1,10 +1,6 @@ - net8.0 - enable - enable - false true $(MSBuildProjectDirectory) @@ -19,16 +15,16 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + - + - all - runtime; build; native; contentfiles; analyzers; buildtransitive + all + runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/backend/FwLite/FwLiteProjectSync/FwLiteProjectSync.csproj b/backend/FwLite/FwLiteProjectSync/FwLiteProjectSync.csproj index 2d0c452f0..8cbde01b8 100644 --- a/backend/FwLite/FwLiteProjectSync/FwLiteProjectSync.csproj +++ b/backend/FwLite/FwLiteProjectSync/FwLiteProjectSync.csproj @@ -1,9 +1,6 @@  - net8.0 - enable - enable $(ApplicationDisplayVersion) $(ApplicationDisplayVersion) @@ -14,8 +11,8 @@ - - + + diff --git a/backend/FwLite/LcmCrdt.Tests/DataModelSnapshotTests.VerifyDbModel.verified.txt b/backend/FwLite/LcmCrdt.Tests/DataModelSnapshotTests.VerifyDbModel.verified.txt index 129ee865c..5e1e13fe7 100644 --- a/backend/FwLite/LcmCrdt.Tests/DataModelSnapshotTests.VerifyDbModel.verified.txt +++ b/backend/FwLite/LcmCrdt.Tests/DataModelSnapshotTests.VerifyDbModel.verified.txt @@ -335,4 +335,4 @@ Relational:ViewName: Relational:ViewSchema: Annotations: - ProductVersion: 8.0.4 \ No newline at end of file + ProductVersion: 8.0.11 \ No newline at end of file diff --git a/backend/FwLite/LcmCrdt.Tests/LcmCrdt.Tests.csproj b/backend/FwLite/LcmCrdt.Tests/LcmCrdt.Tests.csproj index 9f03df743..82a3eb3d8 100644 --- a/backend/FwLite/LcmCrdt.Tests/LcmCrdt.Tests.csproj +++ b/backend/FwLite/LcmCrdt.Tests/LcmCrdt.Tests.csproj @@ -1,9 +1,6 @@ - net8.0 - enable - enable false true @@ -15,14 +12,14 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - all - runtime; build; native; contentfiles; analyzers; buildtransitive + all + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/backend/FwLite/LcmCrdt.Tests/OpenProjectTests.cs b/backend/FwLite/LcmCrdt.Tests/OpenProjectTests.cs index cdaa72ab0..702431f66 100644 --- a/backend/FwLite/LcmCrdt.Tests/OpenProjectTests.cs +++ b/backend/FwLite/LcmCrdt.Tests/OpenProjectTests.cs @@ -10,6 +10,7 @@ public class OpenProjectTests public async Task OpeningAProjectWorks() { var sqliteConnectionString = "OpeningAProjectWorks.sqlite"; + if (File.Exists(sqliteConnectionString)) File.Delete(sqliteConnectionString); var builder = Host.CreateEmptyApplicationBuilder(null); builder.Services.AddLcmCrdtClient(); using var host = builder.Build(); diff --git a/backend/FwLite/LcmCrdt/LcmCrdt.csproj b/backend/FwLite/LcmCrdt/LcmCrdt.csproj index c2382ec8a..ce06a235f 100644 --- a/backend/FwLite/LcmCrdt/LcmCrdt.csproj +++ b/backend/FwLite/LcmCrdt/LcmCrdt.csproj @@ -1,9 +1,6 @@  - net8.0 - enable - enable $(ApplicationDisplayVersion) $(ApplicationDisplayVersion) @@ -14,12 +11,12 @@ - + - - - + + + diff --git a/backend/FwLite/LcmCrdt/LcmCrdtDbContext.cs b/backend/FwLite/LcmCrdt/LcmCrdtDbContext.cs index 525d1d8e6..3a303f643 100644 --- a/backend/FwLite/LcmCrdt/LcmCrdtDbContext.cs +++ b/backend/FwLite/LcmCrdt/LcmCrdtDbContext.cs @@ -10,7 +10,6 @@ namespace LcmCrdt; public class LcmCrdtDbContext(DbContextOptions dbContextOptions, IOptions options): DbContext(dbContextOptions), ICrdtDbContext { public DbSet ProjectData => Set(); - public IQueryable Snapshots => ((ICrdtDbContext)this).Snapshots; protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/backend/FwLite/LocalWebApp/LocalWebApp.csproj b/backend/FwLite/LocalWebApp/LocalWebApp.csproj index 6d03a3e54..301cc5491 100644 --- a/backend/FwLite/LocalWebApp/LocalWebApp.csproj +++ b/backend/FwLite/LocalWebApp/LocalWebApp.csproj @@ -1,9 +1,6 @@ - net8.0 - enable - enable Linux true false @@ -20,9 +17,9 @@ - - - + + + diff --git a/backend/FwLite/LocalWebApp/Routes/HistoryRoutes.cs b/backend/FwLite/LocalWebApp/Routes/HistoryRoutes.cs index 4ea387061..354d0e9ff 100644 --- a/backend/FwLite/LocalWebApp/Routes/HistoryRoutes.cs +++ b/backend/FwLite/LocalWebApp/Routes/HistoryRoutes.cs @@ -7,6 +7,7 @@ using LinqToDB.EntityFrameworkCore; using LocalWebApp.Hubs; using Microsoft.OpenApi.Models; +using MiniLcm.Models; namespace LocalWebApp.Routes; @@ -32,7 +33,7 @@ public static IEndpointConventionBuilder MapHistoryRoutes(this WebApplication ap { //todo requires the timestamp to be exact, otherwise the change made on that timestamp will not be included //consider using a commitId and looking up the timestamp, but then we should be exact to the commit which we aren't right now. - return await dataModel.GetAtTime(new DateTimeOffset(timestamp), entityId); + return await dataModel.GetAtTime(new DateTimeOffset(timestamp), entityId); }); group.MapGet("/{entityId}", (Guid entityId, ICrdtDbContext dbcontext) => diff --git a/backend/FwLite/MiniLcm.Tests/MiniLcm.Tests.csproj b/backend/FwLite/MiniLcm.Tests/MiniLcm.Tests.csproj index be07e4f4e..1e5de3a28 100644 --- a/backend/FwLite/MiniLcm.Tests/MiniLcm.Tests.csproj +++ b/backend/FwLite/MiniLcm.Tests/MiniLcm.Tests.csproj @@ -1,10 +1,6 @@ - net8.0 - enable - enable - false true @@ -12,9 +8,12 @@ - - - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/backend/FwLite/MiniLcm/MiniLcm.csproj b/backend/FwLite/MiniLcm/MiniLcm.csproj index 8f4dc0c48..7635880b1 100644 --- a/backend/FwLite/MiniLcm/MiniLcm.csproj +++ b/backend/FwLite/MiniLcm/MiniLcm.csproj @@ -1,16 +1,13 @@  - net8.0 - enable - enable $(ApplicationDisplayVersion) $(ApplicationDisplayVersion) - + diff --git a/backend/LexBoxApi/LexBoxApi.csproj b/backend/LexBoxApi/LexBoxApi.csproj index 238fc7e57..638ba148e 100644 --- a/backend/LexBoxApi/LexBoxApi.csproj +++ b/backend/LexBoxApi/LexBoxApi.csproj @@ -1,12 +1,8 @@ - net8.0 - enable - enable Linux true - dev 7392cddf-9b3b-441c-9316-203bb5c4a6bc 1 @@ -27,22 +23,23 @@ - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - - - + + + @@ -54,6 +51,7 @@ + diff --git a/backend/LexBoxApi/dev.Dockerfile b/backend/LexBoxApi/dev.Dockerfile index bbedcbe09..77d9b6d5d 100644 --- a/backend/LexBoxApi/dev.Dockerfile +++ b/backend/LexBoxApi/dev.Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build EXPOSE 80 EXPOSE 443 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ @@ -9,13 +9,13 @@ RUN mkdir -p /var/www && chown -R www-data:www-data /var/www USER www-data:www-data WORKDIR /src/backend # Copy the main source project files -COPY */*.csproj *.sln ./ +COPY */*.csproj *.sln Directory.Build.props ./ # move them into the proper sub folders, based on the name of the project RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p ${dir}/ && mv -v $file ${dir}/; done # Do the same for csproj files in slightly different hierarchies COPY harmony/src/*/*.csproj ./ RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p harmony/src/${dir}/ && mv -v $file harmony/src/${dir}/; done -COPY harmony/src/Directory.Build.props ./harmony/src/ +COPY harmony/src/Directory.Build.props harmony/Directory.Packages.props ./harmony/src/ COPY FwLite/*/*.csproj ./ RUN for file in $(ls *.csproj); do dir=${file%.*}; mkdir -p FwLite/${dir}/ && mv -v $file FwLite/${dir}/; done diff --git a/backend/LexCore/LexCore.csproj b/backend/LexCore/LexCore.csproj index 276363f1a..db0930955 100644 --- a/backend/LexCore/LexCore.csproj +++ b/backend/LexCore/LexCore.csproj @@ -1,14 +1,10 @@ - net8.0 - enable - enable - dev - + diff --git a/backend/LexData/DataKernel.cs b/backend/LexData/DataKernel.cs index e12fc003c..25dc734ca 100644 --- a/backend/LexData/DataKernel.cs +++ b/backend/LexData/DataKernel.cs @@ -1,5 +1,6 @@ using LexData.Configuration; using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -18,6 +19,9 @@ public static void AddLexData(this IServiceCollection services, options.EnableDetailedErrors(); options.UseNpgsql(serviceProvider.GetRequiredService>().Value.LexBoxConnectionString); options.UseProjectables(); + //todo remove this once this bug is fixed: https://github.com/dotnet/efcore/issues/35110 + //we ended up not upgrading to EF Core 9, so this was disabled for now, may or may not be needed in the future + // options.ConfigureWarnings(builder => builder.Ignore(RelationalEventId.PendingModelChangesWarning)); if (useOpenIddict) options.UseOpenIddict(); #if DEBUG options.EnableSensitiveDataLogging(); diff --git a/backend/LexData/LexData.csproj b/backend/LexData/LexData.csproj index 1ad6d57d9..65ede2fc7 100644 --- a/backend/LexData/LexData.csproj +++ b/backend/LexData/LexData.csproj @@ -1,28 +1,22 @@ - net8.0 - enable - enable - dev - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - + + + + + - + diff --git a/backend/LfClassicData/LfClassicData.csproj b/backend/LfClassicData/LfClassicData.csproj index cbe4974fa..2a35852ac 100644 --- a/backend/LfClassicData/LfClassicData.csproj +++ b/backend/LfClassicData/LfClassicData.csproj @@ -1,15 +1,12 @@  - net8.0 - enable - enable - - + + diff --git a/backend/LfNext/LcmDebugger/LcmDebugger.csproj b/backend/LfNext/LcmDebugger/LcmDebugger.csproj index e47e15988..92e8860a6 100644 --- a/backend/LfNext/LcmDebugger/LcmDebugger.csproj +++ b/backend/LfNext/LcmDebugger/LcmDebugger.csproj @@ -2,9 +2,6 @@ Exe - net8.0 - enable - enable diff --git a/backend/SyncReverseProxy/Dockerfile b/backend/SyncReverseProxy/Dockerfile deleted file mode 100644 index 8c431359b..000000000 --- a/backend/SyncReverseProxy/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base -WORKDIR /app -EXPOSE 80 -EXPOSE 443 - -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build -WORKDIR /src -COPY ["SyncReverseProxy/SyncReverseProxy.csproj", "SyncReverseProxy/"] -RUN dotnet restore "SyncReverseProxy/SyncReverseProxy.csproj" -COPY . . -WORKDIR "/src/SyncReverseProxy" -RUN dotnet build "SyncReverseProxy.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "SyncReverseProxy.csproj" -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "SyncReverseProxy.dll"] diff --git a/backend/SyncReverseProxy/SyncReverseProxy.csproj b/backend/SyncReverseProxy/SyncReverseProxy.csproj index 0a58ba985..fe72988bf 100644 --- a/backend/SyncReverseProxy/SyncReverseProxy.csproj +++ b/backend/SyncReverseProxy/SyncReverseProxy.csproj @@ -1,27 +1,23 @@ - net8.0 - enable - enable Linux LexSyncReverseProxy - dev - - + + - - + + - - - + + + - + diff --git a/backend/Testing/Testing.csproj b/backend/Testing/Testing.csproj index 3ccb8771e..a473fcdaa 100644 --- a/backend/Testing/Testing.csproj +++ b/backend/Testing/Testing.csproj @@ -1,10 +1,6 @@ - net8.0 - enable - enable - false $(MSBuildProjectDirectory) @@ -16,7 +12,7 @@ - + @@ -27,22 +23,22 @@ - - + + - - - - + + + + - + - runtime; build; native; contentfiles; analyzers; buildtransitive all + runtime; build; native; contentfiles; analyzers; buildtransitive runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/backend/harmony b/backend/harmony index 33b1aba76..c13987d13 160000 --- a/backend/harmony +++ b/backend/harmony @@ -1 +1 @@ -Subproject commit 33b1aba763633e8fc63f97b1d02332d1e1739c5a +Subproject commit c13987d13f7fa4c37e0ebdd28b04e42a31df7e4c diff --git a/frontend/tests/pages/userDashboardPage.ts b/frontend/tests/pages/userDashboardPage.ts index e5d284699..a99fa0d66 100644 --- a/frontend/tests/pages/userDashboardPage.ts +++ b/frontend/tests/pages/userDashboardPage.ts @@ -9,12 +9,17 @@ export class UserDashboardPage extends AuthenticatedBasePage { } async openProject(projectName: string, projectCode: string): Promise { + await this.selectGridView(); const projectHeader = this.page.getByRole('heading', {name: projectName}); const projectCard = this.page.locator('.card', {has: projectHeader}); await projectCard.click(); return new ProjectPage(this.page, projectName, projectCode).waitFor(); } + async selectGridView(): Promise { + await this.page.click('.i-mdi-grid'); + } + async clickCreateProject(): Promise { await this.page.getByRole('link', {name: /(Create|Request) Project/, exact: true}).click(); return new CreateProjectPage(this.page).waitFor();