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

Reply via email to