apache / apache/parquet-java

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

Open
#3,682 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

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](https://dist.apache.org/repos/dist/dev/parquet/apache-parquet-1.18.0-rc1/), then run:

```bash
./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:

```text
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](https://repository.apache.org/content/repositories/orgapacheparquet-1081/org/apache/parquet/) correctly contain RC1 commit [`5e2ad0969c7f411613671c5ef054d399995de5f9`](https://github.com/apache/parquet-java/commit/5e2ad0969c7f411613671c5ef054d399995de5f9).

This also reproduces with the official [1.17.0 source distribution](https://archive.apache.org/dist/parquet/apache-parquet-1.17.0/), 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`](https://github.com/apache/parquet-java/blob/apache-parquet-1.18.0-rc1/parquet-generator/src/main/resources/parquet-version.properties).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with parquet-generator/src/main/resources/parquet-version.properties and reproduce the issue with the provided ./mvnw command and VersionGenerator invocation. Inspect the generated Version.java and JAR manifest; done means source-distribution builds no longer emit the unresolved ${buildNumber} placeholder and include the appropriate build identity.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, java
Domain
build-system, release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.