Skip to content

Latest commit

 

History

History
42 lines (29 loc) · 1.49 KB

README.md

File metadata and controls

42 lines (29 loc) · 1.49 KB

Substrait Packaging - Java

Java package release machinery.

A single Gradle (9.5.1, Kotlin DSL) multi-project build producing three independently published Maven Central artifacts under the io.substrait group:

  • protobuf — generated Java protobuf bindings
  • antlr — generated Java ANTLR parsers
  • extensions — bundled Substrait extension YAMLs, schemas and test cases

Generated sources are produced at build time from the Substrait specification; nothing generated is committed to the repository.

Local Build

The build reads the Substrait specification from ../substrait (the spec subtree attached by scripts/attach_subtree.sh, or a checkout/symlink placed at the repository root).

cd java

# Build, generate code and run tests for all three artifacts.
# -Pversion sets the artifact version (the spec version with any leading 'v' stripped).
./gradlew build -Pversion=0.78.0

# Install all artifacts to the local Maven repository (~/.m2) for inspection.
./gradlew publishToMavenLocal -Pversion=0.78.0

Publishing

Publishing to Maven Central is handled by GitHub Actions (see .github/workflows/java_*.yml). A single artifact is published with:

./gradlew publishAggregationToCentralPortal -PpublishArtifact=protobuf -Pversion=0.78.0

Publishing requires MAVENCENTRAL_USERNAME / MAVENCENTRAL_PASSWORD (Central Portal token) and SIGNING_KEY_ID / SIGNING_KEY / SIGNING_PASSWORD (PGP signing key), supplied via environment variables in CI.