Apache Amoro 0.8.1 RC1 Source Release - Review Summary VOTE: 0 (Abstain) - Technical Issues Identified, Lack Project Context for Severity Assessment
============================================================================== PASSED VALIDATIONS License Compliance Excellence - LICENSE file: Proper Apache License 2.0 (verified complete text) - NOTICE file: Correct copyright attribution to Apache Software Foundation - DISCLAIMER file: Proper Apache incubating disclaimers and PMC sponsorship - Source file headers: All 1,799+ source files contain proper Apache license headers - Apache RAT analysis: PERFECT SCORE - 0 unknown licenses, full compliance across all modules - Incubating designation: Properly marked throughout project (version numbers, documentation, build files) Technical Validation - Build requirements: JDK 8, 11, and 17 supported (JDK 17 required for Trino module) - Maven configuration: Valid pom.xml structure across all 36 modules - Source compilation: BUILD SUCCESS after AppleDouble cleanup - Code quality: 0 Checkstyle violations - Project structure: Standard Apache project layout with proper module organization Release Artifacts - Documentation: Comprehensive README with build instructions and architecture - Release tooling: Release scripts and tooling present in /tools/releasing/ - Contributing guidelines: CONTRIBUTING.md with development workflow - Download validation: Download links verified for source tarball and all convenience binaries - Integrity verification: Checksums and signatures validated for all release artifacts =============================================================================== IDENTIFIED TECHNICAL ISSUES 1. AppleDouble Metadata Files (Non-Blocking Based on Precedent) Issue: 2,756 AppleDouble metadata files (._* prefix) included in source release Technical Impact: Binary files in source distribution, causes initial build failure with checkstyle parsing error: [ERROR] IllegalStateException occurred while parsing file ._MetricRegisterListener.java. 1:8: no viable alternative at input 'Mac' Historical Context: CRITICAL FINDING - Present in previously accepted releases: - apache-amoro-0.7.0-incubating-src.tar.gz: Clean (no AppleDouble files) - apache-amoro-0.7.1-incubating-src.tar.gz: Contains AppleDouble files - apache-amoro-0.8.0-incubating-src.tar.gz: Contains AppleDouble files - apache-amoro-0.8.1-incubating-src.tar.gz: Contains AppleDouble files Community Precedent: 0.7.1 and 0.8.0 were officially released and accepted with identical issue Cleanup Command: If build fails due to checkstyle parsing AppleDouble files: find . -name "._*" -type f -delete Mitigation: Removal of files allows successful compilation, proving source code integrity 2. Cross-Platform Extraction Warnings (Cosmetic) Issue: tar extraction on Rocky Linux 9 (Blue Onyx) shows warnings: tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' amoro-0.8.1-incubating/tools/maven/checkstyle.xml Technical Cause: Archive created with macOS libarchive including extended attributes Impact: Cosmetic warnings only, does not prevent extraction or usage User Experience: Confusing but non-blocking warnings during tar extraction 3. Version Display Inconsistency Between Source and Binary Releases (Significant) Issue: Source and binary releases produce completely different version information in the AMS UI: Actual UI Display Comparison: - Source Release Build: "Version: UNKNOWN(UNKNOWN)Commit Time: UNKNOWN" - Binary Release: "Version: 0.8.1-incubating(bc906c0)Commit Time: 2025-08-28T08:55:33+0800" Root Cause Analysis: - VersionController.java:38 attempts to load "amoro/git.properties" from classpath - git-commit-id-plugin in amoro-ams/pom.xml:179 configured to generate git.properties during build - Plugin configuration: generateGitPropertiesFilename= ${project.build.outputDirectory}/amoro/git.properties - Source tarball lacks .git directory, causing plugin to fail silently (fail-on-no-git-dir=false) - Binary release was built from git repository and contains proper git.properties file with actual commit data Technical Implementation Details: // VersionController.java:36-51 Properties prop = new Properties(); InputStream is = VersionController.class.getClassLoader() .getResourceAsStream("amoro/git.properties"); String version = "UNKNOWN"; // Default fallback values String commitTime = "UNKNOWN"; String abbrev = "UNKNOWN"; File System Evidence: - Source build: /target/classes/amoro/git.properties - MISSING - Binary release: Contains git.properties with: git.build.version=0.8.1-incubating git.commit.id.abbrev=bc906c0 git.commit.id.full=bc906c099d674561734ccd8a6ffa74ded9741994 git.commit.time=2025-08-28T08\:55\:33+0800 Operational Impact (if built from source release tarball): - System Administration: Administrators cannot identify running version from UI - Deployment Verification: Impossible to confirm correct version deployment - Troubleshooting: Support teams cannot determine exact build being used - Compliance: Version tracking for audit/compliance purposes compromised User Experience Degradation (if built from source release tarball): - Professional appearance undermined by "UNKNOWN" values in production UI - Confidence in system reduced when basic version information unavailable - Operational workflows disrupted when version verification needed Source/Binary Release Inconsistency: This represents a fundamental violation of Apache release principles where the source release should be authoritative and capable of reproducing the binary release behavior. Users building from the official source distribution receive functionally different software than those using the convenience binary. Release Process Analysis: The root cause is that convenience binaries are built directly from the git repository (create_binary_release.sh uses git clone with -Pfail-on-no-git-dir), while the source tarball excludes .git directory. Apache best practices dictate that convenience binaries should be built FROM the source tarball to ensure reproducibility and catch packaging issues during release process. Verification Test: Manually adding git.properties file to source-built jar results in proper version display, confirming the issue is solely the missing properties file during source builds. Release Quality Assessment: This creates a two-tier user experience where binary users get complete functionality while source builders get degraded capability, undermining the integrity of the source release as the definitive distribution. ============================================================================== BUILD VALIDATION RESULTS Compilation: Initial build failed due to AppleDouble files, successful after cleanup across all 36 modules License Analysis: Apache RAT perfect score - 1,877 files analyzed (1,799 Apache Licensed), 0 violations Code Quality: 0 Checkstyle violations, all quality gates passed Dependencies: All Maven dependencies resolved successfully with JDK 17 ============================================================================== FINAL RECOMMENDATION VOTE: 0 (Abstain) - Technical Issues Identified, Lack Project Context for Severity Assessment Rationale for Abstention: As a reviewer without extensive prior interaction with the Apache Amoro project, I lack the necessary context to assess the severity of identified issues against project-specific historical standards and community priorities. Key Technical Findings: Issues: 1. Source/Binary Runtime Inconsistency: Version display shows "UNKNOWN(UNKNOWN)" vs "0.8.1-incubating(bc906c0)" 2. AppleDouble Files: 2,756 metadata files cause initial build failure (precedent in 0.7.1/0.8.0) 3. Cross-Platform Warnings: macOS extended attributes cause cosmetic tar extraction warnings Strengths: 1. License Compliance: Perfect Apache RAT score (0 violations across 1,799 files) 2. Code Quality: 0 Checkstyle violations, successful compilation of all 36 modules 3. Build System: Functions correctly with documented JDK requirements Critical Assessment Gap: Without project history, I cannot determine: - Whether UI version display inconsistency has existed in previous releases - Community tolerance for source/binary runtime behavior differences - Project-specific release quality standards and precedents - Relative importance of UI functionality versus core features Recommendation for PMC/Regular Contributors: The technical analysis is complete and issues are well-documented. PMC members and regular contributors with project context should evaluate whether: 1. The version display inconsistency warrants blocking the release 2. Historical precedent for similar issues supports acceptance 3. The combination of packaging issues crosses the project's quality threshold Technical Verification Available: - All issues have been reproduced and documented - Fix for version display issue has been verified (adding git.properties works) - Build process tested and validated ============================================================================== RECOMMENDATIONS FOR FUTURE RELEASES For Release Process Improvement: 1. Fix source release packaging to exclude AppleDouble files during tarball creation 2. Consider using GNU tar with "--exclude='._*'" for better cross-platform compatibility 3. Add release checklist item to verify clean packaging without metadata files 4. Include pre-generated git.properties in source tarball or modify build to fall back to Maven project version 5. CRITICAL: Build convenience binaries FROM source tarball instead of directly from git repository to ensure reproducibility and catch source packaging issues during release process 6. Modify create_source_release.sh to generate git.properties before excluding .git directory 7. Modify create_binary_release.sh to extract and build from source tarball rather than git repository For Documentation: 1. Document expected extraction warnings in installation guides 2. Consider adding platform-specific extraction notes ============================================================================== SUMMARY This source release demonstrates excellent license compliance and solid technical foundation. Three primary issues were identified: AppleDouble packaging files (historical precedent in 0.7.1/0.8.0), cross-platform extraction warnings (cosmetic), and source/binary version display inconsistency (significant runtime behavior difference). The most critical finding is that source-built deployments show "UNKNOWN(UNKNOWN)" version information while binary releases display proper version details, creating inconsistent user experiences and operational challenges. Technical validation confirms the source code quality is high, with perfect Apache RAT compliance and successful compilation across all modules after AppleDouble cleanup. ============================================================================== REVIEW METADATA - Reviewed by: Apache Release Review Process - Review date: 2025-09-06 - Review environment: Rocky Linux 9 (Blue Onyx), Maven 3.6.3, JDK 17 (supported per documentation) - Release candidate: apache-amoro-0.8.1-incubating-src.tar.gz - Review methodology: - License compliance verification (Apache RAT) - Source code compilation testing - Download links and artifact integrity validation - Checksum and signature verification - Historical precedent analysis - Cross-platform extraction testing - Source vs binary release comparison - Documentation review On Tue, Sep 2, 2025 at 7:43 PM Zhuojun Jiang <5797...@qq.com.invalid> wrote: > Hello Incubator PMC, > The Apache Amoro community has voted and approved the release of > Apache Amoro(incubating) 0.8.1-incubating rc1. We now kindly request the > IPMC members review and vote for this release. > > Apache Amoro (incubating) is a Lakehouse management system built on > open data lake formats. > Amoro community vote thread: > https://lists.apache.org/thread/h7zcrt7syl1s6vq0c9t7g1zrxkovc027 > > Vote result thread: > https://lists.apache.org/thread/x65svop3p17l4jxkdbnk8715v2jrmrn9 > > The official Apache source release to be deployed to dist.apache.org: > > https://dist.apache.org/repos/dist/dev/incubator/amoro/0.8.1-incubating-RC1/ > > This source release has been signed with a PGP available here (Apache ID: > klion26): > https://downloads.apache.org/incubator/amoro/KEYS > > All artifacts to be deployed to the Maven Central Repository: > https://repository.apache.org/content/repositories/orgapacheamoro-1073 > > Git branch for the release: > https://github.com/apache/amoro/tree/v0.8.1-rc1 > > Please download, verify, and test. > > The VOTE will pass after 3 binding approvals. > [ ] +1 approve > [ ] +0 no opinion > [ ] -1 disapprove with the reason > > To learn more about Apache Amoro, please see https://amoro.apache.org/ > > Checklist for reference: > [ ] Download links are valid. > [ ] Checksums and signatures. > [ ] LICENSE/NOTICE files exist > [ ] No unexpected binary files > [ ] All source files have ASF headers > [ ] Can compile from source >