Python client: add license check#2580
Conversation
flyrain
left a comment
There was a problem hiding this comment.
+1 Thanks for working on it, @MonkeyCanCode !
HonahX
left a comment
There was a problem hiding this comment.
LGTM! Thanks for working on this.
I've verified this can catch non-supported license in deps. e.g.
--- Starting license compliance check ---
license GNU Lesser General Public License v2 or later (LGPLv2+) not in allow-only licenses was found for package chardet:5.2.0
make: *** [client-license-check] Error 1
| .PHONY: client-license-check | ||
| client-license-check: client-setup-env ## Run license compliance check | ||
| @echo "--- Starting license compliance check ---" | ||
| @$(ACTIVATE_AND_CD) && pip-licenses |
There was a problem hiding this comment.
Somehow this does not work for me in an old poetry environment.
pip-licenses: command not found
But I've verified that a clean install will work.
There was a problem hiding this comment.
Maybe the previous poetry env doesn't have this dependency installed as I added it last night via this PR. In case if u want that env to work, u can source the venv then run poetry command to install all again.
There was a problem hiding this comment.
Yeah I ran make install-dependencies and I saw poetry explicitly said it installed pip-licenses yet it still could not found it. Could be some other weird issue in that env. So I ends up using a clean environment to verify : )
Using poetry run pip-licenses will work btw
|
@MonkeyCanCode the merge broke CI on |
NVM, merged your fix. |
* Avoid exceptions on ETag matches (apache#2578) Exceptions have runtime overhead, which is avoidable in this case. * Publish build scans to develocity.apache.org for build insights (apache#2559) * Site: add a blog for apache doris and polaris integration (apache#2571) * Bump: iceberg 1.10 (apache#2586) * Python client: add license check (apache#2580) * Python client: add license check * Python client: add license check * Python client: add license check * test * Enable license check * Fix license check for cryptography (apache#2591) * Update plugin com.gradle.common-custom-user-data-gradle-plugin to v2.4.0 (apache#2582) * Update plugin com.gradle.develocity to v4.2 (apache#2583) * Build: remove unnecessary openapigenerator plugin usages (apache#2592) * docs(changelog): Update the Changelog with 1.0.1, 1.0.0, & 0.9.0 Releases (apache#2587) * Revert "Update plugin com.gradle.develocity to v4.2 (apache#2583)" (apache#2594) This reverts commit 8cc0fad, build scans are not published to the ASF Develocity instance. * Add security report page on the website (apache#2538) This closes apache#2521 * CI: Fix Gradle cache usages (apache#2593) The GH action `ci-incr-build-cache-prepare` calls the `setup-gradle` action with the "right" parameters, so the call of `setup-gradle` in jobs that use `ci-incr-build-cache-prepare` is superfluous. But this also renders the caching ineffective as `setup-gradle` is called w/o `cache-read-only: true` in "child jobs", which then attempt to store their Gradle cache contents. This leads to attempty storing the Gradle cache in `Post Setup Gradle` steps of the "child" jobs, conflicting with other child jobs and also conflicting with `Store Gradle Cache` purpose. "Which cache" is then restored, is rather non-deterministic, but almost always at least "partial" leading to unnecessary (re)builds. * Last merged commit f3d53f0 --------- Co-authored-by: Dmitri Bourlatchkov <[email protected]> Co-authored-by: Clay Johnson <[email protected]> Co-authored-by: Mingyu Chen (Rayner) <[email protected]> Co-authored-by: Prashant Singh <[email protected]> Co-authored-by: Yong Zheng <[email protected]> Co-authored-by: Mend Renovate <[email protected]> Co-authored-by: Adam Christian <[email protected]> Co-authored-by: JB Onofré <[email protected]>
This is requested by @snazy a while back via #822 and @DaniilRoman did the initial implementation via #1102. This is the PR for merged the changes from sample PR with our GH action and Makefile.
There are a lot more allowed licenses from ASF (https://www.apache.org/legal/resolved.html#category-x) and a bunch for which should't be included as well. For now, I put the allow list with the packages that are currently being used.