From 76fc687fe96e005e1fef6d5138ad410827a0ced3 Mon Sep 17 00:00:00 2001 From: Nathan Mittelette <52243730+nathan-mittelette@users.noreply.github.com> Date: Sat, 1 Feb 2025 23:51:51 +0100 Subject: [PATCH] feat: add .NET 9 Support (#914) * feat: add .NET 9 Support Signed-off-by: Nathan Mittelette * chore: remove .NET 6/7 support --------- Signed-off-by: Nathan Mittelette Signed-off-by: Michael Tsfoni <80639729+mtsfoni@users.noreply.github.com> Co-authored-by: Michael Tsfoni <80639729+mtsfoni@users.noreply.github.com> --- .devcontainer/Ubuntu22.04/Dockerfile | 2 +- .github/workflows/dotnetcore.yml | 18 +++++++----------- .github/workflows/release.yml | 8 ++++---- .gitpod.yml | 5 ++--- CycloneDX.Tests/CycloneDX.Tests.csproj | 2 +- CycloneDX/CycloneDX.csproj | 4 +--- README.md | 5 +++-- semver.txt | 2 +- 8 files changed, 20 insertions(+), 26 deletions(-) diff --git a/.devcontainer/Ubuntu22.04/Dockerfile b/.devcontainer/Ubuntu22.04/Dockerfile index b52d8ecd..0ccfd4cb 100644 --- a/.devcontainer/Ubuntu22.04/Dockerfile +++ b/.devcontainer/Ubuntu22.04/Dockerfile @@ -4,5 +4,5 @@ RUN apt-get install -y --no-install-recommends wget=2.0.1 RUN apt-get install -y --no-install-recommends apt-transport-https=2.5.6 RUN curl -o ./packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb RUN dpkg -i packages-microsoft-prod.deb -RUN apt-get install -y --no-install-recommends dotnet-sdk-8.0=8.0 +RUN apt-get install -y --no-install-recommends dotnet-sdk-9.0=9.0 RUN rm -rf /var/lib/apt/lists/* diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index a082c0e4..26d6a663 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -21,7 +21,7 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: | - 8.x + 9.x - name: Build run: dotnet build /WarnAsError @@ -43,23 +43,19 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] - framework: ['net6.0','net7.0', 'net8.0'] + framework: ['net8.0', 'net9.0'] timeout-minutes: 30 steps: - uses: actions/checkout@v4.1.2 + - name: Setup dotnet 9 + uses: actions/setup-dotnet@v3.0.3 + with: + dotnet-version: '9.x' - name: Setup dotnet 8 uses: actions/setup-dotnet@v4 with: dotnet-version: '8.x' - - name: Setup dotnet 7 - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '7.x' - - name: Setup dotnet 6 - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '6.x' - name: Tests run: dotnet test --framework ${{ matrix.framework }} --collect:"XPlat Code Coverage;Format=cobertura" --results-directory "TestResults" # see https://github.com/danielpalme/ReportGenerator/blob/main/.github/workflows/ci.yml @@ -80,7 +76,7 @@ jobs: run: cat ./coveragereport/SummaryGithub.md >> $GITHUB_STEP_SUMMARY shell: bash - name: Upload coverage report artifact - if: ${{ matrix.os == 'ubuntu-latest' && matrix.framework == 'net8.0' }} + if: ${{ matrix.os == 'ubuntu-latest' && matrix.framework == 'net9.0' }} uses: actions/upload-artifact@v4 with: name: CoverageReport_${{ matrix.framework }}_${{ matrix.os }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b90e6464..e1cb9fb3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,11 +33,11 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: | - 8.x + 9.x # The tests should have already been run during the PR workflow, so this is really just a sanity check - name: Tests - run: dotnet test --framework net8.0 + run: dotnet test --framework net9.0 # Build and package everything, including the Docker image - name: Package release @@ -66,8 +66,8 @@ jobs: # Generate the JSON with the docker container as additional smoke test - name: Generate JSON SBOM - run: docker run --rm -v ${GITHUB_WORKSPACE}:/usr/src/project cyclonedx/cyclonedx-dotnet:${{ steps.package_release.outputs.version }} /usr/src/project/CycloneDX.sln -j -o /usr/src/project - + run: docker run --rm -v ${GITHUB_WORKSPACE}:/usr/src/project cyclonedx/cyclonedx-dotnet:${{ steps.package_release.outputs.version }} /usr/src/project/CycloneDX.sln -j -o /usr/src/project + - name: Publish package to NuGet env: NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} diff --git a/.gitpod.yml b/.gitpod.yml index 2aed0c42..dadaaaa6 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -8,12 +8,11 @@ tasks: wget --output-document="$DOTNET_ROOT/dotnet-install.sh" https://dot.net/v1/dotnet-install.sh chmod +x "$DOTNET_ROOT/dotnet-install.sh" "$DOTNET_ROOT/dotnet-install.sh" --channel 2.1 --install-dir "$DOTNET_ROOT" - "$DOTNET_ROOT/dotnet-install.sh" --channel 6.0 --install-dir "$DOTNET_ROOT" - "$DOTNET_ROOT/dotnet-install.sh" --channel 7.0 --install-dir "$DOTNET_ROOT" "$DOTNET_ROOT/dotnet-install.sh" --channel 8.0 --install-dir "$DOTNET_ROOT" + "$DOTNET_ROOT/dotnet-install.sh" --channel 9.0 --install-dir "$DOTNET_ROOT" dotnet tool install --global dotnet-reportgenerator-globaltool dotnet restore vscode: extensions: - - muhammad-sammy.csharp \ No newline at end of file + - muhammad-sammy.csharp diff --git a/CycloneDX.Tests/CycloneDX.Tests.csproj b/CycloneDX.Tests/CycloneDX.Tests.csproj index 802f25da..782f5ad6 100644 --- a/CycloneDX.Tests/CycloneDX.Tests.csproj +++ b/CycloneDX.Tests/CycloneDX.Tests.csproj @@ -4,7 +4,7 @@ true false - net8.0;net7.0;net6.0 + net9.0;net8.0 latest diff --git a/CycloneDX/CycloneDX.csproj b/CycloneDX/CycloneDX.csproj index d113aaa3..64240016 100644 --- a/CycloneDX/CycloneDX.csproj +++ b/CycloneDX/CycloneDX.csproj @@ -10,9 +10,7 @@ true dotnet-CycloneDX <_SkipUpgradeNetAnalyzersNuGetWarning>true - net8.0;net7.0;net6.0 - - + net9.0;net8.0 Major diff --git a/README.md b/README.md index 72ef809b..12d7fe31 100755 --- a/README.md +++ b/README.md @@ -13,15 +13,16 @@ The CycloneDX module for .NET creates a valid CycloneDX bill-of-material document containing an aggregate of all project dependencies. CycloneDX is a lightweight BOM specification that is easily created, human readable, and simple to parse. This module runs on -* .NET 6.0 -* .NET 7.0 * .NET 8.0 +* .NET 9.0 This module no longer runs on * .NET Core 2.1 * .NET Core 3.1 * .NET 5.0 +* .NET 6.0 +* .NET 7.0 * see https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core for more information ## Usage diff --git a/semver.txt b/semver.txt index 6aba2b24..ef8d7569 100755 --- a/semver.txt +++ b/semver.txt @@ -1 +1 @@ -4.2.0 +4.2.0 \ No newline at end of file