diff --git a/.github/workflows/build-core-lib.yml b/.github/workflows/build-core-lib.yml index b5a316fbb..46a83666e 100644 --- a/.github/workflows/build-core-lib.yml +++ b/.github/workflows/build-core-lib.yml @@ -29,7 +29,7 @@ env: jobs: Build: - name: Build and Test Code Lib + name: Build and Test Core Lib runs-on: windows-latest permissions: @@ -46,13 +46,19 @@ jobs: with: dotnet-version: 8.0.x + - name: Setup .NET 9.0 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + dotnet-quality: preview + # Build - name: Restore run: dotnet restore - name: Build - run: dotnet build ${{ env.PROJECTS }} --configuration Release -warnaserror + run: dotnet build ${{ env.PROJECTS }} --configuration Release working-directory: ${{ github.workspace }} # Unit Tests @@ -117,11 +123,10 @@ jobs: path: ./TestResults/ExtractedTests.md # Test Coverage - - name: Report Generator uses: danielpalme/ReportGenerator-GitHub-Action@5.2.4 with: - reports: '**/coverage.cobertura.xml' + reports: '**/coverage.net8.0.cobertura.xml;**/coverage.net9.0.cobertura.xml' targetdir: 'CoverageReports' title: 'Unit Tests Code Coverage' classfilters: '-Microsoft.FluentUI.AspNetCore.Components.DesignTokens.*' @@ -143,6 +148,7 @@ jobs: runs-on: ubuntu-latest name: Build and Deploy Demo site env: + DOTNET_VERSION: "net9.0" DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: true @@ -161,13 +167,13 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: | - 8.0.x + 9.0.x include-prerelease: true - name: .NET Builld - run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - name: .NET Publish - run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - name: Deploy demo site to new Azure Static Web App id: builddeploy diff --git a/.github/workflows/cicd_publish.yml b/.github/workflows/cicd_publish.yml index c45a41657..06b767311 100644 --- a/.github/workflows/cicd_publish.yml +++ b/.github/workflows/cicd_publish.yml @@ -13,20 +13,13 @@ on: paths-ignore: - '**/*.gitignore' - '**/*.gitattributes' - - workflow_dispatch: - branches: - - main - paths-ignore: - - '**/*.gitignore' - - '**/*.gitattributes' - jobs: build_deploy_demo: if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest name: Build and deploy Demo site env: + DOTNET_VERSION: "net9.0" DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: true @@ -46,7 +39,7 @@ jobs: with: dotnet-version: | 8.0.x - include-prerelease: true + 9.0.x - name: NPM Install uses: actions/setup-node@v4 @@ -57,10 +50,10 @@ jobs: - run: npm install "src/Core.Assets/" - name: .NET Builld - run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - name: .NET Publish - run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - name: Deploy demo site to new Azure Static Web App id: builddeploy diff --git a/.github/workflows/deploy_preview.yml b/.github/workflows/deploy_preview.yml index 2e6a673b9..487096712 100644 --- a/.github/workflows/deploy_preview.yml +++ b/.github/workflows/deploy_preview.yml @@ -3,7 +3,7 @@ name: Deploy preview to Azure Static Web Apps on: # Allow manually running the workflow workflow_dispatch: - + push: branches: - dev @@ -13,10 +13,11 @@ on: jobs: build_deploy_demo: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') runs-on: ubuntu-latest - name: Build and deploy Demo site + name: Build and deploy Demo site env: + DOTNET_VERSION: "net9.0" DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: true @@ -30,20 +31,24 @@ jobs: steps: - name: Checkout source uses: actions/checkout@v4 - + - name: .NET Setup SDKs uses: actions/setup-dotnet@v4 with: - dotnet-version: | - 8.0.x - include-prerelease: true - - - name: .NET Builld - run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - - - name: .NET Publish - run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f net8.0 -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true - + dotnet-version: 8.0.x + + - name: .NET Setup SDKs + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + dotnet-quality: preview + + - name: .NET Builld + run: dotnet build ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + + - name: .NET Publish + run: dotnet publish ${{ env.PROJECT }} -c ${{ env.BUILD_CONFIG }} -o publish -f ${{ env.DOTNET_VERSION }} -r linux-x64 --self-contained=true -p:BuildNumber=$BUILD_NUMBER -p:SourceRevisionId=$GITHUB_SHA -p:ContinuousIntegrationBuild=true + - name: Deploy demo site to new Azure Static Web App id: builddeploy uses: Azure/static-web-apps-deploy@v1 @@ -61,7 +66,7 @@ jobs: destroy: if: github.event_name == 'pull_request' && github.event.action == 'closed' runs-on: ubuntu-latest - name: Close Pull Request Job + name: Close Pull Request Job steps: - name: Close Pull Request on new Azure Static Web App id: closepullrequest diff --git a/Directory.Build.props b/Directory.Build.props index e97086aa3..c5bb2ced4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,15 +12,15 @@ $(MSBuildThisFileDirectory) true - 4.9.4 - 4.9.4 + 4.10.0 + 4.10.0 $(VersionFile) $(VersionFile) true - + true true diff --git a/Directory.Packages.props b/Directory.Packages.props index 27dce1dc2..0677d2ec2 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,41 +1,69 @@ true - 8.0.0 - 8.0.7 - 8.0.7 + 8.0.0 + 8.0.8 + 8.0.8 + 9.0.0-preview.7.24405.7 + 9.0.0-preview.7.24406.2 + 9.0.0-preview.7.24405.3 - - + + - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/contributing.md b/docs/contributing.md index 9ba84e0f8..a80f9e596 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -4,7 +4,7 @@ ### Machine setup -To begin you'll need Git, .NET, and NodeJS setup on your machine. +To begin you'll need Git, .NET, and NodeJS (v22.x or higher) setup on your machine. The `fluentui-blazor` repository uses Git as its source control system. If you haven't already installed it, you can download it [here](https://git-scm.com/downloads) or if you prefer a GUI-based approach, try [GitHub Desktop](https://desktop.github.com/). diff --git a/docs/using-latest-daily.md b/docs/using-latest-daily.md index 11e8f94de..e6fc188d7 100644 --- a/docs/using-latest-daily.md +++ b/docs/using-latest-daily.md @@ -1,31 +1,31 @@ -# Set up your machine to use the latest FluentUI-Blazor package +# Set up your machine to use the latest Fluent UI Blazor package -These instructions will get you set up with the latest build of **FluentUI-Blazor**. +These instructions will get you set up with the **newest (potentially unstable!)** version of the Fluent UI Blazor package. + +Each time a commit is pushed into the `main` or `dev` branches, the **Core** package is published to a special NuGet feed (not hosted on NuGet). -Each time a commit is pushed into the `main` ou `dev`, the **Core** package is published on a special NuGet repository. -Install the latest [Visual Studio 2022 Preview version](https://visualstudio.microsoft.com/vs/preview/) for the tooling. **This package is a preliminary version and are not intended for production use. It is intended to be used to test the latest feature and bug fix.** -If you just want the last final release of **FluentUI-Blazor**, the packages are on [NuGet.org](https://www.nuget.org/packages/Microsoft.FluentUI.AspNetCore.Components). +If you just want the latest **released** version, the packages are on [NuGet.org](https://www.nuget.org/packages/Microsoft.FluentUI.AspNetCore.Components). ## Add necessary NuGet feed -The latest builds are pushed to a special feed, which you need to add: +The newest builds are pushed to a special feed, which you need to add in Visual Studio or through: ```sh dotnet nuget add source --name dotnet8 https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json ``` -As usual this will add the feed to any existing NuGet.config in the directory or above, -or else in the global NuGet.config. See [configuring NuGet behavior](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) to read more about that. +This will add the feed to any existing NuGet.config in the current directory or above, or else +in the global NuGet.config. See [configuring NuGet behavior](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) to read more about that. -Alternatively, if you are using Visual Studio, you can [Install and manage packages in Visual Studio](https://learn.microsoft.com/nuget/consume-packages/install-use-packages-visual-studio#package-sources) +If you are using Visual Studio, you can [Install and manage packages in Visual Studio](https://learn.microsoft.com/nuget/consume-packages/install-use-packages-visual-studio#package-sources) and add the feed `https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json` there. ## Documentation -The documentation for this preliminary version is available at [https://preview.fluentui-blazor.net/](https://preview.fluentui-blazor.net/). +Documentation and examples for this preliminary version are available at [https://preview.fluentui-blazor.net/](https://preview.fluentui-blazor.net/). ## Contributing diff --git a/eng/pipelines/version.yml b/eng/pipelines/version.yml index b0e501b9c..5779153e2 100644 --- a/eng/pipelines/version.yml +++ b/eng/pipelines/version.yml @@ -2,5 +2,5 @@ variables: # File and Package version # dev branch: 1.2.4-Preview-23282-1' (PackageSuffix is always ignored in Dev branch) # main branch: 1.2.4-RC.1' (PackageSuffix is ignored, if empty, in Main branch) - FileVersion: '4.9.3' # Set the next final version here. + FileVersion: '4.10.0' # Set the next final version here. PackageSuffix: '' diff --git a/examples/Demo/AssetExplorer/FluentUI.Demo.AssetExplorer.csproj b/examples/Demo/AssetExplorer/FluentUI.Demo.AssetExplorer.csproj index 0e31a8e4f..4512e8b7f 100644 --- a/examples/Demo/AssetExplorer/FluentUI.Demo.AssetExplorer.csproj +++ b/examples/Demo/AssetExplorer/FluentUI.Demo.AssetExplorer.csproj @@ -1,7 +1,7 @@ - net8.0 + net8.0;net9.0 enable enable true @@ -14,6 +14,6 @@ - + diff --git a/examples/Demo/Client/FluentUI.Demo.Client.csproj b/examples/Demo/Client/FluentUI.Demo.Client.csproj index 0aee35dd2..5b31b0997 100644 --- a/examples/Demo/Client/FluentUI.Demo.Client.csproj +++ b/examples/Demo/Client/FluentUI.Demo.Client.csproj @@ -1,7 +1,7 @@ - net8.0 + net8.0;net9.0 enable enable latest diff --git a/examples/Demo/Server/FluentUI.Demo.Server.csproj b/examples/Demo/Server/FluentUI.Demo.Server.csproj index 7055c1a04..fc620976b 100644 --- a/examples/Demo/Server/FluentUI.Demo.Server.csproj +++ b/examples/Demo/Server/FluentUI.Demo.Server.csproj @@ -1,7 +1,7 @@ - net8.0 + net8.0; net9.0 enable enable latest diff --git a/examples/Demo/Shared/FluentUI.Demo.Shared.csproj b/examples/Demo/Shared/FluentUI.Demo.Shared.csproj index 52c121f28..90ffe9658 100644 --- a/examples/Demo/Shared/FluentUI.Demo.Shared.csproj +++ b/examples/Demo/Shared/FluentUI.Demo.Shared.csproj @@ -1,6 +1,6 @@ - net8.0 + net8.0; net9.0 enable enable latest @@ -52,6 +52,10 @@ + + + + diff --git a/src/Core.Assets/Microsoft.FluentUI.AspNetCore.Components.Assets.esproj b/src/Core.Assets/Microsoft.FluentUI.AspNetCore.Components.Assets.esproj index 22c6c82b2..3ee9c52bb 100644 --- a/src/Core.Assets/Microsoft.FluentUI.AspNetCore.Components.Assets.esproj +++ b/src/Core.Assets/Microsoft.FluentUI.AspNetCore.Components.Assets.esproj @@ -1,4 +1,4 @@ - + dist\ Microsoft.FluentUI.AspNetCore.Components diff --git a/src/Core.Assets/esbuild.config.mjs b/src/Core.Assets/esbuild.config.mjs index c9b0ba253..759a9b8bd 100644 --- a/src/Core.Assets/esbuild.config.mjs +++ b/src/Core.Assets/esbuild.config.mjs @@ -1,5 +1,5 @@ import * as esbuild from 'esbuild' -import pkg from './package.json' assert { type: 'json' } +import pkg from './package.json' with { type: 'json' } await esbuild.build({ entryPoints: [ pkg.source ], diff --git a/src/Core/Components/DataGrid/FluentDataGrid.razor.cs b/src/Core/Components/DataGrid/FluentDataGrid.razor.cs index 9aa3dfffc..a72e9acc5 100644 --- a/src/Core/Components/DataGrid/FluentDataGrid.razor.cs +++ b/src/Core/Components/DataGrid/FluentDataGrid.razor.cs @@ -246,7 +246,7 @@ public partial class FluentDataGrid : FluentComponentBase, IHandleEve /// /// Gets the first (optional) SelectColumn /// - internal IEnumerable> SelectColumns => _columns.Where(col => col is SelectColumn).Cast>(); + internal IEnumerable> SelectColumns => _columns.OfType>(); private ElementReference? _gridReference; private Virtualize<(int, TGridItem)>? _virtualizeComponent; diff --git a/src/Core/Microsoft.FluentUI.AspNetCore.Components.csproj b/src/Core/Microsoft.FluentUI.AspNetCore.Components.csproj index c73f938ca..089e93063 100644 --- a/src/Core/Microsoft.FluentUI.AspNetCore.Components.csproj +++ b/src/Core/Microsoft.FluentUI.AspNetCore.Components.csproj @@ -1,6 +1,6 @@ - net8.0 + net8.0;net9.0 Microsoft.FluentUI.AspNetCore.Components A set of Blazor components wrapping Microsoft’s official Fluent UI Web Components. They implement the latest state of the Fluent design language, are built on FAST and work in every major browser. diff --git a/src/Extensions/DataGrid.EntityFrameworkAdapter/Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter.csproj b/src/Extensions/DataGrid.EntityFrameworkAdapter/Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter.csproj index 2d394f7ad..10d4dfa2f 100644 --- a/src/Extensions/DataGrid.EntityFrameworkAdapter/Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter.csproj +++ b/src/Extensions/DataGrid.EntityFrameworkAdapter/Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter.csproj @@ -1,7 +1,7 @@ - net8.0 + net8.0;net9.0 Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter Microsoft © Microsoft Corporation. All rights reserved. diff --git a/tests/Core/Microsoft.FluentUI.AspNetCore.Components.Tests.csproj b/tests/Core/Microsoft.FluentUI.AspNetCore.Components.Tests.csproj index 8a437f05a..f017eb8fc 100644 --- a/tests/Core/Microsoft.FluentUI.AspNetCore.Components.Tests.csproj +++ b/tests/Core/Microsoft.FluentUI.AspNetCore.Components.Tests.csproj @@ -1,7 +1,7 @@ - net8.0 + net8.0;net9.0 enable enable latest