This is an automated email from the ASF dual-hosted git repository.

jmclean pushed a commit to branch contributing
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit d7201d37bbec497db42d2147cc2f11b23f93162e
Author: Justin Mclean <[email protected]>
AuthorDate: Thu Aug 7 15:18:33 2025 +1000

    improved contributing
---
 CONTRIBUTING.md | 342 ++++++++++++++++++++++++++------------------------------
 1 file changed, 158 insertions(+), 184 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ce11c9490d..3b0e09c0d0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -19,272 +19,246 @@
 
 # Contributing to Apache Gravitino
 
-Thank you for your interest in contributing to Apache Gravitino! Your support 
is invaluable in enhancing the project, and we warmly welcome contributions of 
all kinds. Gravitino appreciates your assistance in making it better, whether 
through code contributions, documentation, tests, best practices, graphic 
design, or any other means that have a positive impact.
-
-To ensure a smooth and productive collaboration, please take a moment to 
review and follow our contribution guidelines before getting started.
-
-## Table of contents
-
-- [Getting Started](#getting-started)
-  - [Fork the Repository](#fork-the-repository)
-  - [Development Setup](#development-setup)
-  - [Using IntelliJ (Optional)](#using-intellij-optional)
-  - [Using VS Code (Optional)](#using-vs-code-optional)
-  - [Handling Memory Issues in WSL](#handling-memory-issues-in-wsl)
-- [Project Overview and Policies](#project-overview-and-policies)
-  - [Project Overview](#project-overview)
-  - [Management Policies](#management-policies)
-  - [Future Development Directions](#future-development-directions)
-- [Contribution Guidelines](#contribution-guidelines)
-  - [Code of Conduct](#code-of-conduct)
-  - [Reporting Bugs](#reporting-bugs)
-  - [Suggesting Enhancements](#suggesting-enhancements)
-  - [Good First Issues](#good-first-issues)
-  - [Working on Issues](#working-on-issues)
-  - [Creating Pull Requests](#creating-pull-requests)
-  - [The Review Process](#the-review-process)
-- [Testing](#testing)
-- [Coding Standards](#coding-standards)
-- [Community and Communication](#community-and-communication)
-- [License](#license)
-
-## Getting started
-
-### Fork the repository
-
-Either click the "Fork" button at the top right of the repository's page on 
GitHub OR create a fork on your local machine using `git clone`.
+Welcome! This guide will help you get started contributing to Apache 
Gravitino, whether you're filing an issue, improving documentation, or 
submitting code.
 
-```bash
-git clone https://github.com/apache/gravitino.git
-cd gravitino
-```
-
-### Development Setup
+Gravitino welcomes all kinds of contributionsβ€”including code (Java, Python), 
documentation, testing, design, and feedback. Your involvement helps strengthen 
the project.
 
-Once you have cloned the [GitHub 
repository](https://github.com/apache/gravitino), see [how to 
build](/docs/how-to-build.md) for instructions on how to build, or you can use 
the provided docker images at [Apache DockerHub 
repository](https://hub.docker.com/u/apache).
+Apache Gravitino is a metadata and data lake federation layer for AI and 
analytics. It graduated from the Apache Software Foundation's Incubator in June 
2025 and is now a top level project maintained by a growing community.
 
-To stop and start a local Gravitino server via `bin/gravitino.sh start` and 
`bin/gravitino.sh stop` in a Gravitino distribution, see [how to 
build](/docs/how-to-build.md) for more instructions.
+Gravitino follows ASF-wide contribution and governance practices. 
Project-specific workflows are explained where they differ.
 
-### Using IntelliJ (Optional)
+Please review the following guidelines for a smooth contribution process.
 
-**On Windows:**
+## πŸ“š Table of Contents
 
-1. Open the Gravitino project that was just downloaded.
+* [πŸ“ Project Overview and Policies](#-project-overview-and-policies)
+* [πŸ’¬ Community and Communication](#-community-and-communication)
+* [πŸ” Code of Conduct](#-code-of-conduct)
+* [πŸ“¬ How Decisions Are Made](#-how-decisions-are-made)
+* [🌱 Growing Your Involvement](#-growing-your-involvement)
+* [πŸ§ͺ Continuous Integration](#-continuous-integration)
+* [πŸ†˜ Need Help?](#-need-help)
+* [πŸš€ Getting Started](#-getting-started)
+* [πŸ›οΈ Quick Start for First-Time 
Contributors](#-quick-start-for-first-time-contributors)
+* [πŸ™Œ Making Contributions](#-making-contributions)
+* [πŸ“ Contributing to Design and 
Documentation](#-contributing-to-design-and-documentation)
+* [πŸ” Reviewing and Triaging 
Contributions](#-reviewing-and-triaging-contributions)
+* [πŸ”ƒ Creating Pull Requests](#-creating-pull-requests)
+* [πŸ’» Setting Up Development Environment](#-setting-up-development-environment)
+* [🧰 Setting Up Your IDE (Optional)](#-setting-up-your-ide-optional)
+* [πŸ’‘ Tips for WSL Users](#-tips-for-wsl-users)
+* [βš™οΈ Build Profiles and JDK 
Requirements](#-build-profiles-and-jdk-requirements)
+* [🎨 Formatting Code with Spotless](#-formatting-code-with-spotless)
+* [πŸ—‚οΈ File Structure Overview](#-file-structure-overview)
+* [πŸ§ͺ Writing and Running Tests](#-writing-and-running-tests)
+* [🧱 Following Coding Standards](#-following-coding-standards)
+* [πŸ“† Managing Dependencies](#-managing-dependencies)
+* [πŸ›‘οΈ Performing Compliance and Legal 
Checks](#-performing-compliance-and-legal-checks)
+* [πŸ“„ License](#-license)
+* [πŸ” Reporting Security Issues](#-reporting-security-issues)
+* [πŸ™ Acknowledging Contributors](#-acknowledging-contributors)
+* [πŸ“˜ Glossary](#-glossary)
 
-2. Go to `File > Project Structure > Project` and change to the SDK you 
downloaded in WSL.
+## πŸ“ Project Overview and Policies
 
-3. If the SDK does not appear, manually add the SDK.
+* **Overview**: See the [Gravitino website](https://gravitino.apache.org) and 
[README.md](README.md).
+* **Governance**: See [GOVERNANCE.md](GOVERNANCE.md).
+* **Roadmap**: See [ROADMAP.md](ROADMAP.md).
 
-4. To find the SDK location, run this command in WSL:
+Apache Gravitino is a [Top-Level Project of the 
ASF](https://www.apache.org/foundation/).
 
-    **On Ubuntu (WSL):**
-    ```sh
-    which java
-    ```
+## πŸ’¬ Community and Communication
 
-IntelliJ IDEA is an integrated development environment (IDE) for Java 
development. Setting the project SDK ensures that IntelliJ uses the correct 
Java version to build and run the project.
+Gravitino is a collaborative project. We encourage open communication and 
transparent decision-making. You can:
 
-You can open up WSL in the IntelliJ terminal. Find the down arrow and select 
ubuntu.
+* Subscribe to the developer mailing list: `[email protected]`
+  * [View 
archives](https://lists.apache.org/[email protected])
+* Discuss issues via [GitHub 
Issues](https://github.com/apache/gravitino/issues)
+* Join discussions via ASF Slack (invite link: 
[https://s.apache.org/slack-invite](https://s.apache.org/slack-invite))
 
-### Using VS Code (Optional)
+Please follow the [ASF Code of 
Conduct](https://www.apache.org/foundation/policies/conduct.html) in all 
interactions.
 
-#### Set up WSL Extension in VSCode
+## πŸ” Code of Conduct
 
-**On Windows:**
+We are committed to fostering a welcoming and inclusive community. Please 
review and adhere to our [Code of 
Conduct](https://github.com/apache/gravitino/blob/main/CODE_OF_CONDUCT.md) in 
all project spaces.
 
-1. Open VSCode extension marketplace, search for and install **WSL**.
+## πŸ“¬ How Decisions Are Made
 
-2. Press `Ctrl+Shift+P` to open the command palette, and run `Shell Command: 
Install 'code' command in PATH`.
+Gravitino uses [Apache’s consensus-based 
decision-making](https://www.apache.org/foundation/glossary.html#ConsensusApproval).
 Most decisions happen on the `dev@` mailing list or via GitHub PR discussions.
 
-Installing the WSL extension in VSCode allows you to open and edit files in 
your WSL environment directly from VSCode. Adding the `code` command to your 
PATH lets you open VSCode from the WSL terminal.
+## 🌱 Growing Your Involvement
 
-#### Verify and Configure Environment Variables
+Contributors who participate actively and constructively may be invited to 
become committers or join the PMC. Merit is earned through consistent 
contributions and community engagement.
 
-**On Windows:**
+## πŸ§ͺ Continuous Integration
 
-1. Add VSCode path to the environment variables. The default installation path 
for VSCode is usually:
+All PRs are automatically tested using GitHub Actions. Please check test 
results and fix failures before requesting a review.
 
-    ```plaintext
-    C:\Users\<Your-Username>\AppData\Local\Programs\Microsoft VS Code\bin
-    ```
+## πŸ†˜ Need Help?
 
-    Replace `<Your-Username>` with your actual Windows username.
+If you're stuck, ask on the `dev@` mailing list or open a GitHub Discussion. 
We're here to help.
 
-    Example:
+## πŸš€ Getting Started
 
-    ```plaintext
-    C:\Users\epic\AppData\Local\Programs\Microsoft VS Code\bin
-    ```
+### Fork the Repository
 
-Adding VSCode to the environment variables ensures you can open VSCode from 
any command prompt or terminal window.
+Click the "Fork" button on GitHub or use:
 
-**On Ubuntu (WSL):**
-
-```sh
-code --version
+```bash
+git clone https://github.com/apache/gravitino.git
 cd gravitino
-code .
 ```
 
-Running `code --version` verifies that the `code` command is available. Using 
`code .` opens the current directory in VSCode.
-
-#### Open a WSL Project in Windows VSCode
-
-**On Ubuntu (WSL):**
-
-1. **Navigate to Your Project Directory**
-
-   Use the terminal to navigate to the directory of your project. For example:
-
-   ```sh
-   cd gravitino
-   ```
-
-2. **Open the Project in VSCode**
-
-   In the WSL terminal, type the following command to open the current 
directory in VSCode:
-
-   ```sh
-   code .
-   ```
-
-  This command will open the current WSL directory in VSCode. If you haven't 
added `code` to your path, follow these steps:
-
-- Open VSCode on Windows.
-
-- Press `Ctrl+Shift+P` to open the command palette.
-
-- Type and select `Shell Command: Install 'code' command in PATH`.
+Check out the [ASF New Contributor 
Guide](https://www.apache.org/dev/new-committers-guide.html) for an overview of 
how ASF projects work.
 
-3. **Ensure Remote - WSL is Active**
+## πŸ›οΈ Quick Start for First-Time Contributors
 
-   When VSCode opens, you should see a green bottom-left corner indicating 
that VSCode is connected to WSL. If not, click on the green area and select 
`Remote-WSL: New Window` or `Remote-WSL: Reopen Folder in WSL`.
+1. Fork and clone the repository
+2. Build the project using [how to build](/docs/how-to-build.md)
+3. Pick an issue or start a discussion
+4. Submit a pull request and collaborate with reviewers
 
-4. **Edit and Develop Your Project**
+## πŸ™Œ Making Contributions
 
-   You can now edit and develop your project files in VSCode as if they were 
local files. The Remote - WSL extension seamlessly bridges the file system 
between Windows and WSL.
+We welcome all types of contributions:
 
-### Handling Memory Issues in WSL
+* **Code** – bug fixes, new features, refactoring, integrations
+  * If you're adding or updating a connector, catalog, or integration, please 
discuss it on the dev@ mailing list first.
+* **Documentation** – tutorials, guides, references
+* **Review** – triage and review issues and PRs
+* **Community** – answer questions, join discussions
 
-Here are some solutions if you encounter a memory issue when using WSL.
+Look for [good first 
issues](https://github.com/apache/gravitino/labels/good%20first%20issue) to get 
started. Discuss plans on GitHub or the dev@ mailing list. Small pull requests 
are easiest to review.
 
-1. **Shut down WSL**  
-   If your WSL is open, you can shut it down in Windows PowerShell using the 
following command:  
+## πŸ“ Contributing to Design and Documentation
 
-   ```powershell
-   wsl --shutdown
-   ```
+Design and documentation are essential to Gravitino’s usability and growth.
 
-2. **Navigate to user folder**  
+You can contribute by:
 
-   Open File Explorer and navigate to `C:\Users\<your-username>`.
+* Improving documentation in `docs/`
+* Clarifying APIs and references
+* Reviewing documents for accuracy
+* Submitting mockups or usability suggestions
 
-3. **Create the `.wslconfig` file**  
+## πŸ” Reviewing and Triaging Contributions
 
-   Open up Notepad or another text editor and input the following:  
+Reviewing and triaging helps maintain the project. You can:
 
-   ```plaintext
-   [wsl2]
-   memory=4GB   # Limits VM memory in WSL 2 up to 4GB
-   processors=4 # Makes the WSL 2 VM use four virtual processors
-   ```
+* Reproduce bugs and confirm issues
+* Add labels to categorize
+* Suggest improvements on PRs
+* Review code and give feedback
 
-   *The memory and processor usage can be changed depending on your system's 
hardware.*
+## πŸ”ƒ Creating Pull Requests
 
-4. **Save the file**  
+* Use feature branches
+* Write clear commit messages and PR descriptions
+* Link to issues (e.g., `Fixes #123`)
+* Respond to reviewer feedback
 
-   Save the file as `".wslconfig"`. Be sure to include the quotes to let 
Windows know that this isn't a text file.
+## πŸ’» Setting Up Development Environment
 
-## Project Overview and Policies
+Follow [how to build](/docs/how-to-build.md) or use [Apache 
DockerHub](https://hub.docker.com/u/apache). Start Gravitino with:
 
-### Project Overview
-
-For an overview of the project, see [README.md](README.md).
-
-### Management Policies
-
-For project management policies, refer to [GOVERNANCE.md](GOVERNANCE.md).
-
-### Future Development Directions
-
-Refer to the [ROADMAP.md](ROADMAP.md) document for future development 
directions.
-
-## Contribution guidelines
+```bash
+bin/gravitino.sh start
+bin/gravitino.sh stop
+```
 
-### Code of Conduct
+You can also build manually with:
 
-Please read and follow the [Code of Conduct](CODE_OF_CONDUCT.md). Gravitino 
provides a welcoming and inclusive environment for all contributors.
+```bash
+./mvnw clean install
+```
 
-### Reporting bugs
+## 🧰 Setting Up Your IDE (Optional)
 
-If you find a bug in Gravitino, please open an issue on GitHub. Include as 
much detail as possible, such as a clear description, reproduction steps, and 
your environment. Please follow the template provided. If you encounter a 
security issue, please refer to [SECURITY.md](SECURITY.md).
+Import Gravitino into IntelliJ IDEA or Eclipse as a Gradle project.
 
-### Suggesting enhancements
+## πŸ’‘ Tips for WSL Users
 
-If you have ideas for enhancements or new features, feel free to create an 
issue to discuss them. Gravitino welcomes suggestions and provides prompt 
feedback on their feasibility and relevance.
+If using WSL on Windows, install Java and dev tools inside WSL. Access files 
via `/mnt/c/...` paths.
 
-### Good First Issues
+## βš™οΈ Build Profiles and JDK Requirements
 
-If you are new to open source or can't find something to work on, check out 
the [Good First Issues list](https://github.com/apache/gravitino/contribute).
+Gravitino uses Maven profiles for Scala:
 
-### Working on Issues
+* `-Pscala-2.12` for Scala 2.12
+* `-Pscala-2.13` for Scala 2.13 (default)
 
-Check out the list of open issues and find one that interests you. You can 
also comment on an issue to indicate that you're working on it. Please keep the 
issue updated with your progress.
+Gravitino supports JDK 8, 11 and 17.
 
-## Creating Pull Requests
+## 🎨 Formatting Code with Spotless
 
-Create a new branch from `main` for your changes:
+We use [Spotless](https://github.com/diffplug/spotless) for code formatting. 
Run:
 
 ```bash
-git checkout -b your-branch-name
+./gradlew spotlessApply
 ```
 
-Make your changes and commit them. Be sure to write clear and concise commit 
messages.
+## πŸ—‚οΈ File Structure Overview
 
-```bash
-git commit -m "Your commit message"
-```
+Key directories in the Gravitino repo:
 
-Push your changes to your fork on GitHub:
+* `api/`, `clients/`, `core/`, `server/` – Main components
+* `docs/`, `rfc/` – Documentation and design
+* `conf/`, `bin/` – Configs and scripts
+* `catalogs/`, `spark-connector/`, `trino-connector/` – Integrations
 
-```bash
-git push your-branch-name
-```
+## πŸ§ͺ Writing and Running Tests
 
-After you have pushed your changes, create a pull request (PR) in the 
Gravitino repository. Be sure to provide a detailed description of your 
changes, reference any related issues, and please follow the template provided. 
Gravitino's maintainers evaluate pull requests, offer feedback, and assist in 
merging project changes.
+Add or update tests in your PR. Test open PRs locally to help maintainers.
 
-### The Review Process
+## 🧭 Following Coding Standards
 
-For details on the review process, please refer to 
[MAINTAINERS.md](MAINTAINERS.md).
+* Follow Java and Python idioms
+* Include useful comments
+* Keep methods and classes focused
+* Format with Spotless
 
-## Testing
+## πŸ“¦ Managing Dependencies
 
-The CI infrastructure runs unit and integration tests on each pull request. 
Please make sure these tests pass before making a pull request.
+* Avoid unnecessary dependencies
+* Prefer well-maintained libraries
+* Discuss major additions on dev@
 
-The unit tests run on every build, and integration tests run as needed. See 
[how to test](docs/how-to-test.md) for more information.
+## πŸ›‘οΈ Performing Compliance and Legal Checks
 
-Add unit tests to provide coverage when adding new code or fixing a bug.
+Before contributing:
 
-## Coding standards
+* Review [ASF License and IP Guidelines](https://www.apache.org/legal/)
+* Ensure all code is original or properly licensed and compatable with the 
Apache License
 
-Spotless checks code formatting. If your code is correctly formatted, the 
build succeeds. To format your code correctly, please use Spotless.
+## πŸ“„ License
 
-```bash
-./gradlew spotlessApply
-```
+Contributions are under the [Apache License 
2.0](http://www.apache.org/licenses/LICENSE-2.0).
+
+If contributing on behalf of an employer or regularly, you may need to submit 
an [ICLA](https://www.apache.org/licenses/icla.html). See [ASF Contributor 
FAQs](https://www.apache.org/dev/new-committers-guide.html#cla).
 
-All files must have a license header, and the build fails if any files are 
missing license headers. If you are adding third-party code, you may need to 
add the third-party license to Gravitino's LICENSE and NOTICE files. If you are 
unsure of how to do this, please ask for help.
+Official repo: 
[https://github.com/apache/gravitino](https://github.com/apache/gravitino)
 
-Please add unit tests to provide code coverage for any bugs or new code. The 
project may not accept code without unit tests.
+## πŸ” Reporting Security Issues
 
-All text files should use macOS/unix style line endings (LF), not 
Windows-style line endings (CRLF).
+To report a vulnerability, follow the [SECURITY.md](SECURITY.md) instructions. 
Responsible disclosure is appreciated and handled per ASF guidelines.
 
-## Community and communication
+## πŸ™ Acknowledging Contributors
 
-Join the [community mailing 
list](https://lists.apache.org/[email protected]) to discuss 
ideas and seek help. You are also encouraged to use GitHub discussions.
+Contributors are recognized in release notes. All types of contributions are 
valued.
 
-## License
+See the full list of contributors on GitHub: 
[https://github.com/apache/gravitino/graphs/contributors](https://github.com/apache/gravitino/graphs/contributors)
 
-When contributing to this project, you agree that your contributions use the 
Apache License version 2. Please ensure you have permission to do this if your 
employer requires it.
+## πŸ“˜ Glossary
 
-Thank you for your contributions to Gravitino! The project appreciates your 
help in making it a success.
+* **ASF**: Apache Software Foundation
+* **ICLA**: Individual Contributor License Agreement
+* **PMC**: Project Management Committee
+* **RAT**: Release Audit Tool
+* **Spotless**: Code formatter
+* **CI**: Continuous Integration
+* **PR**: Pull Request
+* **WSL**: Windows Subsystem for Linux
+* **TLP**: Top-Level Project
+* **dev@ list**: Primary development mailing list
+* **AI**: Artificial Intelligence
+* **IDE**: Integrated Development Environment

Reply via email to