jackye1995 commented on a change in pull request #4096: URL: https://github.com/apache/iceberg/pull/4096#discussion_r805083377
########## File path: docs/common/community/contributing.md ########## @@ -0,0 +1,194 @@ +--- +url: contributing +weight: 300 +--- +<!-- + - 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 + +In this page, you will find some guidelines on contributing to Apache Iceberg. Please keep in mind that none of +these are hard rules and they're meant as a collection of helpful suggestions to make contributing as seamless of an +experience as possible. + +If you are thinking of contributing but first would like to discuss the change you wish to make, we welcome you to +head over to the [Community](https://iceberg.apache.org/community/) page on the official Iceberg documentation site +to find a number of ways to connect with the community, including slack and our mailing lists. Of course, always feel +free to just open a [new issue](https://github.com/apache/iceberg/issues/new) in the GitHub repo. + +## Pull Request Process + +Pull requests are the preferred mechanism for contributing to Iceberg +* PRs are automatically labeled based on the content by our github-actions labeling action +* It's helpful to include a prefix in the summary that provides context to PR reviewers, such as `Build:`, `Docs:`, `Spark:`, `Flink:`, `Core:`, `API:` +* If a PR is related to an issue, adding `Closes #1234` in the PR description will automatically close the issue and helps keep the project clean +* If a PR is posted for visibility and isn't necessarily ready for review or merging, be sure to convert the PR to a draft + +## Building the Project Locally + +Iceberg is built using Gradle with Java 8 or Java 11. + +* To invoke a build and run tests: `./gradlew build` +* To skip tests: `./gradlew build -x test -x integrationTest` + +Iceberg table support is organized in library modules: + +* `iceberg-common` contains utility classes used in other modules +* `iceberg-api` contains the public Iceberg API +* `iceberg-core` contains implementations of the Iceberg API and support for Avro data files, **this is what processing engines should depend on** +* `iceberg-parquet` is an optional module for working with tables backed by Parquet files +* `iceberg-arrow` is an optional module for reading Parquet into Arrow memory +* `iceberg-orc` is an optional module for working with tables backed by ORC files +* `iceberg-hive-metastore` is an implementation of Iceberg tables backed by the Hive metastore Thrift client +* `iceberg-data` is an optional module for working with tables directly from JVM applications + +This project Iceberg also has modules for adding Iceberg support to processing engines: + +* `iceberg-spark2` is an implementation of Spark's Datasource V2 API in 2.4 for Iceberg (use iceberg-spark-runtime for a shaded version) +* `iceberg-spark3` is an implementation of Spark's Datasource V2 API in 3.0 for Iceberg (use iceberg-spark3-runtime for a shaded version) +* `iceberg-flink` contains classes for integrating with Apache Flink (use iceberg-flink-runtime for a shaded version) +* `iceberg-mr` contains an InputFormat and other classes for integrating with Apache Hive +* `iceberg-pig` is an implementation of Pig's LoadFunc API for Iceberg + +## Website and Documentation Updates Review comment: I think we also need some explanations of the website repository in this page, basically the first section in the iceberg-docs README. Otherwise it's a bit confusing when reading the contents below. -- 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]
