Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: oss-review-toolkit/ort
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 55.0.0
Choose a base ref
...
head repository: oss-review-toolkit/ort
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 55.1.0
Choose a head ref

Commits on Mar 20, 2025

  1. Copy the full SHA
    42af1f5 View commit details
  2. Copy the full SHA
    6827784 View commit details

Commits on Mar 21, 2025

  1. build(web-app-template): Update syntax for version properties

    Use the new version properties to configure Node and Yarn as a
    preparation for upgrading to Kotlin 2.1.20. Update comments accordingly,
    and only apply the `YarnPlugin` now as it applies the `NodeJsRootPlugin`
    itself.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 21, 2025
    Copy the full SHA
    a2689a7 View commit details
  2. Copy the full SHA
    1f22ea4 View commit details
  3. chore(spdx): Remove else from an exhaustive when

    This will become a compiler warning with Kotlin 2.1.20.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 21, 2025
    Copy the full SHA
    00f6207 View commit details
  4. deps: Update Kotlin to version 2.1.20

    This requires to update the KSP plugin at the same time.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    renovate[bot] authored and sschuberth committed Mar 21, 2025
    Copy the full SHA
    4dfeef2 View commit details
  5. chore(node): Align the plugin descriptions of all node managers

    Signed-off-by: Frank Viernau <frank_viernau@epam.com>
    fviernau authored and sschuberth committed Mar 21, 2025
    Copy the full SHA
    eb3e746 View commit details
  6. feat(helper-cli): Extend PackageList by a declaredLicense set

    When a project does not use a package manager (supported by ORT), the
    helper-cli provides one alternative way to create an analyzer result
    from a package list file. Allow to also inject the `declaredLicense` to
    enable corresponding use cases.
    
    Signed-off-by: Frank Viernau <x9fviern@zeiss.com>
    fviernau authored and sschuberth committed Mar 21, 2025
    Copy the full SHA
    0ee7d53 View commit details
  7. feat(npm): Speed-up getting the remote package details

    Obtaining the package details via `npm info` is a performance
    bottleneck of ORT's NPM package manager. Request the package details
    for all packages upfront, in parallel to reduce execution time.
    Experiments on a development machine show that execution of `NpmFunTest`
    now takes `1 min 13 sec` instead of `3 min 47 sec`.
    
    Fixes: #9950.
    
    Signed-off-by: Frank Viernau <x9fviern@zeiss.com>
    fviernau committed Mar 21, 2025
    Copy the full SHA
    619221d View commit details
  8. chore(node): Use buildSet for an NPM function that builds a set

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth authored and fviernau committed Mar 21, 2025
    Copy the full SHA
    cbd06e5 View commit details
  9. docs(website): Add links for named entities in the footer

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 21, 2025
    Copy the full SHA
    2d35a97 View commit details
  10. feat(website): Replace the title text with ORT's logo

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 21, 2025
    Copy the full SHA
    e97f46e View commit details

Commits on Mar 22, 2025

  1. build(cli): Remove a deprecated GraalVM option that is now the default

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 22, 2025
    Copy the full SHA
    8eab579 View commit details
  2. fix(plugins): Do not write "null" as string for configClass

    In case `configClass` is null, write `null` instead of "null".
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 22, 2025
    Copy the full SHA
    6a64b8f View commit details
  3. test(bazel): Update expected results

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 22, 2025
    Copy the full SHA
    fa3362f View commit details

Commits on Mar 24, 2025

  1. Copy the full SHA
    2585bc9 View commit details
  2. docs(model): Improve PackageConfiguration class docs

    Explain the relationship to `RepositoryConfiguration`.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 24, 2025
    Copy the full SHA
    9663709 View commit details
  3. deps(gradle): Upgrade SVNKit to the new "com" artifact group

    Note that only the Maven artifact publishing location changed, but the
    Java packages names are still the same.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 24, 2025
    Copy the full SHA
    190a1b1 View commit details

Commits on Mar 25, 2025

  1. Copy the full SHA
    888c785 View commit details
  2. docs(model): Fix a typo in PackageConfiguration class docs

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 25, 2025
    Copy the full SHA
    3a9bfb3 View commit details
  3. Copy the full SHA
    e7d384a View commit details
  4. fix(Maven): Add the Maven Wagon HTTP provider

    When fetching metadata for snapshot artifacts, Tycho seems to use
    Wagon to download this data from repositories. So, the Wagon HTTP
    provider needs to be present on the classpath.
    
    The exact circumstances when Tycho uses Wagon are unclear; but
    analyzing a real-life project failed with an error message that no
    wagon could be found supporting the protocol "https". Adding this
    artifact to the classpath fixed the issue.
    
    Signed-off-by: Oliver Heger <oliver.heger@bosch.io>
    oheger-bosch authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    d2927d8 View commit details
  5. test(python): Update expected results

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 25, 2025
    Copy the full SHA
    95e364b View commit details
  6. refactor(conan): Introduce version-specific handler

    This handler contain the calls and logic specific to a given Conan version.
    The functions left in the Conan package manager are Conan version agnostic.
    This is preliminary work for the support of Conan 2.
    
    Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
    nnobelis authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    5bbafe5 View commit details
  7. refactor(conan): Change the model to introduce an interface `PackageI…

    …nfo`
    
    This interface contains the properties common to all [PackageInfo],
    regardless of their Conan version.
    This is preliminary work for the support of Conan 2.
    
    Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
    nnobelis authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    3f2aa2c View commit details
  8. feat(conan): Add support for Conan 2

    The Conan package manager now supports Conan version 2 executable. Create a
    new handler to support the differences between Conan 1 and Conan 2 data
    models.
    This first implementation is not perfect as there are some shortcomings
    outlined in the functional tests: Conan 2 returns more packages in the
    dependency tree than Conan 1. Additionally, sometimes those packages are
    resolved at a higher version compared to Conan 1.
    
    Unfortunately, with the current configuration, it is not possible to have
    a functional test that tests both versions of Conan at the same time: Only
    one "conan" command can be installed and made available on the PATH
    environment. A future commit will add a parameter to the package manager to
    address this issue.
    
    Fixes #8383.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
    nnobelis authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    19427ac View commit details
  9. feat(conan): Add a parameter to analyze projects with Conan 2

    The parameter 'useConan2' of the Conan package manager makes the latter run
    the 'conan2' command instead of the 'conan' one. It should be used in a
    setup where ORT must be able to scan both Conan 1 and Conan 2 projects, for
    instance a CI using the ORT Docker image for compliance check.
    This commit makes the `ConanFunTest` successful again.
    
    Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
    nnobelis authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    7637e0f View commit details
  10. feat(docker): Add Conan 2 to the Docker image

    This command is available under the name 'conan2'.
    
    Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
    nnobelis authored and sschuberth committed Mar 25, 2025
    Copy the full SHA
    c799222 View commit details
  11. Copy the full SHA
    409b482 View commit details

Commits on Mar 26, 2025

  1. Copy the full SHA
    f1de6fc View commit details
  2. chore(model): Simplify loading OrtConfiguration

    Since version 2.8.0 [1], Hoplite can load configuration nested under a
    `prefix`. Use that feature instead of using the artificial
    `OrtConfigurationWrapper` class.
    
    [1]: https://github.com/sksamuel/hoplite/releases/tag/v2.8.0
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 26, 2025
    Copy the full SHA
    c203aa3 View commit details
  3. refactor: Use Jackson's withRootName() to write nested configuration

    Remove remaining usages of `OrtConfigurationWrapper`. Note that YAML is
    implicitly always "pretty printed", so there is no need for using an
    explicit writer for that.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 26, 2025
    Copy the full SHA
    193a5fa View commit details
  4. chore(commands): Make it explicit that the reference config always ex…

    …ists
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 26, 2025
    Copy the full SHA
    486f0fc View commit details
  5. chore(model): Remove the now unused OrtConfigurationWrapper class

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 26, 2025
    Copy the full SHA
    bef2cdc View commit details
  6. feat(model): Improve the check for empty configuration sources

    Do not silently ignore "real" failures by falling back to the default
    configuration if just `sources` are empty. Instead, check for
    `UndefinedTree` as the proper failure that signals empty configuration.
    Additionally, because the behavior for empty configuration is different
    with `addEnvironmentSource()`, also still check for `sources` being empty,
    but only in combination with a `MissingConfigValue` failure.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 26, 2025
    Copy the full SHA
    a3a7615 View commit details
  7. test(go): Replace the go.mongodb.org/mongo-driver dependency

    The test using `go-as-dep-with-transitive-deps` has become and still is
    flaky on CI. It seems this is due to network issues reaching host
    `go.mongodb.org`.
    
    Simply replace the dependency with a different one, so that the graph
    returned by [1] still contains an edge starting from `main` module to
    `go` and from `go` to one of it's dependencies. This should ensure the
    test still covers the scenario it's originally been introduced for,
    see [2].
    
    [1]: `go mod graph`
    [2]: #8032
    
    Signed-off-by: Frank Viernau <frank_viernau@epam.com>
    fviernau authored and sschuberth committed Mar 26, 2025
    Copy the full SHA
    94f3898 View commit details
  8. Copy the full SHA
    eade9f9 View commit details
  9. Copy the full SHA
    5511fed View commit details
  10. Copy the full SHA
    15f2b4f View commit details

Commits on Mar 27, 2025

  1. fix(cli): Do not output ORT_* environment variables unless set

    The previous code did always output values for `ORT_CONFIG_DIR` and
    `ORT_DATA_DIR` even if these variables were not set, in which case their
    internal defaults were shown. This is confusion when dealing with reports
    from users, as it is unclear whether these variables were actually set.
    
    Change the code to only show values for these variables if they really
    were set, aligning with the behavior for third-party variables shown.
    
    While at it, also show `ORT_TOOLS_DIR` if set.
    
    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 27, 2025
    Copy the full SHA
    298a964 View commit details
  2. chore(model): Align with OrtMain and use the absolute config file path

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 27, 2025
    Copy the full SHA
    027a8d6 View commit details
  3. chore(model): Add logging when falling back to default configuration

    Signed-off-by: Sebastian Schuberth <sebastian@doubleopen.org>
    sschuberth committed Mar 27, 2025
    Copy the full SHA
    4d1b500 View commit details
  4. Copy the full SHA
    a07f848 View commit details
  5. chore(conan): Move error logging to the place where the error can happen

    For Conan 1 the `conanDataFile` can never be `null`. Move the logging to
    the Conan 2 implementation to simplify the calling code.
    
    Signed-off-by: Marcel Bochtler <marcel.bochtler@bosch.com>
    MarcelBochtler committed Mar 27, 2025
    Copy the full SHA
    267938a View commit details
  6. chore(conan): Provide EMPTY property for an empty conandata file

    This improves the readability of the calling code.
    
    Signed-off-by: Marcel Bochtler <marcel.bochtler@bosch.com>
    MarcelBochtler committed Mar 27, 2025
    Copy the full SHA
    833558a View commit details
  7. feat(conan): Allow packages without conandata.yml

    The conandata.yml file is only mandatory in the context of
    ConanCenterIndex [1]. Otherwise, it is optional.
    To avoid an error when ORT tries to read this file, make it optional for
    the Conan analyzer as well.
    
    Signed-off-by: Marcel Bochtler <marcel.bochtler@bosch.com>
    MarcelBochtler committed Mar 27, 2025
    Copy the full SHA
    81670f8 View commit details
Showing with 1,659 additions and 720 deletions.
  1. +7 −7 .github/workflows/build-and-test.yml
  2. +2 −2 .github/workflows/docker-build.yml
  3. +1 −1 .github/workflows/native-build.yml
  4. +1 −1 .github/workflows/release.yml
  5. +1 −1 .github/workflows/scorecard-analysis.yml
  6. +6 −6 .github/workflows/static-analysis.yml
  7. +1 −1 .github/workflows/website-deploy.yml
  8. +1 −1 .github/workflows/website-test.yml
  9. +9 −2 Dockerfile
  10. +0 −1 buildSrc/src/main/kotlin/ort-application-conventions.gradle.kts
  11. +10 −11 cli/src/funTest/kotlin/OrtMainFunTest.kt
  12. +1 −8 cli/src/main/kotlin/OrtMain.kt
  13. +1 −0 docker/versions.dockerfile
  14. +11 −9 gradle/libs.versions.toml
  15. +5 −2 helper-cli/src/funTest/assets/create-analyzer-result-from-pkg-list-expected-output.yml
  16. +3 −0 helper-cli/src/funTest/assets/package-list.yml
  17. +2 −1 helper-cli/src/main/kotlin/commands/CreateAnalyzerResultFromPackageListCommand.kt
  18. +17 −15 model/src/main/kotlin/config/OrtConfiguration.kt
  19. +6 −2 model/src/main/kotlin/config/PackageConfiguration.kt
  20. +5 −2 model/src/main/resources/reference.yml
  21. +4 −2 model/src/test/kotlin/config/OrtConfigurationTest.kt
  22. +7 −7 plugins/commands/config/src/main/kotlin/ConfigCommand.kt
  23. +1 −1 plugins/compiler/src/main/kotlin/JsonSpecGenerator.kt
  24. +1 −1 ...e-managers/bazel/src/funTest/assets/projects/synthetic/bazel-expected-output-archive-override.yml
  25. +18 −0 ...ckage-managers/conan/src/funTest/assets/projects/synthetic/conan-py-lockfile/lockfile_conan2.lock
  26. +337 −0 plugins/package-managers/conan/src/funTest/assets/projects/synthetic/conan2-expected-output-py.yml
  27. +239 −0 plugins/package-managers/conan/src/funTest/assets/projects/synthetic/conan2-expected-output-txt.yml
  28. +47 −0 plugins/package-managers/conan/src/funTest/kotlin/ConanFunTest.kt
  29. +76 −215 plugins/package-managers/conan/src/main/kotlin/Conan.kt
  30. +230 −0 plugins/package-managers/conan/src/main/kotlin/ConanV1Handler.kt
  31. +273 −0 plugins/package-managers/conan/src/main/kotlin/ConanV2Handler.kt
  32. +74 −0 plugins/package-managers/conan/src/main/kotlin/ConanVersionHandler.kt
  33. +153 −6 plugins/package-managers/conan/src/main/kotlin/PackageInfo.kt
  34. +14 −314 ...go/src/funTest/assets/projects/synthetic/gomod/go-as-dep-with-transitive-deps-expected-output.yml
  35. +5 −14 ...age-managers/go/src/funTest/assets/projects/synthetic/gomod/go-as-dep-with-transitive-deps/go.mod
  36. +4 −54 ...age-managers/go/src/funTest/assets/projects/synthetic/gomod/go-as-dep-with-transitive-deps/go.sum
  37. +2 −10 ...ge-managers/go/src/funTest/assets/projects/synthetic/gomod/go-as-dep-with-transitive-deps/main.go
  38. +4 −0 plugins/package-managers/maven/build.gradle.kts
  39. +36 −1 plugins/package-managers/node/src/main/kotlin/npm/Npm.kt
  40. +2 −2 plugins/package-managers/node/src/main/kotlin/npm/NpmDependencyHandler.kt
  41. +1 −1 plugins/package-managers/node/src/main/kotlin/yarn/Yarn.kt
  42. +1 −1 plugins/package-managers/node/src/main/kotlin/yarn2/Yarn2.kt
  43. +7 −7 ...ins/package-managers/python/src/funTest/assets/projects/synthetic/pip-python3-expected-output.yml
  44. +0 −1 plugins/reporters/spdx/src/main/kotlin/Extensions.kt
  45. +18 −7 plugins/reporters/web-app-template/build.gradle.kts
  46. +1 −0 scripts/docker_build.sh
  47. +4 −0 utils/ort/src/main/kotlin/Environment.kt
  48. +1 −1 website/docs/tools/analyzer.md
  49. +2 −1 website/docusaurus.config.js
  50. +7 −1 website/src/pages/index.js
14 changes: 7 additions & 7 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ jobs:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Build all classes
run: ./gradlew classes
codeql-analysis:
@@ -41,15 +41,15 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Initialize CodeQL
uses: github/codeql-action/init@5f8171a638ada777af81d42b55959a643bb29017 # v3
uses: github/codeql-action/init@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3
with:
languages: java
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Build all classes
run: ./gradlew -Dorg.gradle.jvmargs=-Xmx1g --no-build-cache classes
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5f8171a638ada777af81d42b55959a643bb29017 # v3
uses: github/codeql-action/analyze@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3
test:
strategy:
matrix:
@@ -65,7 +65,7 @@ jobs:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Run unit tests
run: ./gradlew --scan test jacocoTestReport
- name: Create Test Summary
@@ -114,7 +114,7 @@ jobs:
curl -Os https://raw.githubusercontent.com/nexB/scancode-toolkit/v$SCANCODE_VERSION/requirements.txt
pipx install --pip-args="--no-cache-dir --constraint requirements.txt" scancode-toolkit==$SCANCODE_VERSION
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Run functional tests that do not require external tools
run: ./gradlew --scan -Ptests.exclude=org.ossreviewtoolkit.plugins.packagemanagers.* funTest jacocoFunTestReport
- name: Create Test Summary
@@ -147,7 +147,7 @@ jobs:
target: all-tools
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ github.repository_owner }}/ort:cache
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Run functional tests that do require external tools
run: |
# Run the functional tests in the Docker container.
4 changes: 2 additions & 2 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -27,15 +27,15 @@ jobs:
- name: Free Disk Space
uses: ./.github/actions/free-disk-space
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Get ORT version
run: |
ORT_VERSION=$(./gradlew -q properties --property version | sed -nr "s/version: (.+)/\1/p")
echo "ORT_VERSION=${ORT_VERSION}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
2 changes: 1 addition & 1 deletion .github/workflows/native-build.yml
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ jobs:
set-java-home: false
native-image-job-reports: true
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Build Executable
run: ./gradlew -P cliAnalyzerOnly=true --no-configuration-cache :cli:nativeCompile
- name: Compress Executable
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ jobs:
ref: ${{ env.ORT_VERSION }}
fetch-depth: 0
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
with:
dependency-graph: generate-and-submit
- name: Publish to OSSRH
2 changes: 1 addition & 1 deletion .github/workflows/scorecard-analysis.yml
Original file line number Diff line number Diff line change
@@ -30,6 +30,6 @@ jobs:
results_format: sarif
publish_results: true
- name: Upload Code Scanning Results
uses: github/codeql-action/upload-sarif@5f8171a638ada777af81d42b55959a643bb29017 # v3
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3
with:
sarif_file: ossf-results.sarif
12 changes: 6 additions & 6 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Check copyrights, license headers, and .gitattributes
run: ./gradlew checkCopyrightsInNoticeFile checkLicenseHeaders checkGitAttributes
completions:
@@ -43,7 +43,7 @@ jobs:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Generate completions
run: |
./scripts/generate_completion_scripts.sh
@@ -66,11 +66,11 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Check for Detekt Issues
run: ./gradlew detektAll
- name: Upload SARIF File
uses: github/codeql-action/upload-sarif@5f8171a638ada777af81d42b55959a643bb29017 # v3
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3
if: always() # Upload even if the previous step failed.
with:
sarif_file: build/reports/detekt/merged.sarif
@@ -80,7 +80,7 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Check Links
uses: umbrelladocs/action-linkspector@49cf4f8da82db70e691bb8284053add5028fa244 # v1
uses: umbrelladocs/action-linkspector@a0567ce1c7c13de4a2358587492ed43cab5d0102 # v1
with:
fail_on_error: true
markdownlint:
@@ -113,7 +113,7 @@ jobs:
post-pr-comment: false
use-caches: false
- name: Upload Code Scanning Results
uses: github/codeql-action/upload-sarif@5f8171a638ada777af81d42b55959a643bb29017 # v3
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3
with:
sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json
reuse-tool:
2 changes: 1 addition & 1 deletion .github/workflows/website-deploy.yml
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Generate plugin docs
run: ./gradlew generatePluginDocs
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
2 changes: 1 addition & 1 deletion .github/workflows/website-test.yml
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ jobs:
- name: Checkout Repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4
- name: Generate plugin docs
run: ./gradlew generatePluginDocs
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
11 changes: 9 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -136,12 +136,13 @@ ARG PYTHON_VERSION
ARG PYENV_GIT_TAG

ENV PYENV_ROOT=/opt/python
ENV PATH=$PATH:$PYENV_ROOT/shims:$PYENV_ROOT/bin
ENV PATH=$PATH:$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PYENV_ROOT/conan2/bin
RUN curl -kSs https://pyenv.run | bash \
&& pyenv install -v $PYTHON_VERSION \
&& pyenv global $PYTHON_VERSION

ARG CONAN_VERSION
ARG CONAN2_VERSION
ARG PYTHON_INSPECTOR_VERSION
ARG PYTHON_PIPENV_VERSION
ARG PYTHON_POETRY_VERSION
@@ -175,6 +176,12 @@ RUN pip install --no-cache-dir -U \
poetry-plugin-export=="$PYTHON_POETRY_PLUGIN_EXPORT_VERSION" \
python-inspector=="$PYTHON_INSPECTOR_VERSION" \
setuptools=="$PYTHON_SETUPTOOLS_VERSION"
RUN mkdir /tmp/conan2 && cd /tmp/conan2 \
&& wget https://github.com/conan-io/conan/releases/download/$CONAN2_VERSION/conan-$CONAN2_VERSION-linux-x86_64.tgz \
&& tar -xvf conan-$CONAN2_VERSION-linux-x86_64.tgz\
# Rename the Conan 2 executable to "conan2" to be able to call both Conan version from the package manager.
&& mkdir $PYENV_ROOT/conan2 && mv /tmp/conan2/bin $PYENV_ROOT/conan2/ \
&& mv $PYENV_ROOT/conan2/bin/conan $PYENV_ROOT/conan2/bin/conan2

FROM scratch AS python
COPY --from=pythonbuild /opt/python /opt/python
@@ -477,7 +484,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \

# Python
ENV PYENV_ROOT=/opt/python
ENV PATH=$PATH:$PYENV_ROOT/shims:$PYENV_ROOT/bin
ENV PATH=$PATH:$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PYENV_ROOT/conan2/bin
COPY --from=python --chown=$USER:$USER $PYENV_ROOT $PYENV_ROOT

# NodeJS
Original file line number Diff line number Diff line change
@@ -117,7 +117,6 @@ graalvmNative {

buildArgs.addAll(
initializeAtBuildTime,
"--report-unsupported-elements-at-runtime",
"--parallelism=8",
"-J-Xmx16g"
)
21 changes: 10 additions & 11 deletions cli/src/funTest/kotlin/OrtMainFunTest.kt
Original file line number Diff line number Diff line change
@@ -38,10 +38,9 @@ import java.io.File
import org.ossreviewtoolkit.analyzer.PackageManagerFactory
import org.ossreviewtoolkit.model.OrtResult
import org.ossreviewtoolkit.model.config.OrtConfiguration
import org.ossreviewtoolkit.model.config.OrtConfigurationWrapper
import org.ossreviewtoolkit.model.config.ProviderPluginConfiguration
import org.ossreviewtoolkit.model.mapper
import org.ossreviewtoolkit.model.readValue
import org.ossreviewtoolkit.model.writeValue
import org.ossreviewtoolkit.utils.common.EnvironmentVariableFilter
import org.ossreviewtoolkit.utils.ort.ORT_REFERENCE_CONFIG_FILENAME
import org.ossreviewtoolkit.utils.test.getAssetFile
@@ -55,18 +54,18 @@ class OrtMainFunTest : StringSpec() {

override suspend fun beforeSpec(spec: Spec) {
configFile = tempfile(suffix = ".yml")
configFile.writeValue(
OrtConfigurationWrapper(
OrtConfiguration(
packageCurationProviders = listOf(
ProviderPluginConfiguration(
type = "File",
options = mapOf("path" to getAssetFile("gradle-curations.yml").path)
)
)

val writer = configFile.mapper().writerFor(OrtConfiguration::class.java).withRootName("ort")
val config = OrtConfiguration(
packageCurationProviders = listOf(
ProviderPluginConfiguration(
type = "File",
options = mapOf("path" to getAssetFile("gradle-curations.yml").path)
)
)
)

writer.writeValue(configFile, config)
}

override suspend fun beforeTest(testCase: TestCase) {
9 changes: 1 addition & 8 deletions cli/src/main/kotlin/OrtMain.kt
Original file line number Diff line number Diff line change
@@ -57,12 +57,9 @@ import org.ossreviewtoolkit.utils.common.expandTilde
import org.ossreviewtoolkit.utils.common.mebibytes
import org.ossreviewtoolkit.utils.common.replaceCredentialsInUri
import org.ossreviewtoolkit.utils.ort.Environment
import org.ossreviewtoolkit.utils.ort.ORT_CONFIG_DIR_ENV_NAME
import org.ossreviewtoolkit.utils.ort.ORT_CONFIG_FILENAME
import org.ossreviewtoolkit.utils.ort.ORT_DATA_DIR_ENV_NAME
import org.ossreviewtoolkit.utils.ort.ORT_NAME
import org.ossreviewtoolkit.utils.ort.ortConfigDirectory
import org.ossreviewtoolkit.utils.ort.ortDataDirectory
import org.ossreviewtoolkit.utils.ort.printStackTrace

import org.slf4j.LoggerFactory
@@ -207,11 +204,7 @@ class OrtMain : CliktCommand(ORT_NAME) {
row {
val content = mutableListOf("Environment variables:")

listOf(
ORT_CONFIG_DIR_ENV_NAME to ortConfigDirectory.path,
ORT_DATA_DIR_ENV_NAME to ortDataDirectory.path,
*env.variables.toList().toTypedArray()
).mapTo(content) { (key, value) ->
env.variables.mapTo(content) { (key, value) ->
val safeValue = value.replaceCredentialsInUri(MaskedString.DEFAULT_MASK)
"${Theme.Default.info(key)} = ${Theme.Default.warning(safeValue)}"
}
1 change: 1 addition & 0 deletions docker/versions.dockerfile
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ ARG BOYTERLC_VERSION=1.3.1
ARG COCOAPODS_VERSION=1.16.2
ARG COMPOSER_VERSION=2.8.4
ARG CONAN_VERSION=1.66.0
ARG CONAN2_VERSION=2.14.0
ARG DART_VERSION=2.18.4
ARG DOTNET_VERSION=6.0
ARG GO_VERSION=1.24.0
20 changes: 11 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[versions]
dependencyAnalysisPlugin = "2.13.0"
dependencyAnalysisPlugin = "2.13.2"
detektPlugin = "1.23.8"
dokkatooPlugin = "2.4.0"
downloadPlugin = "5.6.0"
gitSemverPlugin = "0.16.0"
graalVmNativeImagePlugin = "0.10.6"
ideaExtPlugin = "1.1.10"
jakartaMigrationPlugin = "0.24.0"
kotlinPlugin = "2.1.10"
ksp = "2.1.10-1.0.31"
kotlinPlugin = "2.1.20"
ksp = "2.1.20-1.0.32"
mavenPublishPlugin = "0.31.0"
reproducibleBuildsPlugin = "1.0"
versionsPlugin = "0.52.0"
@@ -29,17 +29,17 @@ flexmark = "0.64.8"
freemarker = "2.3.34"
greenmail = "2.1.3"
gson = "2.12.1"
hikari = "6.2.1"
hikari = "6.3.0"
hoplite = "2.9.0"
jackson = "2.18.3"
jakartaMail = "2.0.1"
jerseyCommon = "3.1.10"
jgit = "7.1.0.202411261347-r"
jgit = "7.2.0.202503040940-r"
jiraRestClient = "6.0.2"
jruby = "9.4.12.0"
jslt = "0.1.14"
jsonSchemaValidator = "1.5.6"
kaml = "0.72.0"
kaml = "0.73.0"
kotest = "5.9.1"
kotlinPoet = "2.1.0"
kotlinxCoroutines = "1.10.1"
@@ -59,14 +59,15 @@ postgres = "42.7.5"
postgresEmbedded = "1.1.0"
reflections = "0.10.2"
retrofit = "2.11.0"
s3 = "2.31.1"
s3 = "2.31.6"
saxonHe = "12.5"
scanoss = "0.10.1"
semver4j = "5.6.0"
slf4j = "2.0.17"
springCore = "6.2.5"
svnkit = "1.10.11"
svnkit = "1.10.12"
sw360Client = "17.0.1-m2"
wagonHttp = "3.5.3"
wiremock = "3.12.1"
xmlutil = "0.90.3"
xz = "1.10"
@@ -183,8 +184,9 @@ scanoss = { module = "com.scanoss:scanoss", version.ref = "scanoss" }
semver4j = { module = "org.semver4j:semver4j", version.ref = "semver4j" }
slf4j = { module = "org.slf4j:slf4j-api ", version.ref = "slf4j" }
springCore = { module = "org.springframework:spring-core", version.ref = "springCore" }
svnkit = { module = "org.tmatesoft.svnkit:svnkit", version.ref = "svnkit" }
svnkit = { module = "com.tmatesoft.svnkit:svnkit", version.ref = "svnkit" }
sw360Client = { module = "org.eclipse.sw360:client", version.ref = "sw360Client" }
wagon-http = { module = "org.apache.maven.wagon:wagon-http", version.ref = "wagonHttp" }
wiremock = { module = "org.wiremock:wiremock", version.ref = "wiremock" }
xz = { module = "org.tukaani:xz", version.ref = "xz" }

Original file line number Diff line number Diff line change
@@ -57,8 +57,11 @@ analyzer:
packages:
- id: "NPM::example-dependency-one:1.0.0"
purl: "pkg:npm/example-dependency-one@1.0.0"
declared_licenses: []
declared_licenses_processed: {}
declared_licenses:
- "Apache-2.0 OR LGPL-2.0-only"
- "MIT"
declared_licenses_processed:
spdx_expression: "(Apache-2.0 OR LGPL-2.0-only) AND MIT"
description: ""
homepage_url: ""
binary_artifact:
3 changes: 3 additions & 0 deletions helper-cli/src/funTest/assets/package-list.yml
Original file line number Diff line number Diff line change
@@ -14,6 +14,9 @@ dependencies:
path: "vcs-path/dependency-one"
sourceArtifact:
url: "https://example.org/example-dependency-one.zip"
declaredLicenses:
- "MIT"
- "Apache-2.0 OR LGPL-2.0-only"
isExcluded: true
isDynamicallyLinked: true
- id: "NPM::example-dependency-two:2.0.0"
Original file line number Diff line number Diff line change
@@ -150,6 +150,7 @@ private data class Dependency(
val purl: String? = null,
val vcs: Vcs? = null,
val sourceArtifact: SourceArtifact? = null,
val declaredLicenses: Set<String> = emptySet(),
val isExcluded: Boolean = false,
val isDynamicallyLinked: Boolean = false,
val labels: Map<String, String> = emptyMap()
@@ -198,7 +199,7 @@ private fun Dependency.toPackage(): Package {
purl = purl ?: id.toPurl(),
sourceArtifact = sourceArtifact?.let { RemoteArtifact(url = it.url, it.hash ?: Hash.NONE) }.orEmpty(),
vcs = vcsInfo,
declaredLicenses = emptySet(),
declaredLicenses = declaredLicenses,
description = "",
homepageUrl = "",
binaryArtifact = RemoteArtifact.EMPTY,
Loading