The GitHub Actions job "C++ Linter" on iceberg-cpp.git/SnapshotUpdate has failed. Run started by GitHub user shangxinli (triggered by shangxinli).
Head commit for run: 7c5302daf33dcf251a239aad5c13a91cb0661ac6 / Xinli Shang <[email protected]> feat: add SnapshotUpdate interface for snapshot-producing operations Add SnapshotUpdate<Derived> interface that extends PendingUpdateTyped<Snapshot> to provide common methods for all updates that create a new table snapshot. This follows the Java Iceberg API pattern where SnapshotUpdate<ThisT> provides a fluent API for operations like AppendFiles, DeleteFiles, and OverwriteFiles. Methods implemented: - Set(): Set summary properties on the snapshot - StageOnly(): Stage snapshot without updating table's current snapshot - DeleteWith(): Set custom file deletion callback for tracking or custom retention - ToBranch(): Commit snapshot to a specific branch (for WAP workflows) Method deferred: - ScanManifestsWith(): Deferred until executor/thread pool infrastructure is available in the codebase. Documented in class comments for future addition. Key features: - Uses CRTP pattern for type-safe fluent API and method chaining - Extends PendingUpdateTyped<Snapshot> to inherit Apply() and Commit() - Protected members allow derived classes to access state - All methods return Derived& for method chaining Testing approach: - Tests verify behavior through public API only (Apply/Commit) - Avoids exposing internal state (no getter methods for protected members) - Mock implementation returns Snapshot with configured properties - 11 comprehensive test cases covering all methods and error paths This interface will be extended by concrete snapshot operations like: - AppendFiles: Add new data files to the table - DeleteFiles: Remove data files from the table - OverwriteFiles: Replace data files in the table - RewriteFiles: Compact and optimize data files Report URL: https://github.com/apache/iceberg-cpp/actions/runs/19711772836 With regards, GitHub Actions via GitBox
