The GitHub Actions job "C++ Linter" on iceberg-cpp.git/ExpireSnapshots has succeeded. Run started by GitHub user shangxinli (triggered by shangxinli).
Head commit for run: 36755e3dbfcb12b3a895470b619a8fd71eeeb4f1 / Xinli Shang <[email protected]> feat: add ExpireSnapshots following 3-goal update pattern Add ExpireSnapshots as a concrete implementation in iceberg/update/ directory, following the 3-goal architecture for table updates. Goals accomplished: 1. TableMetadataBuilder::RemoveSnapshots() methods exist 2. table::RemoveSnapshots TableUpdate class exists 3. Expose via Table::ExpireSnapshots() and Transaction::ExpireSnapshots() Implementation details: - ExpireSnapshots extends PendingUpdateTyped<vector<shared_ptr<Snapshot>>> - Fluent API with builder methods: ExpireSnapshotId, ExpireOlderThan, RetainLast, DeleteWith, SetCleanupLevel - Table::ExpireSnapshots() factory method creates instances - Transaction::ExpireSnapshots() interface method added - Organized in src/iceberg/update/ subdirectory structure Builder methods: - ExpireSnapshotId: Mark specific snapshots for removal by ID - ExpireOlderThan: Expire snapshots older than timestamp - RetainLast: Keep N most recent snapshots - DeleteWith: Custom file deletion callback - SetCleanupLevel: Control cleanup scope (None/MetadataOnly/All) Apply() and Commit() have placeholder implementations that will be completed when snapshot expiration logic is fully implemented. Report URL: https://github.com/apache/iceberg-cpp/actions/runs/19785401707 With regards, GitHub Actions via GitBox
