paleolimbot commented on code in PR #1182: URL: https://github.com/apache/sedona-db/pull/1182#discussion_r3837498975
########## dev/release/README.md: ########## @@ -74,6 +74,12 @@ enable runtime binding generation: export SEDONADB_CARGO_TEST_ARGS="--features bindgen" ``` +The Python test suite includes comparison tests that connect to a PostGIS instance at +`postgresql://localhost:5432/postgres?user=postgres&password=password` when one is +reachable. Start the pinned version with `docker compose up -d postgis` from the +repository root before verifying; an unrelated local PostgreSQL listening on port 5432 +(e.g., an older PostGIS that lacks `ST_HasM`) will cause these tests to fail. Review Comment: Optional, just making sure it's clear it's not strictly needed: ```suggestion The Python test suite includes comparison tests that connect to a PostGIS instance at `postgresql://localhost:5432/postgres?user=postgres&password=password` when one is reachable. A live PostGIS on localhost is not needed for successful verification; however, those who wish to run these extra tests can start the pinned version with `docker compose up -d postgis` from the repository root before verifying; an unrelated local PostgreSQL listening on port 5432 (e.g., an older PostGIS that lacks `ST_HasM`) will cause these tests to fail. ``` ########## dev/release/README.md: ########## @@ -242,26 +248,54 @@ popd ``` Use `twine` to upload the release to PyPI. This will require a token created -in the PyPI UI. +in the PyPI UI. The pure-Python packages (e.g., `sedonadb-expr`) are built with +Metadata-Version 2.5, which requires `twine>=7`. If the token is stored in +`~/.pypirc`, the `[distutils] index-servers` list must include `pypi` or twine will +not read the `[pypi]` section. The native wheels are large, so `--skip-existing` +allows the upload to be resumed if it is interrupted. ```shell -# pip install twine -twine upload wheels/**/*.whl +# pip install "twine>=7" +twine upload --repository pypi --skip-existing wheels/**/*.whl wheels/**/*.tar.gz rm -rf wheels ``` ### Upload to `crates.io` -A script is provided to upload the crates to <https://crates.io>. +A script is provided to upload the crates to <https://crates.io>. Run it from a +checkout of the release tag with submodules initialized (the `sedona-s2geography` +crate compiles the `s2geography` and `s2geometry` submodules during verification). ```shell +git checkout apache-sedona-db-0.4.1 +git submodule update --init c/sedona-s2geography/s2geography c/sedona-s2geography/s2geometry cargo login -dev/release/upload-crates-io.sh +# Validate first, then publish. Tests and the release build can be skipped if the +# release tarball has already been verified. +dev/release/publish-crates.sh --dry-run-local +dev/release/publish-crates.sh --publish --skip-tests --skip-validation ``` -Currently the `[dev-dependencies]` of some crates need to be modified to avoid circular -dependencies (we have a PR in the works to remove these circular dependencies), usually -removing `sedona-testing`. +If publishing stops partway, fix the problem and resume with +`--start-from <crate-name>`. + +`cargo publish` resolves `[dev-dependencies]` that carry a version requirement, so +dev-dependencies that form a cycle with a crate published later must be removed from +the local checkout before publishing (do not commit these changes). As of 0.4.1 these are +`sedona-testing` in `sedona-geometry`, `sedona-gdal`, `sedona-geo-generic-alg`, +`sedona-raster`, `sedona-expr`, and `sedona-functions`; `sedona-proj` in +`sedona-functions`; and `sedona` in `sedona-pointcloud`, `sedona-tg`, `sedona-geos`, +`sedona-geoarrow-c`, and `sedona-s2geography`. Review Comment: This is a bit of a hack and we're actively working on fixing this (I should have put the issue reference to https://github.com/apache/sedona-db/pull/1025 and https://github.com/apache/sedona-db/issues/702 ). I think in general this is frowned upon (modifying sources after a release vote / tag). -- 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]
