iemejia opened a new pull request, #3826:
URL: https://github.com/apache/avro/pull/3826

   ## Summary
   
   Modernize the Docker build image (`share/docker/Dockerfile`) to leverage 
BuildKit features, reduce image size, and improve rebuild speed.
   
   ## Changes
   
   ### BuildKit cache mounts
   - Add `# syntax=docker/dockerfile:1` directive for portability
   - Use `--mount=type=cache` for apt, npm, cpanm, and bundler caches — 
eliminates repeated `apt-get update`/`apt-get clean` cycles, produces smaller 
layers, and speeds up rebuilds
   - Use `--mount=type=bind` for Ruby gem resolution (replaces `COPY` layers)
   
   ### Package trimming
   - Replace `libboost-all-dev` (~70+ sub-packages) with only the four Boost 
packages needed by the C++ test suite: `libboost-dev`, `libboost-test-dev`, 
`libboost-random-dev`, `libboost-math-dev`
   - Remove redundant packages already provided by `build-essential` (`g++`, 
`gcc`, `make`) or by other -dev packages (`libsnappy1v5`)
   - Remove `apt-transport-https` (unnecessary on Ubuntu 24.04)
   - Add `--no-install-recommends` to all `apt-get install` calls
   - Add `php-zip` and `unzip` (previously pulled as recommends, needed by 
Composer)
   - Remove Rust toolchain (no longer needed)
   
   ### Housekeeping
   - Convert build-only variables (`MAVEN_VERSION`, `APACHE_DIST_URLS`, 
`PHP8_VERSION`) from `ENV` to `ARG`
   - Remove dead `PIP_NO_CACHE_DIR=off` (misleading and moot with `uv`)
   - Fix .NET SDK install to use `&&` instead of `;` (fail-fast on errors)
   - Fix PHP extension build to use `/tmp/lang/php` (consistent naming, proper 
cleanup)
   - Move Ruby `bundle install` after .NET/Java layers for better cache 
efficiency
   - Move `libbz2-dev`, `libzstd-dev`, `libyaml-dev` to main packages section
   
   ### Python packaging fix (`lang/py/pyproject.toml`)
   - Fix `license-files` path to point to `avro/LICENSE` (actual location)
   - Add `[tool.setuptools.packages.find]` with `include = ["avro*"]` to ensure 
correct package discovery
   - Bump mypy upper bound to `<2.2.0` in `uv.lock`
   
   ## Requirements
   
   Requires Docker BuildKit (default builder since Docker 23.0).


-- 
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