This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git
The following commit(s) were added to refs/heads/main by this push:
new b875a98 docs: Add CONTRIBUTING and finish project setup (#7)
b875a98 is described below
commit b875a98036d63e6474fc5777b47e574eb25ddb66
Author: Xuanwo <[email protected]>
AuthorDate: Tue Jul 25 04:12:50 2023 +0800
docs: Add CONTRIBUTING and finish project setup (#7)
* docs: Add CONTRIBUTING and finish project setup
Signed-off-by: Xuanwo <[email protected]>
* Fix license
Signed-off-by: Xuanwo <[email protected]>
* Update notice
Signed-off-by: Xuanwo <[email protected]>
* Remove the requirement of issues
Signed-off-by: Xuanwo <[email protected]>
* chore: Add licenses for markdown files
Signed-off-by: Xuanwo <[email protected]>
* Add licenses for md
Signed-off-by: Xuanwo <[email protected]>
* Update CONTRIBUTING.md
Co-authored-by: Eduard Tudenhoefner <[email protected]>
* Add link to slack
Signed-off-by: Xuanwo <[email protected]>
* polish
Signed-off-by: Xuanwo <[email protected]>
---------
Signed-off-by: Xuanwo <[email protected]>
Co-authored-by: Eduard Tudenhoefner <[email protected]>
---
.devcontainer/devcontainer.json | 17 ++++
.licenserc.yaml => .github/workflows/ci_typos.yml | 37 +++++--
.licenserc.yaml | 2 +-
CHANGELOG.md | 27 ++++++
CONTRIBUTING.md | 113 ++++++++++++++++++++++
NOTICE | 5 +
README.md | 36 ++++++-
.licenserc.yaml => rustfmt.toml | 13 +--
8 files changed, 228 insertions(+), 22 deletions(-)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..726d6f2
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,17 @@
+{
+ "name": "Iceberg Rust",
+ "image": "mcr.microsoft.com/devcontainers/rust:bullseye",
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "rust-lang.rust-analyzer"
+ ],
+ "settings": {
+ "editor.formatOnSave": true,
+ "files.exclude": {
+ "**/LICENSE": true
+ }
+ }
+ }
+ }
+}
diff --git a/.licenserc.yaml b/.github/workflows/ci_typos.yml
similarity index 54%
copy from .licenserc.yaml
copy to .github/workflows/ci_typos.yml
index 21234c8..691f2c9 100644
--- a/.licenserc.yaml
+++ b/.github/workflows/ci_typos.yml
@@ -15,14 +15,33 @@
# specific language governing permissions and limitations
# under the License.
-header:
- license:
- spdx-id: Apache-2.0
- copyright-owner: Apache Software Foundation
+name: Typos Check
- paths-ignore:
- - 'LICENSE'
- - 'NOTICE'
- - '**/*.md'
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
- comment: on-failure
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
+ cancel-in-progress: true
+
+env:
+ RUST_BACKTRACE: 1
+
+jobs:
+ typos-check:
+ name: typos check
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ env:
+ FORCE_COLOR: 1
+ steps:
+ - uses: actions/checkout@v3
+ - run: curl -LsSf
https://github.com/crate-ci/typos/releases/download/v1.14.8/typos-v1.14.8-x86_64-unknown-linux-musl.tar.gz
| tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
+
+ - name: do typos check with typos-cli
+ run: typos
diff --git a/.licenserc.yaml b/.licenserc.yaml
index 21234c8..cd362bc 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -23,6 +23,6 @@ header:
paths-ignore:
- 'LICENSE'
- 'NOTICE'
- - '**/*.md'
+ - '**/*.json'
comment: on-failure
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..3d1a50b
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,27 @@
+<!--
+ ~ 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.
+-->
+
+# Change Log
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/)
+and this project adheres to [Semantic Versioning](https://semver.org/).
+
+## Unreleased
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..76566df
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,113 @@
+<!--
+ ~ 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 Rust! The goal of this document
is to provide everything you need to start contributing to iceberg-rust. The
following TOC is sorted progressively, starting with the basics and expanding
into more specifics.
+
+- [Your First Contribution](#your-first-contribution)
+- [Workflow](#workflow)
+ - [Git Branches](#git-branches)
+ - [GitHub Pull Requests](#github-pull-requests)
+ - [Title](#title)
+ - [Reviews & Approvals](#reviews--approvals)
+ - [Merge Style](#merge-style)
+ - [CI](#ci)
+- [Setup](#setup)
+ - [Using a dev container environment](#using-a-dev-container-environment)
+ - [Bring your own toolbox](#bring-your-own-toolbox)
+- [Code of Conduct](#code-of-conduct)
+
+## Your First Contribution
+
+1. [Fork the iceberg-rust
repository](https://github.com/apache/iceberg-rust/fork) into your own GitHub
account.
+1. [Create a new Git
branch](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository).
+1. Make your changes.
+1. [Submit the branch as a pull
request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)
to the main iceberg-rust repo. An iceberg-rust team member should comment
and/or review your pull request within a few days. Although, depending on the
circumstances, it may take longer.
+
+## Workflow
+
+### Git Branches
+
+*All* changes must be made in a branch and submitted as [pull
requests](#github-pull-requests). iceberg-rust does not adopt any type of
branch naming style, but please use something descriptive of your changes.
+
+### GitHub Pull Requests
+
+Once your changes are ready you must submit your branch as a [pull
request](https://github.com/apache/iceberg-rust/pulls).
+
+#### Title
+
+The pull request title must follow the format outlined in the [conventional
commits spec](https://www.conventionalcommits.org). [Conventional
commits](https://www.conventionalcommits.org) is a standardized format for
commit messages. iceberg-rust only requires this format for commits on the
`main` branch. And because iceberg-rust squashes commits before merging
branches, this means that only the pull request title must conform to this
format.
+
+The following are all good examples of pull request titles:
+
+```text
+feat(schema): Add last_updated_ms in schema
+docs: add hdfs classpath related troubleshoot
+ci: Mark job as skipped if owner is not apache
+fix(schema): Ignore prefix if it's empty
+refactor: Polish the implementation of read parquet
+```
+
+#### Reviews & Approvals
+
+All pull requests should be reviewed by at least one iceberg-rust committer.
+
+#### Merge Style
+
+All pull requests are squash merged. We generally discourage large pull
requests that are over 300-500 lines of diff. If you would like to propose a
change that is larger we suggest coming onto [Iceberg's DEV mailing
list](mailto:[email protected]) or [Slack #rust
Channel](https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A)
and discuss it with us. This way we can talk through the solution and discuss
if a change that large is even needed! This [...]
+
+### CI
+
+Currently, iceberg-rust uses GitHub Actions to run tests. The workflows are
defined in `.github/workflows`.
+
+## Setup
+
+For small or first-time contributions, we recommend the dev container method.
Prefer to do it yourself? That's fine too!
+
+### Using a dev container environment
+
+iceberg-rust provides a pre-configured [dev
container](https://containers.dev/) that could be used in [Github
Codespaces](https://github.com/features/codespaces),
[VSCode](https://code.visualstudio.com/),
[JetBrains](https://www.jetbrains.com/remote-development/gateway/),
[JuptyerLab](https://jupyterlab.readthedocs.io/en/stable/). Please pick up your
favourite runtime environment.
+
+The fastest way is:
+
+[](https://codespaces.new/apache/iceberg-rust?quickstart=1&machine=standardLinux32gb)
+
+### Bring your own toolbox
+
+iceberg-rust is primarily a Rust project. To build iceberg-rust, you will need
to set up Rust development first. We highly recommend using
[rustup](https://rustup.rs/) for the setup process.
+
+For Linux or MacOS, use the following command:
+
+```shell
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+```
+
+For Windows, download `rustup-init.exe` from
[here](https://win.rustup.rs/x86_64) instead.
+
+Rustup will read iceberg-rust's `rust-toolchain.toml` and set up everything
else automatically. To ensure that everything works correctly, run `cargo
version` under iceberg-rust's root directory:
+
+```shell
+$ cargo version
+cargo 1.69.0 (6e9a83356 2023-04-12)
+```
+
+## Code of Conduct
+
+We expect all community members to follow our [Code of
Conduct](https://www.apache.org/foundation/policies/conduct.html).
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..c2746f1
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+Apache Iceberg Rust
+Copyright 2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/README.md b/README.md
index 554c0ca..d7caa34 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,35 @@
-# Native Rust implementation of Apache Iceberg
+<!--
+ ~ 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.
+-->
+
+# Apache Iceberg Rust
+
+Native Rust implementation of [Apache Iceberg](https://iceberg.apache.org/).
+
+## Contribute
+
+Iceberg is an active open-source project. We are always open to people who
want to use it or contribute to it. Here are some ways to go.
+
+- Start with [Contributing Guide](CONTRIBUTING.md).
+- Submit [Issues](https://github.com/apache/iceberg-rust/issues/new) for bug
report or feature requests.
+- Discuss at [dev mailing list](mailto:[email protected])
([subscribe](mailto:[email protected]?subject=(send%20this%20email%20to%20subscribe))
/
[unsubscribe](mailto:[email protected]?subject=(send%20this%20email%20to%20unsubscribe))
/ [archives](https://lists.apache.org/[email protected]))
+- Talk to community directly at [Slack #rust
channel](https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A).
+
+## License
+
+Licensed under the [Apache License, Version
2.0](http://www.apache.org/licenses/LICENSE-2.0)
diff --git a/.licenserc.yaml b/rustfmt.toml
similarity index 81%
copy from .licenserc.yaml
copy to rustfmt.toml
index 21234c8..39be343 100644
--- a/.licenserc.yaml
+++ b/rustfmt.toml
@@ -15,14 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-header:
- license:
- spdx-id: Apache-2.0
- copyright-owner: Apache Software Foundation
-
- paths-ignore:
- - 'LICENSE'
- - 'NOTICE'
- - '**/*.md'
-
- comment: on-failure
+edition = "2021"
+reorder_imports = true