Prerequisites
Before building Delta Sharing from source, ensure you have the following installed:Python
Python 3.8+ (or 3.6+ for older versions)
Java
Java 8+ for building Scala components
Scala
Scala 2.12.x or 2.13.x
Rust
Rust toolchain (if building delta-kernel-rust from source)
If you’re on Linux, ensure glibc version >= 2.31 for automatic delta-kernel-rust-sharing-wrapper installation.
Building Python Connector
The Python connector can be built and installed in several ways depending on your use case.Development Mode Installation
For active development, install the package in editable mode. This allows you to make changes to the code and test them immediately without reinstalling:Local Installation
For a standard local installation:Building a Wheel Package
To create a distributable wheel file:python/dist/delta_sharing-x.y.z-py3-none-any.whl that can be distributed and installed on other systems.
Handling Rust Dependencies
To manually build the delta-kernel-rust-sharing-wrapper:- Verify Python version >= 3.8
- Upgrade pip to the latest version:
pip3 install --upgrade pip - Check Linux glibc version >= 2.31
- Install Rust if needed
Building Spark Connector
The Apache Spark connector is built using SBT (Scala Build Tool).Building for Multiple Scala Versions
The project supports both Scala 2.12 and 2.13. To build for a specific version:Building Delta Sharing Server
The reference server can be built as a packaged distribution or Docker image.Building the Server Package
Create a complete server distribution package:Building the Docker Image
Build a local Docker image for containerized deployment:delta-sharing-server:x.y.z. Run it with:
The
<container-port> must match the port specified in your configuration file.Multi-platform Docker Images
The server supports building for multiple platforms using Docker Buildx:linux/arm64(Apple Silicon, ARM servers)linux/amd64(Intel/AMD x86-64)
Building All Components
Common Build Issues
Python build fails with delta-kernel-rust-sharing-wrapper error
Python build fails with delta-kernel-rust-sharing-wrapper error
Solution: Install Rust toolchainOr use an older delta-sharing version that doesn’t require Rust:
SBT build fails with memory error
SBT build fails with memory error
Solution: Increase JVM memory for SBT
Docker build fails or image doesn't run
Docker build fails or image doesn't run
Solution: Verify Docker is installed and runningEnsure you have sufficient disk space for the image build.
Tests fail due to missing dependencies
Tests fail due to missing dependencies
Solution: Ensure all test dependencies are availableFor Python:For Scala, dependencies are managed by SBT automatically.
Advanced SBT Commands
For more control over the build process, you can use these SBT commands:Next Steps
Testing
Run comprehensive tests on your builds
Contributing
Learn how to contribute your changes
Configuration
Configure the Delta Sharing Server
Deployment
Deploy your built components