Skip to content

Commit da3551f

Browse files
committed
Merge remote-tracking branch 'upstream/master' into licensefile
Signed-off-by: Marius Thesing <[email protected]>
2 parents d91acc7 + 52d96ab commit da3551f

File tree

61 files changed

+4707
-568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+4707
-568
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,5 +202,5 @@ dotnet_diagnostic.CA2007.severity = suggestion
202202
dotnet_diagnostic.CA2000.severity = suggestion
203203
dotnet_style_operator_placement_when_wrapping = beginning_of_line
204204
tab_width = 2
205-
end_of_line = crlf
205+
end_of_line = lf
206206

.github/workflows/dotnetcore.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
with:
6666
dotnet-version: '8.x'
6767
- name: Tests
68-
run: dotnet test --framework ${{ matrix.framework }} --collect:"XPlat Code Coverage;Format=cobertura" --results-directory "TestResults"
68+
run: dotnet test CycloneDX.Tests --framework ${{ matrix.framework }} --collect:"XPlat Code Coverage;Format=cobertura" --results-directory "TestResults"
6969
# see https://github.com/danielpalme/ReportGenerator/blob/main/.github/workflows/ci.yml
7070
- name: ReportGenerator
7171
uses: danielpalme/ReportGenerator-GitHub-Action@ee0ae774f6d3afedcbd1683c1ab21b83670bdf8e # v5.5.1
@@ -85,7 +85,24 @@ jobs:
8585
shell: bash
8686
- name: Upload coverage report artifact
8787
if: ${{ matrix.os == 'ubuntu-latest' && matrix.framework == 'net10.0' }}
88-
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
88+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
8989
with:
9090
name: CoverageReport_${{ matrix.framework }}_${{ matrix.os }}
9191
path: coveragereport
92+
93+
# E2E tests require Docker (Testcontainers) and only target net10.0.
94+
# Run exclusively on ubuntu-latest where Docker is available on the runner.
95+
e2e-test:
96+
name: E2E Tests (ubuntu-latest, net10.0)
97+
runs-on: ubuntu-latest
98+
timeout-minutes: 60
99+
steps:
100+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
101+
- name: Setup dotnet 10
102+
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # v5.0.1
103+
with:
104+
dotnet-version: '10.x'
105+
- name: Locked restore
106+
run: dotnet restore --locked-mode
107+
- name: E2E Tests
108+
run: dotnet test CycloneDX.E2ETests --framework net10.0 --results-directory "TestResults"

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444

4545
# The tests should have already been run during the PR workflow, so this is really just a sanity check
4646
- name: Tests
47-
run: dotnet test --framework net10.0
47+
run: dotnet test CycloneDX.Tests --framework net10.0
4848

4949
# Build and package everything, including the Docker image
5050
- name: Package release
@@ -73,7 +73,7 @@ jobs:
7373

7474
# Generate the JSON with the docker container as additional smoke test
7575
- name: Generate JSON SBOM
76-
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
76+
run: docker run --rm --user $(id -u):$(id -g) -v ${GITHUB_WORKSPACE}:/usr/src/project cyclonedx/cyclonedx-dotnet:${{ steps.package_release.outputs.version }} /usr/src/project/CycloneDX.sln --output-format json -o /usr/src/project
7777

7878
- name: Publish package to NuGet
7979
env:

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ SBOM/
1717
TestResults/
1818
CycloneDX/Properties/launchSettings.json
1919
*.binlog
20+
*.DotSettings.user
2021
MSBuild_Logs/
22+
/.agent/
23+
bom.xml
24+
AGENTS.md

CHANGELOG.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [6.0.0] - 2026-02-08
11+
12+
> **⚠️ WARNING: This is a MAJOR release with breaking changes.**
13+
>
14+
> This release includes multiple significant changes that may affect compatibility:
15+
>
16+
> 1. **Removed deprecated CLI arguments** - Several CLI flags have been removed. Scripts, CI/CD pipelines, and automation using these flags will break.
17+
> 2. **Upgraded to .NET 10** - Runtime requirements have changed.
18+
> 3. **Updated System.CommandLine** - Upgraded from beta4 to v2.0.0 final, which includes breaking API changes that may affect command-line behavior.
19+
> 4. **Updated dependency versions** - NuGet packages, System.IO.Abstractions, and other dependencies have been upgraded.
20+
>
21+
> **Action required:** Test thoroughly in a non-production environment before upgrading. Review all sections below for changes that may affect your use case.
22+
23+
### Breaking Changes
24+
25+
- **Remove deprecated CLI arguments** (#996, 0ae5d6a)
26+
- Removed `--json`/`-j` flag (replaced by `--output-format json`)
27+
- Removed `-f` flag (replaced by `-fn`/`--filename`)
28+
- Removed `-d` flag (replaced by `-ed`/`--exclude-dev`)
29+
- Removed `-r` flag (replaced by `-rs`/`--scan-project-references`)
30+
- Removed `--disable-github-licenses`/`-dgl` flag (already default behavior)
31+
- Removed `json` property from `RunOptions` model
32+
- Updated all tests to use `outputFormat` enum instead of boolean `json` flag
33+
- Cleaned up legacy flag handling logic in `Program.cs` and `Runner.cs`
34+
- **Note:** `--out` flag was restored before release for backward compatibility (see Fixed section below)
35+
36+
- **Upgraded System.CommandLine to v2.0.0** (#989, e11f8e7)
37+
- Upgraded from `2.0.0-beta4.22272.1` to `2.0.0` (stable release)
38+
- This version includes breaking API changes from the beta
39+
- Command-line parsing behavior may differ in edge cases
40+
41+
- **Minimum .NET runtime requirement** (#989, e11f8e7)
42+
- Now requires .NET 10 runtime (upgraded from .NET 9)
43+
- Docker images now use `mcr.microsoft.com/dotnet/sdk:10.0`
44+
45+
### Added
46+
47+
- **Documentation update** (#987, f041ac2)
48+
- Added `.slnx` format to supported file types in README
49+
50+
### Changed
51+
52+
- **Dockerfile improvements** (#993, edf2bd9)
53+
- Implemented multi-stage build (build + runtime stages) for smaller images
54+
- Changed from tool installation to direct publish deployment
55+
- Added environment variables for non-root execution: `DOTNET_CLI_HOME`, `NUGET_PACKAGES`
56+
- Made `/tmp/dotnet-home` and `/tmp/nuget-packages` writable for any user (chmod 0755)
57+
- Changed entrypoint from `CycloneDX` to `dotnet /app/CycloneDX.dll`
58+
- Fixed handling when no path argument is provided (now shows help instead of error)
59+
- Made `path` argument optional with `ArgumentArity.ZeroOrOne`
60+
61+
- **Upgrade to .NET 10** (#989, e11f8e7)
62+
- Updated target framework to `net10.0`
63+
- Updated SDK image to `mcr.microsoft.com/dotnet/sdk:10.0`
64+
- Updated System.IO.Abstractions from 21.0.2 to 22.1.0
65+
- Updated test runner packages (xunit.runner.visualstudio, coverlet.collector)
66+
- Fixed devcontainer Ubuntu 22.04 Dockerfile
67+
68+
- **Dependency updates**
69+
- actions/checkout: 5.0.0 → 6.0.1 (#986, #991)
70+
- actions/upload-artifact: 4.6.2 → 5.0.0 (#979)
71+
- actions/setup-dotnet: 5.0.0 → 5.0.1 (#988)
72+
- danielpalme/ReportGenerator-GitHub-Action (version bump) (#992)
73+
74+
### Fixed
75+
76+
- **Restore `--out` parameter for backward compatibility**
77+
- Reintroduced `--out` flag as a deprecated alias for `--output`/`-o` to maintain compatibility with existing GitHub Actions and CI/CD pipelines
78+
- The parameter is marked as deprecated with a message directing users to use `--output` instead
79+
- If both `--output` and `--out` are provided, `--output` takes precedence
80+
- Prevents breaking existing automation while encouraging migration to the new flag
81+
82+
- **Restore `--json` parameter for backward compatibility**
83+
- Reintroduced `--json` flag as a deprecated alias for `--output-format json` to maintain compatibility with existing GitHub Actions and CI/CD pipelines
84+
- The parameter is marked as deprecated with a message directing users to use `--output-format` instead
85+
- If `--json` is provided, it sets the output format to JSON
86+
- Prevents breaking existing automation while encouraging migration to the new flag
87+
88+
- **Missing using statement** (161766f)
89+
- Added missing `using System;` directive in Program.cs
90+
91+
### Security
92+
93+
- **Workflow security hardening** (#975, 39b8986)
94+
- Changed global `permissions: contents: read` to `permissions: read-all`
95+
- Follows principle of least privilege by limiting default permissions
96+
97+
- **Pin GitHub Actions versions** (1145c82)
98+
- Pinned all GitHub Actions to specific commit SHAs for reproducibility
99+
100+
- **Enable NuGet package locking** (#972, fad44df)
101+
- Added `packages.lock.json` files for both main and test projects
102+
- Enabled `RestorePackagesWithLockFile` in Directory.Build.props
103+
- Updated CI/CD workflows to use locked restore
104+
105+
- **Update NuGet dependencies** (#973, e930da1)
106+
- Bumped `NuGet.ProjectModel` from 6.9.1 to 6.14.0
107+
- Bumped `NuGet.Protocol` from 6.9.1 to 6.14.0
108+
109+
## [5.5.0] - 2025-10-06
110+
111+
### Changed
112+
113+
- Initial baseline for changelog tracking

0 commit comments

Comments
 (0)