Open YongGoose opened 2 months ago
@soimkim
하기와 같이 상위 링크에서도 license 정보를 찾을 수 없는 경우에는 No license found
라는 문구가 출력되도록 구현했습니다.
그 외 한 가지 상의를 해야 할 점이 있어 코멘트를 작성하게 됐습니다.
예를 들어 Redis 7.2
버전에서 라이센스 정보가 명시 되지 않았다고 가정했을 때, 상위 링크를 통해 찾는 방식으로 라이센스를 출력한다면 RSALv2 + SSPLv1
으로 출력이 됩니다. (Redis는 7.4 버전 이후로 BSD-3에서 RSALv2 SSPLv1으로 라이센스가 변경 되었습니다)
하지만, 사용자가 사용하는 버전인 Redis 7.2
에서는 라이센스가 변경이 되지 않은 상태인데 현재 PR에 있는 코드에서는 변경이 된 이후의 라이센스로 출력이 됩니다. (RSALv2 + SSPLv1으로 출력이 됩니다)
BSD-3
라이센스에서는 소스 코드 공개에 강제성이 없는 것에 비해 SSPLv1
라이센스에는 강제성이 있어 사용자가 잘못된 라이센스 정보를 확인해 피해를 입는 경우가 혹여나 발생할까 말씀 드립니다..!
@YongGoose , No license found
대신 NO_LICENSE_DETECTED
를 출력 부탁드립니다.
@YongGoose 님, 본 기능이 들어감으로써 버전에 license 가 명시 안 된 경우는 대표 license를 표기하기 때문에 version diff 임에도 다른 license가 표시될 수 있습니다. 그러나 version diff인 경우는 버전에 license가 명시되어 있을 것이기 때문에 이 경우, 상위 repository에 표시된 license를 읽지 않아 Risk가 낮은 것으로 판단합니다.
@YongGoose 님, 본 기능이 들어감으로써 버전에 license 가 명시 안 된 경우는 대표 license를 표기하기 때문에 version diff 임에도 다른 license가 표시될 수 있습니다. 그러나 version diff인 경우는 버전에 license가 명시되어 있을 것이기 때문에 이 경우, 상위 repository에 표시된 license를 읽지 않아 Risk가 낮은 것으로 판단합니다.
@soimkim 확인했습니다! 자세한 설명 감사합니다 😊
@YongGoose ,
No license found
대신NO_LICENSE_DETECTED
를 출력 부탁드립니다.
넵! 수정하도록 하겠습니다.
@YongGoose , 제가 gradle project에 https://mvnrepository.com/artifact/com.carrotsearch.randomizedtesting/randomizedtesting-runner/0.0.1를 추가 후 테스트 결과 하기와 같이 NO_LICENSE_DETECTED가 추출됩니다.
테스트 방법 :
'com.carrotsearch.randomizedtesting:randomizedtesting-runner:0.0.1'
를 추가plugins {
id 'com.github.sherter.google-java-format' version '0.9' apply false
id 'com.github.hierynomus.license' version '0.15.0'
}
downloadLicenses {
includeProjectDependencies = true
dependencyConfiguration = 'runtimeClasspath' // If the gradle version is 4.6 or lower, then add the 'runtime' instead of 'runtimeClasspath'.
}
에러 로그
[ INFO] [FOSSLIGHT_DEPENDENCY] Tool Info : fosslight_dependency v3.15.5
[ INFO] [FOSSLIGHT_DEPENDENCY] Found the manifest file(/home/soim/temp/test/gradle-multi-project-sample/build.gradle) automatically.
[WARNING] [FOSSLIGHT_DEPENDENCY] ### Set Package Manager = gradle, android
[ INFO] Parse oss information with file: build/reports/license/dependency-license.json
[ DEBUG] HTTP error occurred: 403 Client Error: Forbidden for url: https://mvnrepository.com/artifact/com.carrotsearch.randomizedtesting/randomizedtesting-runner
[WARNING] ### Complete to analyze: gradle
[ INFO] [FOSSLIGHT_DEPENDENCY] Output file: /home/soim/temp/test/gradle-multi-project-sample/fosslight_report_dep_240828_1009.xlsx
[ INFO] [FOSSLIGHT_DEPENDENCY] Analyzed Package manager: gradle (build.gradle)
[WARNING] [FOSSLIGHT_DEPENDENCY] ### FINISH ###
추가로 maven project에도 본 기능이 동일하게 적용 필요합니다.
본 기능이 해결되면 License를 읽을 수 있는 package 예시
Description
AS-IS
No license found
is displayed."TO-BE
Type of change