viirya opened a new pull request, #53: URL: https://github.com/apache/spark-connect-gateway/pull/53
### What changes were proposed in this pull request? Cleanups found while preparing the first release. None changes runtime behaviour. **Product name.** Use "Apache Spark Connect Gateway" in the two user-visible places that said "Open-source Spark Connect Gateway" -- the clap `about` text shown by `gateway --help` (`crates/gateway/src/main.rs`) and the Helm chart description (`deploy/helm/scg/Chart.yaml`) -- and as the README title, which was the bare repository name. **Links outside the repository.** `README.md` and `docs/architecture.md` linked to documents under `../plans/`, which is not part of this repository. Both now point at the SPIP that proposed the project, [SPARK-58455](https://issues.apache.org/jira/browse/SPARK-58455), which states the problem and links to the design document. In the README the two link definitions for those files are replaced by one for the SPIP; every remaining reference-style link is both defined and used. The README also called the feature set "Production-ready"; it now just lists the features. **Dockerfile.** - The builder was `rust:1.82-slim` while `rust-toolchain.toml` pins 1.99.0, so rustup installed a second toolchain on every build. It is now `rust:1.99.0-slim-bookworm`; rustup only adds the `rustfmt` and `clippy` components `rust-toolchain.toml` lists. - The builder now names its Debian release, with a comment explaining why it must match the runtime image (see below). - `libssl-dev` and `pkg-config` are no longer installed. Nothing in the dependency graph uses `openssl-sys` -- TLS is rustls with ring -- and `pkg-config` was only there to locate libssl. ### Why are the changes needed? The ASF name for the product is "Apache Spark Connect Gateway", and it is what users see in `--help` and in the chart. The `../plans/` links are broken for every reader of the Apache repository and of a source release. The Debian pin matters because of how glibc versions work. The runtime stage is `distroless/cc-debian12` (bookworm), and the binary requires the glibc symbol versions of the glibc it was *linked* against in the builder. glibc is only backward compatible, so if the unpinned `rust:*-slim` tag moved to a newer Debian, the build could produce a binary that fails to start on the runtime image with ``version `GLIBC_x.yy' not found``. Pinning the builder to bookworm keeps both stages on the same release; the comment says to move them together. ### Does this PR introduce _any_ user-facing change? Yes, cosmetic only: `gateway --help` prints "Apache Spark Connect Gateway" instead of "Open-source Spark Connect Gateway", and the Helm chart description changes the same way. No configuration, API, or behaviour change. ### How was this patch tested? - `cargo fmt --all -- --check` and `cargo clippy --workspace --all-targets -- -D warnings` -- clean. - `cargo test --workspace` -- 204 passed, 0 failed. - `gateway --help` prints the new name; `helm lint deploy/helm/scg` passes. - The image was built for linux/amd64 from this Dockerfile without `libssl-dev` or `pkg-config`, and the resulting image runs `gateway --version` and `gateway --help`. How the Dockerfile facts were established: `gateway` was built for linux/amd64 with the pinned toolchain on bookworm. `readelf -d` shows it needs only `libc.so.6`, `libm.so.6`, `libgcc_s.so.1` and `ld-linux-x86-64.so.2` (no libssl, no libstdc++), with `GLIBC_2.34` as the highest required symbol version against 2.36 in `distroless/cc-debian12`. The `rust:1.99.0-slim-bookworm` image ships `cargo`, `rustc` and `rust-std` only, which is why rustup still adds `rustfmt` and `clippy`. The e2e jobs build the image from this Dockerfile as well, so CI exercises it independently. ### Was this patch authored or co-authored using generative AI tooling? Yes, co-authored with Claude Code. -- 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]
