Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get license name from Maven homepage #222

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

YongGoose
Copy link
Contributor

@YongGoose YongGoose commented Aug 19, 2024

Description

AS-IS

image

TO-BE

image

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Documentation update
  • Refactoring, Maintenance
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

@YongGoose
Copy link
Contributor Author

@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 라이센스에는 강제성이 있어 사용자가 잘못된 라이센스 정보를 확인해 피해를 입는 경우가 혹여나 발생할까 말씀 드립니다..!

@soimkim soimkim added the enhancement [PR/Issue] New feature or request label Aug 25, 2024
@soimkim
Copy link
Contributor

soimkim commented Aug 25, 2024

@YongGoose , No license found 대신 NO_LICENSE_DETECTED를 출력 부탁드립니다.

@soimkim
Copy link
Contributor

soimkim commented Aug 25, 2024

@YongGoose 님,
본 기능이 들어감으로써 버전에 license 가 명시 안 된 경우는 대표 license를 표기하기 때문에 version diff 임에도 다른 license가 표시될 수 있습니다.
그러나 version diff인 경우는 버전에 license가 명시되어 있을 것이기 때문에 이 경우, 상위 repository에 표시된 license를 읽지 않아 Risk가 낮은 것으로 판단합니다.

Signed-off-by: yongjunhong <[email protected]>
@YongGoose
Copy link
Contributor Author

@YongGoose 님, 본 기능이 들어감으로써 버전에 license 가 명시 안 된 경우는 대표 license를 표기하기 때문에 version diff 임에도 다른 license가 표시될 수 있습니다. 그러나 version diff인 경우는 버전에 license가 명시되어 있을 것이기 때문에 이 경우, 상위 repository에 표시된 license를 읽지 않아 Risk가 낮은 것으로 판단합니다.

@soimkim
확인했습니다!
자세한 설명 감사합니다 😊

@YongGoose
Copy link
Contributor Author

@YongGoose , No license found 대신 NO_LICENSE_DETECTED를 출력 부탁드립니다.

넵! 수정하도록 하겠습니다.

Signed-off-by: yongjunhong <[email protected]>
@soimkim
Copy link
Contributor

soimkim commented Aug 28, 2024

@YongGoose , 제가 gradle project에 https://mvnrepository.com/artifact/com.carrotsearch.randomizedtesting/randomizedtesting-runner/0.0.1를 추가 후 테스트 결과 하기와 같이 NO_LICENSE_DETECTED가 추출됩니다.
image

테스트 방법 :

  1. https://github.com/t2y/gradle-multi-project-sample의 build.gradle에 implementation 'com.carrotsearch.randomizedtesting:randomizedtesting-runner:0.0.1'를 추가
  2. build.gradle에서 하기와 같이 추가 수정
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'.
}
  1. ./gradlew downloadLicenses
  2. fosslight_dependency 실행

에러 로그

[   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에도 본 기능이 동일하게 적용 필요합니다.

@soimkim
Copy link
Contributor

soimkim commented Oct 4, 2024

본 기능이 해결되면 License를 읽을 수 있는 package 예시

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement [PR/Issue] New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Get license name from Maven homepage
2 participants