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]

Reply via email to