[Python][Client] Add LICENSE and NOTICE to CLI.#3891
[Python][Client] Add LICENSE and NOTICE to CLI.#3891HonahX wants to merge 4 commits intoapache:mainfrom
Conversation
client/python/LICENSE
Outdated
|
|
||
| Copyright: Copyright 2017-2025 The Apache Software Foundation | ||
| Home page: https://iceberg.apache.org | ||
| License: https://www.apache.org/licenses/LICENSE-2.0 |
There was a problem hiding this comment.
Do we need to include the following dependencies? cc @jbonofre
dependencies = [
"urllib3>=1.25.3,<3.0.0",
"python-dateutil>=2.8.2",
"pydantic>=2.12.5,<2.13.0",
"typing-extensions>=4.7.1",
"boto3~=1.42.2",
]
There was a problem hiding this comment.
The LICENSE here should document what is in the product/artifact.
Considering the Python Client whl:
- the dist info
METADATAdescribed the dependencies resolved at execution:
Requires-Dist: boto3 (>=1.40.6,<1.41.0)
Requires-Dist: pydantic (>=2.0.0,<2.12.0)
Requires-Dist: python-dateutil (>=2.8.2)
Requires-Dist: typing-extensions (>=4.7.1)
Requires-Dist: urllib3 (>=1.25.3,<3.0.0)
- There's not code coming from anywhere (even Iceberg).
- The spec OpenAPI yaml are not included at all in the distributed artifact. It's used to generate the stubs.
So, actually, the LICENSE should not contain anything because the distributed artifact (product) doesn't bundle anything.
There was a problem hiding this comment.
Great. I like how pypi distributes it.
There was a problem hiding this comment.
Thanks for reviewing! One follow-up question to confirm, the spec files are not included in the wheel but they do exist in the sdist, since for user install via sdist they will need to re-generate the client using the included spec
tar tzf client/python/dist/apache_polaris-1.4.0.tar.gz | grep "^apache_polaris-1.4.0/spec/"
apache_polaris-1.4.0/spec/README.md
apache_polaris-1.4.0/spec/iceberg-rest-catalog-open-api.yaml
apache_polaris-1.4.0/spec/polaris-catalog-service.yaml
apache_polaris-1.4.0/spec/polaris-management-service.yml
apache_polaris-1.4.0/spec/generated/bundled-polaris-catalog-service.yaml
apache_polaris-1.4.0/spec/polaris-catalog-apis/generic-tables-api.yaml
apache_polaris-1.4.0/spec/polaris-catalog-apis/notifications-api.yaml
apache_polaris-1.4.0/spec/polaris-catalog-apis/oauth-tokens-api.yaml
apache_polaris-1.4.0/spec/polaris-catalog-apis/policy-apis.yaml
Do we need to include spec files in the LICENSE in this case?
We could also only publish wheel since the wheel is universal
There was a problem hiding this comment.
I thought you did that already in line 207 and 208
There was a problem hiding this comment.
I checked in the wheel distribution.
So, if we plan to publish both wheel and a tar.gz distributions, yes, spec should be documented in LICENSE. Maybe easier to have the same layout between wheel and tar.gz distributions.
If we don't actually need the spec in the tar.gz distribution, I would propose to not include spec here.
I think we have three options:
- Don't include spec in tar.gz distribution
- Include spec in wheel distribution
- Only publish wheel distribution (not sure tar.gz distribution is very used)
There was a problem hiding this comment.
Thanks for the suggestions! Spec are required in tar.gz distribution since pip install from source need to generate open api client from them.
Since we have universal wheel here that should cover all most of the cases, for simplicity let's target at option 3: only publish wheel distribution first. We could add sdist later if really needed.
cc: @MonkeyCanCode
jbonofre
left a comment
There was a problem hiding this comment.
LICENSE should not contain Iceberg because the distribution/product doesn't include (bundle) any code from Iceberg.
The copyright year in the NOTICE should be updated to 2026.
client/python/LICENSE
Outdated
|
|
||
| Copyright: Copyright 2017-2025 The Apache Software Foundation | ||
| Home page: https://iceberg.apache.org | ||
| License: https://www.apache.org/licenses/LICENSE-2.0 |
There was a problem hiding this comment.
The LICENSE here should document what is in the product/artifact.
Considering the Python Client whl:
- the dist info
METADATAdescribed the dependencies resolved at execution:
Requires-Dist: boto3 (>=1.40.6,<1.41.0)
Requires-Dist: pydantic (>=2.0.0,<2.12.0)
Requires-Dist: python-dateutil (>=2.8.2)
Requires-Dist: typing-extensions (>=4.7.1)
Requires-Dist: urllib3 (>=1.25.3,<3.0.0)
- There's not code coming from anywhere (even Iceberg).
- The spec OpenAPI yaml are not included at all in the distributed artifact. It's used to generate the stubs.
So, actually, the LICENSE should not contain anything because the distributed artifact (product) doesn't bundle anything.
|
Thanks for working on this @HonahX . Looks good to me. Once comments are addressed, I will approve. |
Add LICENSE and NOTICE file for python client. Python Client is supposed to distribute sdist and wheel. In sdist, we have the following files that are copied from other repo and thus included in the LICENSE
spec/iceberg-rest-catalog-open-api.yamlspec/polaris-catalog-apis/oauth-tokens-api.yamlChecklist
CHANGELOG.md(if needed)site/content/in-dev/unreleased(if needed)