Skip to content

Support sdist client distribution#2557

Merged
HonahX merged 4 commits intoapache:mainfrom
MonkeyCanCode:client_openapi_symbolic_link
Sep 15, 2025
Merged

Support sdist client distribution#2557
HonahX merged 4 commits intoapache:mainfrom
MonkeyCanCode:client_openapi_symbolic_link

Conversation

@MonkeyCanCode
Copy link
Contributor

@MonkeyCanCode MonkeyCanCode commented Sep 13, 2025

This PR addresses the binary distribution issue described in #2419
. The goal is to include only the files required for an end-user to build the client locally (the repository already supports wheel distribution).

For the sdist build, this PR takes a slightly different approach than the symbolic link solution proposed in [#2419]. Instead of using symbolic links, it copies the necessary files from the project root into the client directory (if they do not already exist) and then uses that directory during sdist mode. This approach avoids errors caused by Poetry’s path checks, since symbolic links pointing outside the client directory fail validation.

Tests:

Setup environment and build client distribution:

➜  polaris git:(client_openapi_symbolic_link) ✗ make client-build
Setting up Python virtual environment at .venv...
Virtual environment created.
Installing Poetry and project dependencies into .venv...
....
Installing the current project: polaris (1.0.0)Preparing build environment with build-system requirements poetry-core>=2.0.0,<3.0.0, openapi-generator-cli==7.11.0.post0
Preparing spec directory...
Spec directory already exists.
Deleting old tests...
Old test deletion complete.
Re-applying license headers...
License fix complete.
Installing the current project: polaris (1.0.0)
Poetry and dependencies installed.
--- Building client distribution ---
Building polaris (1.0.0)
Building sdist
Building wheel
--- Client distribution build complete ---

Setup venv for testing sdist installation and install via sdist:

➜  Desktop mkdir polaris_distribution_test_tar_gz && polaris_distribution_test_tar_gz
➜  polaris_distribution_test_tar_gz python3 -m venv venv
➜  polaris_distribution_test_tar_gz source venv/bin/activate
(venv) ➜  polaris_distribution_test_tar_gz pip install ~/Desktop/GitHome/polaris/client/python/dist/*.tar.gz
Processing /Users/yong/Desktop/GitHome/polaris/client/python/dist/polaris-1.0.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting boto3<1.41.0,>=1.40.6 (from polaris==1.0.0)
  Using cached boto3-1.40.30-py3-none-any.whl.metadata (6.7 kB)
Collecting pydantic>=2.0.0 (from polaris==1.0.0)
  Using cached pydantic-2.11.9-py3-none-any.whl.metadata (68 kB)
Collecting python-dateutil>=2.8.2 (from polaris==1.0.0)
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting typing-extensions>=4.7.1 (from polaris==1.0.0)
  Using cached typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Collecting urllib3<3.0.0,>=1.25.3 (from polaris==1.0.0)
  Using cached urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
Collecting botocore<1.41.0,>=1.40.30 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached botocore-1.40.30-py3-none-any.whl.metadata (5.7 kB)
Collecting jmespath<2.0.0,>=0.7.1 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached jmespath-1.0.1-py3-none-any.whl.metadata (7.6 kB)
Collecting s3transfer<0.15.0,>=0.14.0 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached s3transfer-0.14.0-py3-none-any.whl.metadata (1.7 kB)
Collecting annotated-types>=0.6.0 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.33.2 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl.metadata (6.8 kB)
Collecting typing-inspection>=0.4.0 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached typing_inspection-0.4.1-py3-none-any.whl.metadata (2.6 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.2->polaris==1.0.0)
  Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Using cached boto3-1.40.30-py3-none-any.whl (139 kB)
Using cached pydantic-2.11.9-py3-none-any.whl (444 kB)
Using cached pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Using cached typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Using cached urllib3-2.5.0-py3-none-any.whl (129 kB)
Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Using cached botocore-1.40.30-py3-none-any.whl (14.0 MB)
Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
Using cached s3transfer-0.14.0-py3-none-any.whl (85 kB)
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
Using cached typing_inspection-0.4.1-py3-none-any.whl (14 kB)
Building wheels for collected packages: polaris
  Building wheel for polaris (pyproject.toml) ... done
  Created wheel for polaris: filename=polaris-1.0.0-cp313-cp313-macosx_15_0_arm64.whl size=533930 sha256=c8bf7bc870b91fb5a6038a84ff2433d30a0344f545c2889fd6ccf0bbfecc58b8
  Stored in directory: /Users/yong/Library/Caches/pip/wheels/b8/f1/20/1dd4b05f93820742954b32d0d44f211007e0d06e5742927628
Successfully built polaris
Installing collected packages: urllib3, typing-extensions, six, jmespath, annotated-types, typing-inspection, python-dateutil, pydantic-core, pydantic, botocore, s3transfer, boto3, polaris
Successfully installed annotated-types-0.7.0 boto3-1.40.30 botocore-1.40.30 jmespath-1.0.1 polaris-1.0.0 pydantic-2.11.9 pydantic-core-2.33.2 python-dateutil-2.9.0.post0 s3transfer-0.14.0 six-1.17.0 typing-extensions-4.15.0 typing-inspection-0.4.1 urllib3-2.5.0

[notice] A new release of pip is available: 24.2 -> 25.2
[notice] To update, run: pip install --upgrade pip

Setup venv for testing wheel installation and install via wheel:

➜  Desktop mkdir polaris_distribution_test_wheel && polaris_distribution_test_wheel
➜  polaris_distribution_test_wheel python3 -m venv venv
➜  polaris_distribution_test_wheel source venv/bin/activate
(venv) ➜  polaris_distribution_test_wheel pip install ~/Desktop/GitHome/polaris/client/python/dist/*.whl
Processing /Users/yong/Desktop/GitHome/polaris/client/python/dist/polaris-1.0.0-cp313-cp313-macosx_15_0_arm64.whl
Collecting boto3<1.41.0,>=1.40.6 (from polaris==1.0.0)
  Using cached boto3-1.40.30-py3-none-any.whl.metadata (6.7 kB)
Collecting pydantic>=2.0.0 (from polaris==1.0.0)
  Using cached pydantic-2.11.9-py3-none-any.whl.metadata (68 kB)
Collecting python-dateutil>=2.8.2 (from polaris==1.0.0)
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting typing-extensions>=4.7.1 (from polaris==1.0.0)
  Using cached typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Collecting urllib3<3.0.0,>=1.25.3 (from polaris==1.0.0)
  Using cached urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
Collecting botocore<1.41.0,>=1.40.30 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached botocore-1.40.30-py3-none-any.whl.metadata (5.7 kB)
Collecting jmespath<2.0.0,>=0.7.1 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached jmespath-1.0.1-py3-none-any.whl.metadata (7.6 kB)
Collecting s3transfer<0.15.0,>=0.14.0 (from boto3<1.41.0,>=1.40.6->polaris==1.0.0)
  Using cached s3transfer-0.14.0-py3-none-any.whl.metadata (1.7 kB)
Collecting annotated-types>=0.6.0 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.33.2 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl.metadata (6.8 kB)
Collecting typing-inspection>=0.4.0 (from pydantic>=2.0.0->polaris==1.0.0)
  Using cached typing_inspection-0.4.1-py3-none-any.whl.metadata (2.6 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.2->polaris==1.0.0)
  Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Using cached boto3-1.40.30-py3-none-any.whl (139 kB)
Using cached pydantic-2.11.9-py3-none-any.whl (444 kB)
Using cached pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Using cached typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Using cached urllib3-2.5.0-py3-none-any.whl (129 kB)
Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Using cached botocore-1.40.30-py3-none-any.whl (14.0 MB)
Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
Using cached s3transfer-0.14.0-py3-none-any.whl (85 kB)
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
Using cached typing_inspection-0.4.1-py3-none-any.whl (14 kB)
Installing collected packages: urllib3, typing-extensions, six, jmespath, annotated-types, typing-inspection, python-dateutil, pydantic-core, pydantic, botocore, s3transfer, boto3, polaris
Successfully installed annotated-types-0.7.0 boto3-1.40.30 botocore-1.40.30 jmespath-1.0.1 polaris-1.0.0 pydantic-2.11.9 pydantic-core-2.33.2 python-dateutil-2.9.0.post0 s3transfer-0.14.0 six-1.17.0 typing-extensions-4.15.0 typing-inspection-0.4.1 urllib3-2.5.0

[notice] A new release of pip is available: 24.2 -> 25.2
[notice] To update, run: pip install --upgrade pip

Validation:

(venv) ➜  polaris_distribution_test_tar_gz echo $?
0
(venv) ➜  polaris_distribution_test_tar_gz polaris --profile dev principals list
{"name": "root", "clientId": "root", "properties": {}, "createTimestamp": 1757783585213, "lastUpdateTimestamp": 1757783585213, "entityVersion": 1}

(venv) ➜  polaris_distribution_test_wheel polaris --profile dev principals list
{"name": "root", "clientId": "root", "properties": {}, "createTimestamp": 1757783585213, "lastUpdateTimestamp": 1757783585213, "entityVersion": 1}
(venv) ➜  polaris_distribution_test_wheel echo $?
0

Content for wheel:

➜  python git:(client_openapi_symbolic_link) unzip -l dist/*.whl
Archive:  dist/polaris-1.0.0-cp313-cp313-macosx_15_0_arm64.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
      789  01-01-2016 00:00   cli/__init__.py
     9979  01-01-2016 00:00   cli/command/__init__.py
     5362  01-01-2016 00:00   cli/command/catalog_roles.py
    19082  01-01-2016 00:00   cli/command/catalogs.py
     4239  01-01-2016 00:00   cli/command/namespaces.py
     5328  01-01-2016 00:00   cli/command/principal_roles.py
     6954  01-01-2016 00:00   cli/command/principals.py
     6138  01-01-2016 00:00   cli/command/privileges.py
     5808  01-01-2016 00:00   cli/command/profiles.py
    13973  01-01-2016 00:00   cli/constants.py
      789  01-01-2016 00:00   cli/options/__init__.py
    16669  01-01-2016 00:00   cli/options/option_tree.py
     9355  01-01-2016 00:00   cli/options/parser.py
     8964  01-01-2016 00:00   cli/polaris_cli.py
        0  01-01-2016 00:00   polaris/.keep
      790  01-01-2016 00:00   polaris/__init__.py
        0  01-01-2016 00:00   polaris/catalog/.keep
    11171  01-01-2016 00:00   polaris/catalog/__init__.py
        0  01-01-2016 00:00   polaris/catalog/api/.keep
     1059  01-01-2016 00:00   polaris/catalog/api/__init__.py
   377844  01-01-2016 00:00   polaris/catalog/api/catalog_api.py
    18839  01-01-2016 00:00   polaris/catalog/api/configuration_api.py
    58167  01-01-2016 00:00   polaris/catalog/api/generic_table_api.py
   421177  01-01-2016 00:00   polaris/catalog/api/iceberg_catalog_api.py
    18871  01-01-2016 00:00   polaris/catalog/api/iceberg_configuration_api.py
    26596  01-01-2016 00:00   polaris/catalog/api/iceberg_o_auth2_api.py
    27127  01-01-2016 00:00   polaris/catalog/api/o_auth2_api.py
   129569  01-01-2016 00:00   polaris/catalog/api/policy_api.py
    28362  01-01-2016 00:00   polaris/catalog/api_client.py
     1442  01-01-2016 00:00   polaris/catalog/api_response.py
    20753  01-01-2016 00:00   polaris/catalog/configuration.py
     7353  01-01-2016 00:00   polaris/catalog/exceptions.py
        0  01-01-2016 00:00   polaris/catalog/models/.keep
    10397  01-01-2016 00:00   polaris/catalog/models/__init__.py
     3557  01-01-2016 00:00   polaris/catalog/models/add_partition_spec_update.py
     3996  01-01-2016 00:00   polaris/catalog/models/add_schema_update.py
     3525  01-01-2016 00:00   polaris/catalog/models/add_snapshot_update.py
     3570  01-01-2016 00:00   polaris/catalog/models/add_sort_order_update.py
     3588  01-01-2016 00:00   polaris/catalog/models/add_view_version_update.py
     4070  01-01-2016 00:00   polaris/catalog/models/and_or_expression.py
     4715  01-01-2016 00:00   polaris/catalog/models/applicable_policy.py
     3462  01-01-2016 00:00   polaris/catalog/models/assert_create.py
     3618  01-01-2016 00:00   polaris/catalog/models/assert_current_schema_id.py
     3643  01-01-2016 00:00   polaris/catalog/models/assert_default_sort_order_id.py
     3604  01-01-2016 00:00   polaris/catalog/models/assert_default_spec_id.py
     3651  01-01-2016 00:00   polaris/catalog/models/assert_last_assigned_field_id.py
     3678  01-01-2016 00:00   polaris/catalog/models/assert_last_assigned_partition_id.py
     3720  01-01-2016 00:00   polaris/catalog/models/assert_ref_snapshot_id.py
     3479  01-01-2016 00:00   polaris/catalog/models/assert_table_uuid.py
     3726  01-01-2016 00:00   polaris/catalog/models/assert_view_uuid.py
     3612  01-01-2016 00:00   polaris/catalog/models/assign_uuid_update.py
     3635  01-01-2016 00:00   polaris/catalog/models/async_planning_result.py
     3814  01-01-2016 00:00   polaris/catalog/models/attach_policy_request.py
    12370  01-01-2016 00:00   polaris/catalog/models/base_update.py
     3834  01-01-2016 00:00   polaris/catalog/models/blob_metadata.py
     4129  01-01-2016 00:00   polaris/catalog/models/catalog_config.py
     4586  01-01-2016 00:00   polaris/catalog/models/commit_report.py
     5037  01-01-2016 00:00   polaris/catalog/models/commit_table_request.py
     3852  01-01-2016 00:00   polaris/catalog/models/commit_table_response.py
     4015  01-01-2016 00:00   polaris/catalog/models/commit_transaction_request.py
     4995  01-01-2016 00:00   polaris/catalog/models/commit_view_request.py
     5077  01-01-2016 00:00   polaris/catalog/models/completed_planning_result.py
     5264  01-01-2016 00:00   polaris/catalog/models/completed_planning_with_id_result.py
     6628  01-01-2016 00:00   polaris/catalog/models/content_file.py
     3630  01-01-2016 00:00   polaris/catalog/models/count_map.py
     3430  01-01-2016 00:00   polaris/catalog/models/counter_result.py
     3814  01-01-2016 00:00   polaris/catalog/models/create_generic_table_request.py
     3710  01-01-2016 00:00   polaris/catalog/models/create_namespace_request.py
     3714  01-01-2016 00:00   polaris/catalog/models/create_namespace_response.py
     4182  01-01-2016 00:00   polaris/catalog/models/create_policy_request.py
     5106  01-01-2016 00:00   polaris/catalog/models/create_table_request.py
     4564  01-01-2016 00:00   polaris/catalog/models/create_view_request.py
     5583  01-01-2016 00:00   polaris/catalog/models/data_file.py
     6366  01-01-2016 00:00   polaris/catalog/models/delete_file.py
     3676  01-01-2016 00:00   polaris/catalog/models/detach_policy_request.py
     3730  01-01-2016 00:00   polaris/catalog/models/empty_planning_result.py
     3469  01-01-2016 00:00   polaris/catalog/models/enable_row_lineage_update.py
     4769  01-01-2016 00:00   polaris/catalog/models/equality_delete_file.py
     3890  01-01-2016 00:00   polaris/catalog/models/error_model.py
    10131  01-01-2016 00:00   polaris/catalog/models/expression.py
     3793  01-01-2016 00:00   polaris/catalog/models/failed_planning_result.py
     3358  01-01-2016 00:00   polaris/catalog/models/false_expression.py
     7445  01-01-2016 00:00   polaris/catalog/models/fetch_planning_result.py
     3667  01-01-2016 00:00   polaris/catalog/models/fetch_scan_tasks_request.py
     4933  01-01-2016 00:00   polaris/catalog/models/fetch_scan_tasks_result.py
     1661  01-01-2016 00:00   polaris/catalog/models/file_format.py
     4642  01-01-2016 00:00   polaris/catalog/models/file_scan_task.py
     4513  01-01-2016 00:00   polaris/catalog/models/generic_table.py
     5610  01-01-2016 00:00   polaris/catalog/models/get_applicable_policies_response.py
     3884  01-01-2016 00:00   polaris/catalog/models/get_namespace_response.py
     3673  01-01-2016 00:00   polaris/catalog/models/iceberg_error_response.py
     3651  01-01-2016 00:00   polaris/catalog/models/iceberg_error_response1.py
     5474  01-01-2016 00:00   polaris/catalog/models/list_generic_tables_response.py
     4723  01-01-2016 00:00   polaris/catalog/models/list_namespaces_response.py
     5458  01-01-2016 00:00   polaris/catalog/models/list_policies_response.py
     5228  01-01-2016 00:00   polaris/catalog/models/list_tables_response.py
     4294  01-01-2016 00:00   polaris/catalog/models/list_type.py
     3751  01-01-2016 00:00   polaris/catalog/models/literal_expression.py
     4084  01-01-2016 00:00   polaris/catalog/models/load_credentials_response.py
     3670  01-01-2016 00:00   polaris/catalog/models/load_generic_table_response.py
     3633  01-01-2016 00:00   polaris/catalog/models/load_policy_response.py
     6636  01-01-2016 00:00   polaris/catalog/models/load_table_result.py
     4505  01-01-2016 00:00   polaris/catalog/models/load_view_result.py
     4603  01-01-2016 00:00   polaris/catalog/models/map_type.py
     3574  01-01-2016 00:00   polaris/catalog/models/metadata_log_inner.py
     5730  01-01-2016 00:00   polaris/catalog/models/metric_result.py
     4576  01-01-2016 00:00   polaris/catalog/models/model_schema.py
     3782  01-01-2016 00:00   polaris/catalog/models/not_expression.py
     3925  01-01-2016 00:00   polaris/catalog/models/notification_request.py
     1686  01-01-2016 00:00   polaris/catalog/models/notification_type.py
     1652  01-01-2016 00:00   polaris/catalog/models/null_order.py
     4179  01-01-2016 00:00   polaris/catalog/models/o_auth_error.py
     4934  01-01-2016 00:00   polaris/catalog/models/o_auth_token_response.py
     3710  01-01-2016 00:00   polaris/catalog/models/partition_field.py
     4059  01-01-2016 00:00   polaris/catalog/models/partition_spec.py
     3764  01-01-2016 00:00   polaris/catalog/models/partition_statistics_file.py
     1719  01-01-2016 00:00   polaris/catalog/models/plan_status.py
     5680  01-01-2016 00:00   polaris/catalog/models/plan_table_scan_request.py
     8391  01-01-2016 00:00   polaris/catalog/models/plan_table_scan_result.py
     5469  01-01-2016 00:00   polaris/catalog/models/policy.py
     4212  01-01-2016 00:00   polaris/catalog/models/policy_attachment_target.py
     3505  01-01-2016 00:00   polaris/catalog/models/policy_identifier.py
     4982  01-01-2016 00:00   polaris/catalog/models/position_delete_file.py
    17550  01-01-2016 00:00   polaris/catalog/models/primitive_type_value.py
     3537  01-01-2016 00:00   polaris/catalog/models/register_table_request.py
     3559  01-01-2016 00:00   polaris/catalog/models/remove_partition_specs_update.py
     3579  01-01-2016 00:00   polaris/catalog/models/remove_partition_statistics_update.py
     3499  01-01-2016 00:00   polaris/catalog/models/remove_properties_update.py
     3530  01-01-2016 00:00   polaris/catalog/models/remove_snapshot_ref_update.py
     3547  01-01-2016 00:00   polaris/catalog/models/remove_snapshots_update.py
     3543  01-01-2016 00:00   polaris/catalog/models/remove_statistics_update.py
     4019  01-01-2016 00:00   polaris/catalog/models/rename_table_request.py
     5748  01-01-2016 00:00   polaris/catalog/models/report_metrics_request.py
     5162  01-01-2016 00:00   polaris/catalog/models/scan_report.py
     5321  01-01-2016 00:00   polaris/catalog/models/scan_tasks.py
     3614  01-01-2016 00:00   polaris/catalog/models/set_current_schema_update.py
     3665  01-01-2016 00:00   polaris/catalog/models/set_current_view_version_update.py
     3646  01-01-2016 00:00   polaris/catalog/models/set_default_sort_order_update.py
     3612  01-01-2016 00:00   polaris/catalog/models/set_default_spec_update.py
     3745  01-01-2016 00:00   polaris/catalog/models/set_expression.py
     3473  01-01-2016 00:00   polaris/catalog/models/set_location_update.py
     3673  01-01-2016 00:00   polaris/catalog/models/set_partition_statistics_update.py
     3491  01-01-2016 00:00   polaris/catalog/models/set_properties_update.py
     4525  01-01-2016 00:00   polaris/catalog/models/set_snapshot_ref_update.py
     3821  01-01-2016 00:00   polaris/catalog/models/set_statistics_update.py
     4601  01-01-2016 00:00   polaris/catalog/models/snapshot.py
     3553  01-01-2016 00:00   polaris/catalog/models/snapshot_log_inner.py
     4325  01-01-2016 00:00   polaris/catalog/models/snapshot_reference.py
     4303  01-01-2016 00:00   polaris/catalog/models/snapshot_summary.py
     1624  01-01-2016 00:00   polaris/catalog/models/sort_direction.py
     3810  01-01-2016 00:00   polaris/catalog/models/sort_field.py
     3995  01-01-2016 00:00   polaris/catalog/models/sort_order.py
     3520  01-01-2016 00:00   polaris/catalog/models/sql_view_representation.py
     4585  01-01-2016 00:00   polaris/catalog/models/statistics_file.py
     3694  01-01-2016 00:00   polaris/catalog/models/storage_credential.py
     4951  01-01-2016 00:00   polaris/catalog/models/struct_field.py
     4221  01-01-2016 00:00   polaris/catalog/models/struct_type.py
     3526  01-01-2016 00:00   polaris/catalog/models/table_identifier.py
    11336  01-01-2016 00:00   polaris/catalog/models/table_metadata.py
     7060  01-01-2016 00:00   polaris/catalog/models/table_requirement.py
    20637  01-01-2016 00:00   polaris/catalog/models/table_update.py
     4200  01-01-2016 00:00   polaris/catalog/models/table_update_notification.py
     6053  01-01-2016 00:00   polaris/catalog/models/term.py
     3613  01-01-2016 00:00   polaris/catalog/models/timer_result.py
     2440  01-01-2016 00:00   polaris/catalog/models/token_type.py
     3758  01-01-2016 00:00   polaris/catalog/models/transform_term.py
     3354  01-01-2016 00:00   polaris/catalog/models/true_expression.py
     7384  01-01-2016 00:00   polaris/catalog/models/type.py
     3743  01-01-2016 00:00   polaris/catalog/models/unary_expression.py
     3580  01-01-2016 00:00   polaris/catalog/models/update_namespace_properties_request.py
     3981  01-01-2016 00:00   polaris/catalog/models/update_namespace_properties_response.py
     3717  01-01-2016 00:00   polaris/catalog/models/update_policy_request.py
     3565  01-01-2016 00:00   polaris/catalog/models/upgrade_format_version_update.py
     4136  01-01-2016 00:00   polaris/catalog/models/value_map.py
     3548  01-01-2016 00:00   polaris/catalog/models/view_history_entry.py
     5774  01-01-2016 00:00   polaris/catalog/models/view_metadata.py
     5589  01-01-2016 00:00   polaris/catalog/models/view_representation.py
     5507  01-01-2016 00:00   polaris/catalog/models/view_requirement.py
    11137  01-01-2016 00:00   polaris/catalog/models/view_update.py
     4892  01-01-2016 00:00   polaris/catalog/models/view_version.py
    83740  01-01-2016 00:00   polaris/catalog/py.typed
    10295  01-01-2016 00:00   polaris/catalog/rest.py
        0  01-01-2016 00:00   polaris/management/.keep
     6140  01-01-2016 00:00   polaris/management/__init__.py
        0  01-01-2016 00:00   polaris/management/api/.keep
      911  01-01-2016 00:00   polaris/management/api/__init__.py
   377204  01-01-2016 00:00   polaris/management/api/polaris_default_api.py
    28305  01-01-2016 00:00   polaris/management/api_client.py
     1442  01-01-2016 00:00   polaris/management/api_response.py
    19220  01-01-2016 00:00   polaris/management/configuration.py
     7278  01-01-2016 00:00   polaris/management/exceptions.py
        0  01-01-2016 00:00   polaris/management/models/.keep
     5487  01-01-2016 00:00   polaris/management/models/__init__.py
     3594  01-01-2016 00:00   polaris/management/models/add_grant_request.py
     6443  01-01-2016 00:00   polaris/management/models/authentication_parameters.py
     3576  01-01-2016 00:00   polaris/management/models/aws_iam_service_identity_info.py
     5645  01-01-2016 00:00   polaris/management/models/aws_storage_config_info.py
     4105  01-01-2016 00:00   polaris/management/models/azure_storage_config_info.py
     3630  01-01-2016 00:00   polaris/management/models/bearer_authentication_parameters.py
     7122  01-01-2016 00:00   polaris/management/models/catalog.py
     3465  01-01-2016 00:00   polaris/management/models/catalog_grant.py
     2982  01-01-2016 00:00   polaris/management/models/catalog_privilege.py
     4000  01-01-2016 00:00   polaris/management/models/catalog_properties.py
     4541  01-01-2016 00:00   polaris/management/models/catalog_role.py
     3788  01-01-2016 00:00   polaris/management/models/catalog_roles.py
     3752  01-01-2016 00:00   polaris/management/models/catalogs.py
     7005  01-01-2016 00:00   polaris/management/models/connection_config_info.py
     3591  01-01-2016 00:00   polaris/management/models/create_catalog_request.py
     3723  01-01-2016 00:00   polaris/management/models/create_catalog_role_request.py
     3975  01-01-2016 00:00   polaris/management/models/create_principal_request.py
     3759  01-01-2016 00:00   polaris/management/models/create_principal_role_request.py
     5087  01-01-2016 00:00   polaris/management/models/external_catalog.py
     3461  01-01-2016 00:00   polaris/management/models/file_storage_config_info.py
     3717  01-01-2016 00:00   polaris/management/models/gcp_storage_config_info.py
     3719  01-01-2016 00:00   polaris/management/models/grant_catalog_role_request.py
     3755  01-01-2016 00:00   polaris/management/models/grant_principal_role_request.py
     5798  01-01-2016 00:00   polaris/management/models/grant_resource.py
     3760  01-01-2016 00:00   polaris/management/models/grant_resources.py
     4598  01-01-2016 00:00   polaris/management/models/hadoop_connection_config_info.py
     4579  01-01-2016 00:00   polaris/management/models/hive_connection_config_info.py
     4870  01-01-2016 00:00   polaris/management/models/iceberg_rest_connection_config_info.py
     3618  01-01-2016 00:00   polaris/management/models/implicit_authentication_parameters.py
     3581  01-01-2016 00:00   polaris/management/models/namespace_grant.py
     2882  01-01-2016 00:00   polaris/management/models/namespace_privilege.py
     4005  01-01-2016 00:00   polaris/management/models/o_auth_client_credentials_parameters.py
     4539  01-01-2016 00:00   polaris/management/models/polaris_catalog.py
     3685  01-01-2016 00:00   polaris/management/models/policy_grant.py
     1825  01-01-2016 00:00   polaris/management/models/policy_privilege.py
     4717  01-01-2016 00:00   polaris/management/models/principal.py
     4845  01-01-2016 00:00   polaris/management/models/principal_role.py
     3748  01-01-2016 00:00   polaris/management/models/principal_roles.py
     4229  01-01-2016 00:00   polaris/management/models/principal_with_credentials.py
     3610  01-01-2016 00:00   polaris/management/models/principal_with_credentials_credentials.py
     3785  01-01-2016 00:00   polaris/management/models/principals.py
     3857  01-01-2016 00:00   polaris/management/models/reset_principal_request.py
     3606  01-01-2016 00:00   polaris/management/models/revoke_grant_request.py
     5021  01-01-2016 00:00   polaris/management/models/service_identity_info.py
     4349  01-01-2016 00:00   polaris/management/models/sig_v4_authentication_parameters.py
     6157  01-01-2016 00:00   polaris/management/models/storage_config_info.py
     3768  01-01-2016 00:00   polaris/management/models/table_grant.py
     1962  01-01-2016 00:00   polaris/management/models/table_privilege.py
     4441  01-01-2016 00:00   polaris/management/models/update_catalog_request.py
     3734  01-01-2016 00:00   polaris/management/models/update_catalog_role_request.py
     3725  01-01-2016 00:00   polaris/management/models/update_principal_request.py
     3742  01-01-2016 00:00   polaris/management/models/update_principal_role_request.py
     3756  01-01-2016 00:00   polaris/management/models/view_grant.py
     1771  01-01-2016 00:00   polaris/management/models/view_privilege.py
    82950  01-01-2016 00:00   polaris/management/py.typed
    10223  01-01-2016 00:00   polaris/management/rest.py
     2510  01-01-2016 00:00   polaris-1.0.0.dist-info/METADATA
      106  01-01-2016 00:00   polaris-1.0.0.dist-info/WHEEL
       48  01-01-2016 00:00   polaris-1.0.0.dist-info/entry_points.txt
    25147  01-01-2016 00:00   polaris-1.0.0.dist-info/RECORD
---------                     -------
  2825153                     253 files

Content for sdist:

➜  python git:(client_openapi_symbolic_link) tar -tzf dist/polaris-1.0.0.tar.gz
polaris-1.0.0/README.md
polaris-1.0.0/cli/__init__.py
polaris-1.0.0/cli/command/__init__.py
polaris-1.0.0/cli/command/catalog_roles.py
polaris-1.0.0/cli/command/catalogs.py
polaris-1.0.0/cli/command/namespaces.py
polaris-1.0.0/cli/command/principal_roles.py
polaris-1.0.0/cli/command/principals.py
polaris-1.0.0/cli/command/privileges.py
polaris-1.0.0/cli/command/profiles.py
polaris-1.0.0/cli/constants.py
polaris-1.0.0/cli/options/__init__.py
polaris-1.0.0/cli/options/option_tree.py
polaris-1.0.0/cli/options/parser.py
polaris-1.0.0/cli/polaris_cli.py
polaris-1.0.0/generate_clients.py
polaris-1.0.0/polaris/.keep
polaris-1.0.0/polaris/__init__.py
polaris-1.0.0/polaris/catalog/.keep
polaris-1.0.0/polaris/catalog/__init__.py
polaris-1.0.0/polaris/catalog/api/.keep
polaris-1.0.0/polaris/catalog/api/__init__.py
polaris-1.0.0/polaris/catalog/api/catalog_api.py
polaris-1.0.0/polaris/catalog/api/configuration_api.py
polaris-1.0.0/polaris/catalog/api/generic_table_api.py
polaris-1.0.0/polaris/catalog/api/iceberg_catalog_api.py
polaris-1.0.0/polaris/catalog/api/iceberg_configuration_api.py
polaris-1.0.0/polaris/catalog/api/iceberg_o_auth2_api.py
polaris-1.0.0/polaris/catalog/api/o_auth2_api.py
polaris-1.0.0/polaris/catalog/api/policy_api.py
polaris-1.0.0/polaris/catalog/api_client.py
polaris-1.0.0/polaris/catalog/api_response.py
polaris-1.0.0/polaris/catalog/configuration.py
polaris-1.0.0/polaris/catalog/exceptions.py
polaris-1.0.0/polaris/catalog/models/.keep
polaris-1.0.0/polaris/catalog/models/__init__.py
polaris-1.0.0/polaris/catalog/models/add_partition_spec_update.py
polaris-1.0.0/polaris/catalog/models/add_schema_update.py
polaris-1.0.0/polaris/catalog/models/add_snapshot_update.py
polaris-1.0.0/polaris/catalog/models/add_sort_order_update.py
polaris-1.0.0/polaris/catalog/models/add_view_version_update.py
polaris-1.0.0/polaris/catalog/models/and_or_expression.py
polaris-1.0.0/polaris/catalog/models/applicable_policy.py
polaris-1.0.0/polaris/catalog/models/assert_create.py
polaris-1.0.0/polaris/catalog/models/assert_current_schema_id.py
polaris-1.0.0/polaris/catalog/models/assert_default_sort_order_id.py
polaris-1.0.0/polaris/catalog/models/assert_default_spec_id.py
polaris-1.0.0/polaris/catalog/models/assert_last_assigned_field_id.py
polaris-1.0.0/polaris/catalog/models/assert_last_assigned_partition_id.py
polaris-1.0.0/polaris/catalog/models/assert_ref_snapshot_id.py
polaris-1.0.0/polaris/catalog/models/assert_table_uuid.py
polaris-1.0.0/polaris/catalog/models/assert_view_uuid.py
polaris-1.0.0/polaris/catalog/models/assign_uuid_update.py
polaris-1.0.0/polaris/catalog/models/async_planning_result.py
polaris-1.0.0/polaris/catalog/models/attach_policy_request.py
polaris-1.0.0/polaris/catalog/models/base_update.py
polaris-1.0.0/polaris/catalog/models/blob_metadata.py
polaris-1.0.0/polaris/catalog/models/catalog_config.py
polaris-1.0.0/polaris/catalog/models/commit_report.py
polaris-1.0.0/polaris/catalog/models/commit_table_request.py
polaris-1.0.0/polaris/catalog/models/commit_table_response.py
polaris-1.0.0/polaris/catalog/models/commit_transaction_request.py
polaris-1.0.0/polaris/catalog/models/commit_view_request.py
polaris-1.0.0/polaris/catalog/models/completed_planning_result.py
polaris-1.0.0/polaris/catalog/models/completed_planning_with_id_result.py
polaris-1.0.0/polaris/catalog/models/content_file.py
polaris-1.0.0/polaris/catalog/models/count_map.py
polaris-1.0.0/polaris/catalog/models/counter_result.py
polaris-1.0.0/polaris/catalog/models/create_generic_table_request.py
polaris-1.0.0/polaris/catalog/models/create_namespace_request.py
polaris-1.0.0/polaris/catalog/models/create_namespace_response.py
polaris-1.0.0/polaris/catalog/models/create_policy_request.py
polaris-1.0.0/polaris/catalog/models/create_table_request.py
polaris-1.0.0/polaris/catalog/models/create_view_request.py
polaris-1.0.0/polaris/catalog/models/data_file.py
polaris-1.0.0/polaris/catalog/models/delete_file.py
polaris-1.0.0/polaris/catalog/models/detach_policy_request.py
polaris-1.0.0/polaris/catalog/models/empty_planning_result.py
polaris-1.0.0/polaris/catalog/models/enable_row_lineage_update.py
polaris-1.0.0/polaris/catalog/models/equality_delete_file.py
polaris-1.0.0/polaris/catalog/models/error_model.py
polaris-1.0.0/polaris/catalog/models/expression.py
polaris-1.0.0/polaris/catalog/models/failed_planning_result.py
polaris-1.0.0/polaris/catalog/models/false_expression.py
polaris-1.0.0/polaris/catalog/models/fetch_planning_result.py
polaris-1.0.0/polaris/catalog/models/fetch_scan_tasks_request.py
polaris-1.0.0/polaris/catalog/models/fetch_scan_tasks_result.py
polaris-1.0.0/polaris/catalog/models/file_format.py
polaris-1.0.0/polaris/catalog/models/file_scan_task.py
polaris-1.0.0/polaris/catalog/models/generic_table.py
polaris-1.0.0/polaris/catalog/models/get_applicable_policies_response.py
polaris-1.0.0/polaris/catalog/models/get_namespace_response.py
polaris-1.0.0/polaris/catalog/models/iceberg_error_response.py
polaris-1.0.0/polaris/catalog/models/iceberg_error_response1.py
polaris-1.0.0/polaris/catalog/models/list_generic_tables_response.py
polaris-1.0.0/polaris/catalog/models/list_namespaces_response.py
polaris-1.0.0/polaris/catalog/models/list_policies_response.py
polaris-1.0.0/polaris/catalog/models/list_tables_response.py
polaris-1.0.0/polaris/catalog/models/list_type.py
polaris-1.0.0/polaris/catalog/models/literal_expression.py
polaris-1.0.0/polaris/catalog/models/load_credentials_response.py
polaris-1.0.0/polaris/catalog/models/load_generic_table_response.py
polaris-1.0.0/polaris/catalog/models/load_policy_response.py
polaris-1.0.0/polaris/catalog/models/load_table_result.py
polaris-1.0.0/polaris/catalog/models/load_view_result.py
polaris-1.0.0/polaris/catalog/models/map_type.py
polaris-1.0.0/polaris/catalog/models/metadata_log_inner.py
polaris-1.0.0/polaris/catalog/models/metric_result.py
polaris-1.0.0/polaris/catalog/models/model_schema.py
polaris-1.0.0/polaris/catalog/models/not_expression.py
polaris-1.0.0/polaris/catalog/models/notification_request.py
polaris-1.0.0/polaris/catalog/models/notification_type.py
polaris-1.0.0/polaris/catalog/models/null_order.py
polaris-1.0.0/polaris/catalog/models/o_auth_error.py
polaris-1.0.0/polaris/catalog/models/o_auth_token_response.py
polaris-1.0.0/polaris/catalog/models/partition_field.py
polaris-1.0.0/polaris/catalog/models/partition_spec.py
polaris-1.0.0/polaris/catalog/models/partition_statistics_file.py
polaris-1.0.0/polaris/catalog/models/plan_status.py
polaris-1.0.0/polaris/catalog/models/plan_table_scan_request.py
polaris-1.0.0/polaris/catalog/models/plan_table_scan_result.py
polaris-1.0.0/polaris/catalog/models/policy.py
polaris-1.0.0/polaris/catalog/models/policy_attachment_target.py
polaris-1.0.0/polaris/catalog/models/policy_identifier.py
polaris-1.0.0/polaris/catalog/models/position_delete_file.py
polaris-1.0.0/polaris/catalog/models/primitive_type_value.py
polaris-1.0.0/polaris/catalog/models/register_table_request.py
polaris-1.0.0/polaris/catalog/models/remove_partition_specs_update.py
polaris-1.0.0/polaris/catalog/models/remove_partition_statistics_update.py
polaris-1.0.0/polaris/catalog/models/remove_properties_update.py
polaris-1.0.0/polaris/catalog/models/remove_snapshot_ref_update.py
polaris-1.0.0/polaris/catalog/models/remove_snapshots_update.py
polaris-1.0.0/polaris/catalog/models/remove_statistics_update.py
polaris-1.0.0/polaris/catalog/models/rename_table_request.py
polaris-1.0.0/polaris/catalog/models/report_metrics_request.py
polaris-1.0.0/polaris/catalog/models/scan_report.py
polaris-1.0.0/polaris/catalog/models/scan_tasks.py
polaris-1.0.0/polaris/catalog/models/set_current_schema_update.py
polaris-1.0.0/polaris/catalog/models/set_current_view_version_update.py
polaris-1.0.0/polaris/catalog/models/set_default_sort_order_update.py
polaris-1.0.0/polaris/catalog/models/set_default_spec_update.py
polaris-1.0.0/polaris/catalog/models/set_expression.py
polaris-1.0.0/polaris/catalog/models/set_location_update.py
polaris-1.0.0/polaris/catalog/models/set_partition_statistics_update.py
polaris-1.0.0/polaris/catalog/models/set_properties_update.py
polaris-1.0.0/polaris/catalog/models/set_snapshot_ref_update.py
polaris-1.0.0/polaris/catalog/models/set_statistics_update.py
polaris-1.0.0/polaris/catalog/models/snapshot.py
polaris-1.0.0/polaris/catalog/models/snapshot_log_inner.py
polaris-1.0.0/polaris/catalog/models/snapshot_reference.py
polaris-1.0.0/polaris/catalog/models/snapshot_summary.py
polaris-1.0.0/polaris/catalog/models/sort_direction.py
polaris-1.0.0/polaris/catalog/models/sort_field.py
polaris-1.0.0/polaris/catalog/models/sort_order.py
polaris-1.0.0/polaris/catalog/models/sql_view_representation.py
polaris-1.0.0/polaris/catalog/models/statistics_file.py
polaris-1.0.0/polaris/catalog/models/storage_credential.py
polaris-1.0.0/polaris/catalog/models/struct_field.py
polaris-1.0.0/polaris/catalog/models/struct_type.py
polaris-1.0.0/polaris/catalog/models/table_identifier.py
polaris-1.0.0/polaris/catalog/models/table_metadata.py
polaris-1.0.0/polaris/catalog/models/table_requirement.py
polaris-1.0.0/polaris/catalog/models/table_update.py
polaris-1.0.0/polaris/catalog/models/table_update_notification.py
polaris-1.0.0/polaris/catalog/models/term.py
polaris-1.0.0/polaris/catalog/models/timer_result.py
polaris-1.0.0/polaris/catalog/models/token_type.py
polaris-1.0.0/polaris/catalog/models/transform_term.py
polaris-1.0.0/polaris/catalog/models/true_expression.py
polaris-1.0.0/polaris/catalog/models/type.py
polaris-1.0.0/polaris/catalog/models/unary_expression.py
polaris-1.0.0/polaris/catalog/models/update_namespace_properties_request.py
polaris-1.0.0/polaris/catalog/models/update_namespace_properties_response.py
polaris-1.0.0/polaris/catalog/models/update_policy_request.py
polaris-1.0.0/polaris/catalog/models/upgrade_format_version_update.py
polaris-1.0.0/polaris/catalog/models/value_map.py
polaris-1.0.0/polaris/catalog/models/view_history_entry.py
polaris-1.0.0/polaris/catalog/models/view_metadata.py
polaris-1.0.0/polaris/catalog/models/view_representation.py
polaris-1.0.0/polaris/catalog/models/view_requirement.py
polaris-1.0.0/polaris/catalog/models/view_update.py
polaris-1.0.0/polaris/catalog/models/view_version.py
polaris-1.0.0/polaris/catalog/py.typed
polaris-1.0.0/polaris/catalog/rest.py
polaris-1.0.0/polaris/management/.keep
polaris-1.0.0/polaris/management/__init__.py
polaris-1.0.0/polaris/management/api/.keep
polaris-1.0.0/polaris/management/api/__init__.py
polaris-1.0.0/polaris/management/api/polaris_default_api.py
polaris-1.0.0/polaris/management/api_client.py
polaris-1.0.0/polaris/management/api_response.py
polaris-1.0.0/polaris/management/configuration.py
polaris-1.0.0/polaris/management/exceptions.py
polaris-1.0.0/polaris/management/models/.keep
polaris-1.0.0/polaris/management/models/__init__.py
polaris-1.0.0/polaris/management/models/add_grant_request.py
polaris-1.0.0/polaris/management/models/authentication_parameters.py
polaris-1.0.0/polaris/management/models/aws_iam_service_identity_info.py
polaris-1.0.0/polaris/management/models/aws_storage_config_info.py
polaris-1.0.0/polaris/management/models/azure_storage_config_info.py
polaris-1.0.0/polaris/management/models/bearer_authentication_parameters.py
polaris-1.0.0/polaris/management/models/catalog.py
polaris-1.0.0/polaris/management/models/catalog_grant.py
polaris-1.0.0/polaris/management/models/catalog_privilege.py
polaris-1.0.0/polaris/management/models/catalog_properties.py
polaris-1.0.0/polaris/management/models/catalog_role.py
polaris-1.0.0/polaris/management/models/catalog_roles.py
polaris-1.0.0/polaris/management/models/catalogs.py
polaris-1.0.0/polaris/management/models/connection_config_info.py
polaris-1.0.0/polaris/management/models/create_catalog_request.py
polaris-1.0.0/polaris/management/models/create_catalog_role_request.py
polaris-1.0.0/polaris/management/models/create_principal_request.py
polaris-1.0.0/polaris/management/models/create_principal_role_request.py
polaris-1.0.0/polaris/management/models/external_catalog.py
polaris-1.0.0/polaris/management/models/file_storage_config_info.py
polaris-1.0.0/polaris/management/models/gcp_storage_config_info.py
polaris-1.0.0/polaris/management/models/grant_catalog_role_request.py
polaris-1.0.0/polaris/management/models/grant_principal_role_request.py
polaris-1.0.0/polaris/management/models/grant_resource.py
polaris-1.0.0/polaris/management/models/grant_resources.py
polaris-1.0.0/polaris/management/models/hadoop_connection_config_info.py
polaris-1.0.0/polaris/management/models/hive_connection_config_info.py
polaris-1.0.0/polaris/management/models/iceberg_rest_connection_config_info.py
polaris-1.0.0/polaris/management/models/implicit_authentication_parameters.py
polaris-1.0.0/polaris/management/models/namespace_grant.py
polaris-1.0.0/polaris/management/models/namespace_privilege.py
polaris-1.0.0/polaris/management/models/o_auth_client_credentials_parameters.py
polaris-1.0.0/polaris/management/models/polaris_catalog.py
polaris-1.0.0/polaris/management/models/policy_grant.py
polaris-1.0.0/polaris/management/models/policy_privilege.py
polaris-1.0.0/polaris/management/models/principal.py
polaris-1.0.0/polaris/management/models/principal_role.py
polaris-1.0.0/polaris/management/models/principal_roles.py
polaris-1.0.0/polaris/management/models/principal_with_credentials.py
polaris-1.0.0/polaris/management/models/principal_with_credentials_credentials.py
polaris-1.0.0/polaris/management/models/principals.py
polaris-1.0.0/polaris/management/models/reset_principal_request.py
polaris-1.0.0/polaris/management/models/revoke_grant_request.py
polaris-1.0.0/polaris/management/models/service_identity_info.py
polaris-1.0.0/polaris/management/models/sig_v4_authentication_parameters.py
polaris-1.0.0/polaris/management/models/storage_config_info.py
polaris-1.0.0/polaris/management/models/table_grant.py
polaris-1.0.0/polaris/management/models/table_privilege.py
polaris-1.0.0/polaris/management/models/update_catalog_request.py
polaris-1.0.0/polaris/management/models/update_catalog_role_request.py
polaris-1.0.0/polaris/management/models/update_principal_request.py
polaris-1.0.0/polaris/management/models/update_principal_role_request.py
polaris-1.0.0/polaris/management/models/view_grant.py
polaris-1.0.0/polaris/management/models/view_privilege.py
polaris-1.0.0/polaris/management/py.typed
polaris-1.0.0/polaris/management/rest.py
polaris-1.0.0/pyproject.toml
polaris-1.0.0/spec/README.md
polaris-1.0.0/spec/generated/bundled-polaris-catalog-service.yaml
polaris-1.0.0/spec/iceberg-rest-catalog-open-api.yaml
polaris-1.0.0/spec/polaris-catalog-apis/generic-tables-api.yaml
polaris-1.0.0/spec/polaris-catalog-apis/notifications-api.yaml
polaris-1.0.0/spec/polaris-catalog-apis/oauth-tokens-api.yaml
polaris-1.0.0/spec/polaris-catalog-apis/policy-apis.yaml
polaris-1.0.0/spec/polaris-catalog-service.yaml
polaris-1.0.0/spec/polaris-management-service.yml
polaris-1.0.0/templates/header-cfg.txt
polaris-1.0.0/templates/header-ini.txt
polaris-1.0.0/templates/header-json5.txt
polaris-1.0.0/templates/header-md.txt
polaris-1.0.0/templates/header-py.txt
polaris-1.0.0/templates/header-sh.txt
polaris-1.0.0/templates/header-toml.txt
polaris-1.0.0/templates/header-txt.txt
polaris-1.0.0/templates/header-typed.txt
polaris-1.0.0/templates/header-xml.txt
polaris-1.0.0/templates/header-yaml.txt
polaris-1.0.0/templates/header-yml.txt
polaris-1.0.0/PKG-INFO

Copy link
Contributor

@HonahX HonahX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you so much for updating this and doing all the validation! I just have some minor comments about the spec files copy script.

BTW, shall we update the version in pyproject.toml to 1.1.0 to match the version of the overall project?

Copy link
Contributor

@HonahX HonahX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-project-automation github-project-automation bot moved this from PRs In Progress to Ready to merge in Basic Kanban Board Sep 15, 2025
@HonahX HonahX merged commit 97b6fe8 into apache:main Sep 15, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from Ready to merge to Done in Basic Kanban Board Sep 15, 2025
snazy added a commit to snazy/polaris that referenced this pull request Nov 20, 2025
* Support sdist client distribution (apache#2557)

This PR addresses the binary distribution issue described in apache#2419
. The goal is to include only the files required for an end-user to build the client locally (the repository already supports wheel distribution).

For the sdist build, this PR takes a slightly different approach than the symbolic link solution proposed in [apache#2419]. Instead of using symbolic links, it copies the necessary files from the project root into the client directory (if they do not already exist) and then uses that directory during sdist mode. This approach avoids errors caused by Poetry’s path checks, since symbolic links pointing outside the client directory fail validation.

* Python client: remove tox (apache#2562)

* Update dependency io.smallrye.common:smallrye-common-annotation to v2.13.9 (apache#2567)

* Fix H2 JDBC schema init script (apache#2564)

Change additional_properties column type from JSONB to TEXT in schema-v3.sql, since JSOnB is not a valid H2 type.

* Pin virtualenv version to fix python client installation issue (apache#2569)

```
Package operations: 1 install, 1 update, 0 removals

  - Updating virtualenv (20.32.0 -> 20.34.0)
  - Installing pyiceberg (0.10.0): Failed

  AttributeError

  'PythonInfo' object has no attribute 'tcl_lib'

  at ~/tmp/3/polaris/polaris-venv/lib/python3.13/site-packages/virtualenv/activation/via_template.py:50 in replacements
       46│             "__VIRTUAL_ENV__": str(creator.dest),
       47│             "__VIRTUAL_NAME__": creator.env_name,
       48│             "__BIN_NAME__": str(creator.bin_dir.relative_to(creator.dest)),
       49│             "__PATH_SEP__": os.pathsep,
    →  50│             "__TCL_LIBRARY__": creator.interpreter.tcl_lib or "",
       51│             "__TK_LIBRARY__": creator.interpreter.tk_lib or "",
       52│         }
       53│
       54│     def _generate(self, replacements, templates, to_folder, creator):
```
Currently user may get the above error when running `./polaris` for the first time. This is caused by an upstream bug in `virtualenv>=20.33.0` and a bug in poetry that mistakenly upgrade the package version even if it is not compatible: python-poetry/poetry#10504 (comment).

This PR fix the issue by pinning the `virtualenv` version to match what's in upstream poetry: https://github.com/python-poetry/poetry/blob/a8f0889a54a545ec4f7ceed7bf41f8c2a7677bbb/pyproject.toml#L31

* Make column events.request_id nullable (apache#2566)

The request ID is an optional information coming from the REST request. This PR makes it nullable in the database schema.

This PR also annotates the `ModelEvent.principalName` and `PolarisEvent.principalName` fields as nullable in code (the corresponding column was already nullable in the database schema).

* Remove DROP statements from SQL init scripts (apache#2565)

SQL init scripts must be idempotent, because they may be invoked several times by a Polaris server during realm bootstrapping (the script is invoked once per realm to bootstrap).

It is therefore not possible to put any DROP statements in the scripts.

* Avoid using jackson method for parsing YAML from any URL in RootCredentialsSet (apache#2543)

* Avoid using jackson method for parsing YAML from any URL in RootCredentialsSet.

As discussed FasterXML/jackson-core#803
this method can lead to hidden issues and got deprecated.

Instead, we manage URL steams locally in RootCredentialsSet
and permit only those URLs that do not have the host component
(such as files and java resources)... which makes sense to
do from a general security perspective too.

* fix password in README.md for ``./gradlew run` (apache#2572)

Use the password that matches what the `run` task actually configures.

* Site: Add the blog link in the website (apache#2575)

* Revert "fix password in README.md for ``./gradlew run` (apache#2572)" (apache#2576)

This reverts commit 08086b3.

* Site: Remove the dummy post (apache#2579)

Co-authored-by: Yufei Gu <yufei.apache.org>

* Update registry.access.redhat.com/ubi9/openjdk-21-runtime Docker tag to v1.23-6.1757607786 (apache#2577)

* Last merged commit 6c4e1b8

---------

Co-authored-by: Yong Zheng <[email protected]>
Co-authored-by: Mend Renovate <[email protected]>
Co-authored-by: Alexandre Dutra <[email protected]>
Co-authored-by: Honah (Jonas) J. <[email protected]>
Co-authored-by: Dmitri Bourlatchkov <[email protected]>
Co-authored-by: Yufei Gu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants