kevinjqliu opened a new pull request, #3563: URL: https://github.com/apache/iceberg-rust/pull/3563
## Which issue does this PR close? <!-- We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. For example `Closes #123` indicates that this PR will close issue #123. --> - N/A ## What changes are included in this PR? <!-- Provide a summary of the modifications in this PR. List the main changes such as new features, bug fixes, refactoring, or any other updates. --> - **No more `LICENSE`/`NOTICE` in `site-packages`.** `[tool.maturin] include` put both files at the wheel root, so installing the wheel wrote `site-packages/LICENSE` (467 KB, including bundled third-party licenses) and `site-packages/NOTICE`. These clash with other packages that do the same, and uninstalling one removes the shared file. maturin already copies both into `dist-info/licenses/` (confirmed in the latest nightly TestPyPI wheel and in maturin's source), so they're now included in the sdist only. The `include` came from #1653, which needed them in the sdist for conda. - **Release wheels must import before publishing.** The release and nightly verify step only installed each wheel. It now also runs `import pyiceberg_core`, which loads the native module, so a wheel that installs but can't load isn't published. Windows arm64, macOS universal2 and the MSRV-toolchain builds only run in these workflows. - **Pin maturin.** `maturin-action` used the newest maturin matching `maturin>=1.9.4,<2.0` at build time, so a maturin release could change published wheels with no repo change. It's now pinned to v1.15.0 (the version in `bindings/python/uv.lock`) through a workflow-level `PINNED_MATURIN_VERSION`. The name avoids `MATURIN_*` because maturin-action forwards `MATURIN_*` variables into the manylinux container. Dependabot bumps `uv.lock` but not this pin, so a comment says to keep them in sync. ## Are these changes tested? <!-- Specify what test covers (unit test, integration test, etc.). If tests are not included in your PR, please explain why (for example, are they covered by existing tests)? --> Manual checks with maturin 1.15.0: - sdist file list is identical before and after (313 files). - `uvx [email protected] build --profile dev -i python3.12`: the wheel has no top-level files, `LICENSE`/`NOTICE` appear only under `dist-info/licenses/`, and `METADATA` has `License-File` entries for both. Passed. - Built wheel installed into a fresh venv, and `python -c "import pyiceberg_core"` run from `bindings/python` loaded it from site-packages. Passed. - `taplo fmt --check bindings/python/pyproject.toml`: passed. All three workflow files parse as YAML. - actionlint reports no new findings (only the existing `$/` local-action warnings). - The maturin v1.15.0 GitHub release exists. ## AI Disclosure <!-- https://iceberg.apache.org/contribute/#guidelines-for-ai-assisted-contributions --> Written with GitHub Copilot. Please check whether pinning maturin (and keeping the pin in sync with `uv.lock` by hand) is acceptable, and confirm the sdist still ships `LICENSE`/`NOTICE` for conda. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
