diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 633b490..14b6d74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,8 +49,11 @@ jobs: git tag --list - uses: actions/setup-dotnet@v1 with: + # .NET 7 is sadly required for the licenses check tool + # https://github.com/tomchavakis/nuget-license/issues/200 dotnet-version: | 6.0.x + 7.0.x 8.0.x source-url: https://nuget.pkg.github.com/elastic/index.json env: diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/NOTICE.txt b/NOTICE.txt new file mode 100644 index 0000000..bfdee3d --- /dev/null +++ b/NOTICE.txt @@ -0,0 +1,2 @@ +Elastic .NET OpenTelemetry Distribution +Copyright 2012-2024 Elasticsearch B.V. diff --git a/build/forbidden-license-types.json b/build/forbidden-license-types.json new file mode 100644 index 0000000..725a7bc --- /dev/null +++ b/build/forbidden-license-types.json @@ -0,0 +1 @@ +["AGPL-3.0-only", "OSL-3.0", "NPOSL-3.0", "AFL-3.0", "APSL-1.2", "RPSL-1.0", "RPL-1.5", "HPL"] diff --git a/build/scripts/CommandLine.fs b/build/scripts/CommandLine.fs index e946bd2..321e6a0 100644 --- a/build/scripts/CommandLine.fs +++ b/build/scripts/CommandLine.fs @@ -17,6 +17,7 @@ type Build = | [] PristineCheck | [] GeneratePackages + | [] ValidateLicenses | [] ValidatePackages | [] GenerateReleaseNotes | [] GenerateApiChanges @@ -39,6 +40,7 @@ with // steps | PristineCheck | GeneratePackages + | ValidateLicenses | ValidatePackages | GenerateReleaseNotes | GenerateApiChanges -> "Undocumented, dependent target" diff --git a/build/scripts/Targets.fs b/build/scripts/Targets.fs index da74952..adaff74 100644 --- a/build/scripts/Targets.fs +++ b/build/scripts/Targets.fs @@ -30,7 +30,7 @@ let private version _ = let version = Software.Version printfn $"Informational version: %s{version.AsString}" printfn $"Semantic version: %s{version.NormalizeToShorter()}" - + let private generatePackages _ = exec { run "dotnet" "pack" } let private pristineCheck (arguments:ParseResults) = @@ -55,6 +55,12 @@ let private test _ = ) } +let private validateLicenses _ = + let args = ["-u"; "-t"; "-i"; "Elastic.OpenTelemetry.sln"; "--use-project-assets-json" + "--forbidden-license-types"; "build/forbidden-license-types.json" + "--packages-filter"; "#System\..*#";] + exec { run "dotnet" (["dotnet-project-licenses"] @ args) } + let private validatePackages _ = let packagesPath = Paths.ArtifactPath "package" let output = Paths.RelativePathToRoot <| packagesPath.FullName @@ -124,12 +130,13 @@ let Setup (parsed:ParseResults) = | Release -> Build.Cmd [PristineCheck; Test] - [GeneratePackages; ValidatePackages; GenerateReleaseNotes; GenerateApiChanges] + [ValidateLicenses; GeneratePackages; ValidatePackages; GenerateReleaseNotes; GenerateApiChanges] release // steps | PristineCheck -> Build.Step pristineCheck | GeneratePackages -> Build.Step generatePackages + | ValidateLicenses -> Build.Step validateLicenses | ValidatePackages -> Build.Step validatePackages | GenerateReleaseNotes -> Build.Step generateReleaseNotes | GenerateApiChanges -> Build.Step generateApiChanges diff --git a/dotnet-tools.json b/dotnet-tools.json index bb26c1d..602fd8b 100644 --- a/dotnet-tools.json +++ b/dotnet-tools.json @@ -25,6 +25,12 @@ "commands": [ "nupkg-validator" ] + }, + "dotnet-project-licenses": { + "version": "2.7.1", + "commands": [ + "dotnet-project-licenses" + ] } } } \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 3822a2f..0f49414 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -17,17 +17,16 @@ - + + + nuget-icon.png True nuget-icon.png - - True - LICENSE - +