sungwy commented on code in PR #2: URL: https://github.com/apache/iceberg-verification/pull/2#discussion_r4028835716
########## CONTRIBUTING.md: ########## @@ -0,0 +1,277 @@ +<!-- + ~ 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. + --> + +# Contributing + +First, thank you for contributing to iceberg-verification! The goal of this +document is to provide the guidelines you need to maintain high quality +conformance fixtures for all Iceberg implementations. + +[Apache Iceberg](https://iceberg.apache.org/) is first and foremost a specification, an +agreement between different implementations on the structure and meaning of the +artifacts that make up a table. And as such, it is crucial that the way each +implementation interprets the spec, and the values and artifacts it stores and +transfers as a result, stay consistent across implementations. Each +implementation's own test suite cannot catch a divergence here, because it +checks that implementation against its own reading of the spec. + +This framework aims to become a central place where the materialized value +expectations of the spec are discussed, so that their representations and +expectations can be used to verify implementations across languages and +platforms. + +One thing to be clear about up front: we surface ambiguity here, we do not +settle it here. When a case has no clear answer in the spec, raise it on +[[email protected]](https://lists.apache.org/[email protected]) +and leave the unsettled assertion out until there is an clear expectation in the specification to write against. See +[Cases the spec has not settled](#cases-the-spec-has-not-settled). + +## Does your change belong here? + +This repository holds artifacts and the expected values the spec fixes for +them. + +If you have found a bug in one implementation, that belongs in that +implementation's repository. Open a fixture pull request here when the spec +fixes an expected valid or rejected value, so that existing and future +implementations have reference values to verify against. + +Engine query results, live catalog protocol behavior, and physical encoding +choices such as compression codec and file format writer version are out of +scope. Any spec-valid encoding is valid. + +## Choosing a test surface + +Given the above goal, it is important that contributors think deeply about what +we are trying to verify when we introduce a new test surface. + +A test surface is one spec behavior verified by one assertion. Each surface Review Comment: I like that wording @laskoviymishka - thanks! -- 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]
