geruh commented on code in PR #15679:
URL: https://github.com/apache/iceberg/pull/15679#discussion_r2955957640


##########
site/docs/blog/posts/2026-03-05-iceberg-go-0.5.0-release.md:
##########
@@ -0,0 +1,133 @@
+---
+date: 2026-03-05
+title: Apache Iceberg Go 0.5.0 Release
+slug: apache-iceberg-go-0.5.0-release
+authors:
+  - iceberg-pmc
+categories:
+  - release
+---
+
+<!--
+ - Licensed to the Apache Software Foundation (ASF) under one or more
+ - contributor license agreements.  See the NOTICE file distributed with
+ - this work for additional information regarding copyright ownership.
+ - The ASF licenses this file to You under the Apache License, Version 2.0
+ - (the "License"); you may not use this file except in compliance with
+ - the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing, software
+ - distributed under the License is distributed on an "AS IS" BASIS,
+ - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ - See the License for the specific language governing permissions and
+ - limitations under the License.
+ -->
+
+The Apache Iceberg community is pleased to announce version 0.5.0 of 
[iceberg-go](https://github.com/apache/iceberg-go).
+
+This release covers approximately five months of development since the 0.4.0 
release in October 2025 and is the result of merging over **110 PRs** from **31 
contributors**, including **18 first-time contributors**. See the [full 
changelog](https://github.com/apache/iceberg-go/compare/v0.4.0...v0.5.0) for 
the complete list of changes.
+
+`iceberg-go` is a native Go implementation of the Apache Iceberg table format, 
providing libraries for reading, writing, and managing Iceberg tables in Go 
applications.
+
+<!-- more -->
+
+## Release Highlights
+
+### Iceberg V3 Table Spec Support
+
+This release significantly advances `iceberg-go`'s implementation of the 
Iceberg V3 table specification:
+
+- **Table Metadata V3**: [Full V3 metadata format 
support](https://github.com/apache/iceberg-go/pull/585) is now implemented
+- **Unknown Type**: [Support for the `Unknown` 
type](https://github.com/apache/iceberg-go/pull/605) introduced in the V3 spec
+- **TimestampNano and TimestampNanoTz**: [New timestamp nanosecond 
types](https://github.com/apache/iceberg-go/pull/594) required by V3 are now 
supported
+- **Row Lineage Tracking**: [Row lineage 
metadata](https://github.com/apache/iceberg-go/pull/659) is now tracked and the 
[snapshot producer wires V3 row-lineage 
state](https://github.com/apache/iceberg-go/pull/728) correctly, with a fix for 
[first-row-id assignment in V3 manifest 
lists](https://github.com/apache/iceberg-go/pull/741)
+- **Source IDs**: [Support for `source-ids` 
metadata](https://github.com/apache/iceberg-go/pull/651) was added
+
+### View Support
+
+`iceberg-go` now has substantial support for Iceberg views:
+
+- **View Spec**: [Initial implementation of the View 
specification](https://github.com/apache/iceberg-go/pull/600) including 
serialization, deserialization, and JSON validation
+- **View Metadata Builder**: [Full view metadata 
builder](https://github.com/apache/iceberg-go/pull/629) and `UpdateView` method 
in the REST catalog
+- **Load View**: [Load existing 
views](https://github.com/apache/iceberg-go/pull/640) from catalogs
+- **Hive Catalog View Operations**: [View create, load, drop, and list 
support](https://github.com/apache/iceberg-go/pull/742) in the Hive catalog
+- **RCK Compatibility**: [Field ID preservation and error 
handling](https://github.com/apache/iceberg-go/pull/647) for REST Catalog Kit 
compatibility
+
+### Schema Evolution
+
+- **Schema evolution**: [Full schema evolution 
support](https://github.com/apache/iceberg-go/pull/596) was added, enabling 
`AddColumn`, `RenameColumn`, `UpdateColumnType`, and related operations
+- **HighestFieldID fixes**: Corrected `HighestFieldID` to [include the List 
element ID](https://github.com/apache/iceberg-go/pull/609) and [fixed a related 
bug](https://github.com/apache/iceberg-go/pull/611)
+
+### Delete File Support
+
+`iceberg-go` now supports both strategies for deleting rows from Iceberg 
tables:
+
+- **Copy-on-Write deletes**: [Implemented `copy-on-write` delete 
mode](https://github.com/apache/iceberg-go/pull/718) for rewriting data files 
on delete
+- **Merge-on-Read deletes**: [Implemented `merge-on-read` delete 
mode](https://github.com/apache/iceberg-go/pull/721) for writing position and 
equality delete files
+- **Table overwrite**: [General table overwrite 
functionality](https://github.com/apache/iceberg-go/pull/674) with a [clean 
options-based API](https://github.com/apache/iceberg-go/pull/717)
+- **Add/replace data files**: [Functions to directly add or replace 
DataFiles](https://github.com/apache/iceberg-go/pull/723) in a table
+
+### Hive Catalog
+
+- **Initial Hive Catalog support**: [Full Hive metastore 
catalog](https://github.com/apache/iceberg-go/pull/678) was added, supporting 
table creation, listing, loading, and dropping
+- **View operations in Hive**: [View 
support](https://github.com/apache/iceberg-go/pull/742) was added alongside the 
table operations
+
+### Puffin File Format
+
+A [Puffin reader and writer](https://github.com/apache/iceberg-go/pull/676) 
was implemented, enabling `iceberg-go` to read and write Puffin statistics 
files used for table statistics and NDV sketches.
+
+### Catalog Improvements
+
+- **AuthManager support**: [Pluggable authentication 
manager](https://github.com/apache/iceberg-go/pull/579) for the REST catalog, 
enabling custom credential flows
+- **WithHeaders**: [A `WithHeaders` catalog 
option](https://github.com/apache/iceberg-go/pull/652) allows injecting custom 
HTTP headers into REST catalog requests
+- **Staged table creation**: [Support for staged table 
creation](https://github.com/apache/iceberg-go/pull/754) in the REST catalog
+- **ListNamespaces pagination**: [Pagination 
support](https://github.com/apache/iceberg-go/pull/694) was added to 
`ListNamespaces`
+- **RegisterTable fix**: [Corrected the `RegisterTable` REST 
endpoint](https://github.com/apache/iceberg-go/pull/624)
+- **renameTable 204 handling**: [Properly handle `204 No 
Content`](https://github.com/apache/iceberg-go/pull/633) responses on 
`renameTable`
+
+### Write Performance
+
+- **Partitioned write throughput**: [Optimized partitioned write 
throughput](https://github.com/apache/iceberg-go/pull/622) by reducing 
allocations in the hot path
+- **Gzip metadata**: Support for both 
[reading](https://github.com/apache/iceberg-go/pull/610) and 
[writing](https://github.com/apache/iceberg-go/pull/612) gzip-compressed 
metadata JSON files
+
+### IO Improvements
+
+- **IO registry pattern**: [Refactored IO scheme 
registration](https://github.com/apache/iceberg-go/pull/709) to use a registry 
pattern, making it easier to add custom IO backends
+- **S3 signing**: [Allow `s3.signer.uri` 
property](https://github.com/apache/iceberg-go/pull/744) and only reject 
explicit `s3.remote-signing-enabled=true`; also [set `x-amz-content-sha256` 
before signing](https://github.com/apache/iceberg-go/pull/637)
+- **Azure SAS tokens**: [Updated SAS token 
behaviour](https://github.com/apache/iceberg-go/pull/746) to match the Java 
implementation
+
+### Bug Fixes
+
+Notable bug fixes in this release include:
+
+- [Fix truncate transform for negative 
integers](https://github.com/apache/iceberg-go/pull/608)
+- [Fix data race in 
`yieldDataFiles`](https://github.com/apache/iceberg-go/pull/650)
+- [Remove partition type cache causing concurrent map write 
panic](https://github.com/apache/iceberg-go/pull/627)
+- [Preserve snapshot log 
history](https://github.com/apache/iceberg-go/pull/638)
+- [Handle missing parent snapshots in 
`ExpireSnapshots`](https://github.com/apache/iceberg-go/pull/671)
+- [Add `AssertRefSnapshotID` requirements to 
`ExpireSnapshots`](https://github.com/apache/iceberg-go/pull/672)
+- [Support INT32/INT64 physical types for decimal 
columns](https://github.com/apache/iceberg-go/pull/686)
+- [Fix decimal literal 
`MarshalBinary`](https://github.com/apache/iceberg-go/pull/745)
+- [Fix index out of range in 
`buildManifestEvaluator`](https://github.com/apache/iceberg-go/pull/692)
+- [Fix response body leaks in the REST 
catalog](https://github.com/apache/iceberg-go/pull/655)
+- [Close writers on error for every exit 
path](https://github.com/apache/iceberg-go/pull/667)
+- [Fix `findMinSeq` from manifest 
list](https://github.com/apache/iceberg-go/pull/693)

Review Comment:
   Are there any breaking changes worth calling out?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to