not error messages ` too brittle, maintenance mess.

some hex error code for each failure which your tests can assert on and
which can be documented in a table is a much better design. Windows does
this -based on the design of DEC's VMS OS
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d

On Mon, 11 Aug 2025 at 18:29, Daniel Weeks <dwe...@apache.org> wrote:

> Hey André,
>
> The RCK suite uses the catalog tests from reference implementation to
> ensure consistency across implementations.  Your point is valid that as the
> other languages started to build client/server implementations that didn't
> have the exact same messaging.
>
> I think we want to push toward some amount of standardization in the error
> messages.  Ideally we'd steer away from anything language specific, but we
> want the messaging to be clear and consistent for things like what caused a
> requirement to fail.
>
> I think that the solution might be a combination of what you've
> identified.  Possibly relaxing or clarifying some of the messaging but also
> leaving room so that requirements aren't overly strict.  Also, I think
> we're open to just better/more consistent messaging because we didn't focus
> too much on it when building the java tests.  Having the other language
> clients use the RCK would also help drive consistency.
>
> If there are specific examples, we might want to start with a couple
> failures and see what makes sense as a solution.
>
> -Dan
>
> On Tue, Aug 5, 2025 at 8:14 AM André Luis Anastácio
> <ndrl...@proton.me.invalid> wrote:
>
>> Hello everyone,
>>
>> When I was running the RCK against Lakekeeper, I noticed that RCK
>> verifies not only the exception type but also the error message. RCK
>> verifies the messages as they are written in the Java implementation, and
>> since Lakekeeper uses iceberg-rust, we have different error messages [1]
>> Java [2] Rust. However, the error messages are written differently in other
>> clients as well [3] Python [4] Go.
>>
>> This could become a broader compatibility issue as we see more REST
>> implementations built on different language foundations.
>>
>> Should we standardize the error messages across all implementations, make
>> RCK more permissive by focusing only on exception types, or handle this at
>> the REST server implementation level where each implementation adapts to
>> match RCK expectations?
>>
>> Are there other solutions I haven't considered?
>>
>>
>>    1.
>>    
>> https://github.com/apache/iceberg/blob/fa80ba787af776f516e772f27bf746756de93b70/core/src/main/java/org/apache/iceberg/UpdateRequirement.java#L186
>>    2.
>>    
>> https://github.com/apache/iceberg-rust/blob/e7160df4a0cb8f2f6ce12681053e8cb1a43b74e1/crates/iceberg/src/catalog/mod.rs#L711
>>    3.
>>    
>> https://github.com/apache/iceberg-python/blob/main/pyiceberg/table/update/__init__.py#L801
>>    4.
>>    
>> https://github.com/apache/iceberg-go/blob/b4babc8b919258be7b25f5cc295fc68a458f9559/table/requirements.go#L268
>>
>>
>>
>> André Anastácio
>>
>

Reply via email to