Skip to content

Source-distribution builds leave ${buildNumber} unresolved in version metadata #3682

Description

@kevinjqliu

Building Parquet directly from the ASF source distribution cannot obtain the Git revision because the archive contains no .git metadata. Maven records a null buildNumber, leaving the placeholder unresolved in generated version information.

Reproduction

Download and extract the source tarball from the 1.18.0 RC1 directory, then run:

./mvnw -f parquet-generator/pom.xml package -DskipTests

tmp_dir=$(mktemp -d)
java -cp parquet-generator/target/parquet-generator-1.18.0.jar \
  org.apache.parquet.version.VersionGenerator "$tmp_dir"

grep FULL_VERSION "$tmp_dir/org/apache/parquet/Version.java"

Result:

parquet-mr version 1.18.0 (build ${buildNumber})

The JAR manifest’s git-SHA-1 entry is also blank. In contrast, the staged Maven JARs correctly contain RC1 commit 5e2ad0969c7f411613671c5ef054d399995de5f9.

This also reproduces with the official 1.17.0 source distribution, while the published 1.17.0 Maven JARs correctly contain release commit fac0c746532e133beb928a7f6a7e57b510b477a1. Therefore, this predates 1.18.0 and is not an RC1 regression.

Impact

Source-built artifacts have incomplete or misleading provenance:

  • Version.FULL_VERSION contains the unresolved placeholder.
  • Parquet files written by those artifacts may include it in created_by.
  • The manifest lacks the Git SHA.
  • Source-built and staged artifacts report different build identities.

The build should embed the release commit or use an explicit fallback rather than emitting an unresolved Maven expression.

Relevant source: parquet-version.properties.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions