Copilot commented on code in PR #1806:
URL: https://github.com/apache/auron/pull/1806#discussion_r2659492632


##########
CONTRIBUTING.md:
##########
@@ -0,0 +1,292 @@
+<!--
+- 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 to Apache Auron (Incubating)
+
+Welcome! We're excited that you're interested in contributing to Apache Auron. 
This document provides guidelines and information to help you contribute 
effectively to the project.
+
+## Table of Contents
+
+- [Ways to Contribute](#ways-to-contribute)
+- [Getting Started](#getting-started)
+- [Development Environment Setup](#development-environment-setup)
+- [Building the Project](#building-the-project)
+- [Before Submitting a Pull Request](#before-submitting-a-pull-request)
+- [Pull Request Guidelines](#pull-request-guidelines)
+- [Code Style and Formatting](#code-style-and-formatting)
+- [Testing](#testing)
+- [Documentation](#documentation)
+- [Communication](#communication)
+- [License](#license)
+
+## Ways to Contribute
+
+Contributions to Auron are not limited to code! Here are various ways you can 
help:
+
+- **Report bugs**: File detailed bug reports with reproducible examples
+- **Suggest features**: Propose new features or improvements via GitHub issues
+- **Write code**: Fix bugs, implement features, or improve performance
+- **Review pull requests**: Help review and test PRs from other contributors
+- **Improve documentation**: Enhance README, API docs, or add examples
+- **Answer questions**: Help other users on the mailing list or GitHub 
discussions
+- **Benchmark and test**: Run benchmarks and report performance results
+
+## Getting Started
+
+### Prerequisites
+
+Before contributing, ensure you have:
+
+1. **Rust (nightly)**: Install via [rustup](https://rustup.rs/)
+2. **JDK**: Version 8, 11, or 17 (set `JAVA_HOME` appropriately)
+3. **Maven**: Version 3.9.11 or higher
+4. **Git**: For version control
+
+### Fork and Clone
+
+1. Fork the [Apache Auron repository](https://github.com/apache/auron) on 
GitHub
+2. Clone your fork locally:
+   ```bash
+   git clone [email protected]:<your-username>/auron.git
+   cd auron
+   ```
+3. Add the upstream repository:
+   ```bash
+   git remote add upstream [email protected]:apache/auron.git
+   ```
+
+### Stay Synchronized
+
+Keep your fork up to date with upstream:
+
+```bash
+git fetch upstream
+git checkout master
+git merge upstream/master
+```
+
+## Development Environment Setup
+
+### Rust Setup
+
+Auron uses Rust nightly. The project includes a `rust-toolchain.toml` file 
that specifies the required version:
+
+```bash
+rustup show  # Verify the correct toolchain is installed
+```
+
+### IDE Setup
+
+For the best development experience:
+
+- **IntelliJ IDEA** 
+- **RustRover** or **VS Code with rust-analyzer**
+
+## Building the Project
+
+Auron provides a unified build script `auron-build.sh` that supports both 
local and Docker-based builds.
+
+### Quick Start Build
+
+```bash
+# Local build with Spark 3.5 and Scala 2.12
+./auron-build.sh --pre --sparkver 3.5 --scalaver 2.12
+
+# Skip native build (useful for Java/Scala-only changes)
+./auron-build.sh --pre --sparkver 3.5 --scalaver 2.12 -DskipBuildNative
+```
+
+### Docker Build
+
+```bash
+# Build inside Docker container
+./auron-build.sh --docker true --image centos7 --release \
+  --sparkver 3.5 --scalaver 2.12
+```
+
+### Build Options
+
+Run `./auron-build.sh --help` to see all available options, including:
+
+- `--pre` or `--release`: Build profile
+- `--sparkver`: Spark version (3.0, 3.1, 3.2, 3.3, 3.4, 3.5)
+- `--scalaver`: Scala version (2.12, 2.13)
+- `--celeborn`, `--uniffle`, `--paimon`, `--iceberg`: Optional integrations
+- `--skiptests`: Skip unit tests (default: true)
+- `--sparktests`: Run Spark integration tests
+
+### Running Tests
+
+By default, the build script skips unit tests (`--skiptests true`). To run 
them, you must explicitly set `--skiptests false`, as shown in the examples 
below:
+
+```bash
+# Run all tests
+./auron-build.sh --pre --sparkver 3.5 --scalaver 2.12 --skiptests false
+
+# Run Spark unit tests
+./auron-build.sh --pre --sparkver 3.5 --scalaver 2.12 --sparktests true
+```
+
+## Before Submitting a Pull Request
+
+Before creating a PR, please:
+
+1. **Search for existing issues**: Check if someone else is already working on 
this
+
+2. **Create a GitHub issue**: All contributions require a GitHub issue to be 
created first. This allows the community to discuss the approach and provide 
feedback before you invest time in implementation.
+
+3. **For major changes, create an AIP**: If your change is substantial (new 
features, significant architectural changes, or changes affecting the public 
API), you must:
+   - Create a new GitHub issue describing the problem and proposed solution
+   - Create an **Auron Improvement Plan (AIP)** document 
+   - Share the AIP in the GitHub issue and discuss the high-level approach 
with the community

Review Comment:
   The documentation states "All contributions require a GitHub issue to be 
created first" but then adds "For major changes, create an AIP". This creates 
potential confusion about the workflow. Consider clarifying that all 
contributions need a GitHub issue, and major changes additionally require an 
AIP that should be discussed in that GitHub issue. The current wording could be 
interpreted as major changes not needing a GitHub issue.
   ```suggestion
   2. **Create a GitHub issue**: All contributions (including major changes) 
require a GitHub issue to be created first. This allows the community to 
discuss the approach and provide feedback before you invest time in 
implementation.
   
   3. **For major changes, also create an AIP**: If your change is substantial 
(new features, significant architectural changes, or changes affecting the 
public API), you must, in addition to the GitHub issue from step 2:
      - Use the GitHub issue to describe the problem and proposed solution
      - Create an **Auron Improvement Plan (AIP)** document and link it from 
that GitHub issue
      - Discuss the AIP and high-level approach with the community in the 
GitHub issue
   ```



-- 
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]

Reply via email to