Code Contribution
This section explains how to build project from source code and also describe how to contribute code.
Workspace Preparation
To develop this project, you need Maven 3.9 or above and JDK (Java Development Kit) 17 or above. However, you must use Java 1.8 compatible language features during compilation to ensure this project can run in environments with Java 1.8 or above.
You can use tools such as SDKMAN to configure multiple versions of the Java toolchain.
IDEA Settings
The following guidelines are for development using IntelliJ IDEA
. Other versions may have some minor differences. Please follow all steps carefully.
Project Settings
Set the project Language Level to 8
to ensure backward compatibility.
Git Usage
Ensure that you have registered a GitHub account and follow the steps below to configure your local development environment:
Fork the repository
Click the Fork
button on the Fesod GitHub page to copy the project to your GitHub account.
https://github.com/<your-username>/fesod
Clone Repository
Run the following command to clone the forked project to your local machine:
git clone git@github.com:<your-username>/fesod.git
Set Upstream Repository
Set the official repository as upstream
for easy synchronization of updates:
git remote add upstream git@github.com:apache/fesod.git
git remote set-url --push upstream no-pushing
Running git remote -v
can verify if the configuration is correct.
New branches to modify
Create a new branch to develop
git checkout -b <your_branch_name>
Note:
- You must create a new branch to develop features
git checkout -b feature-xxx
. It is not recommended to use themain
branch for direct development <your_branch_name>
name is customized for you.
Submit code to remote branch
After modifying the code locally, submit it to your own repository
git commit -a -m "<you_commit_message>"
git push origin <your_branch_name>
Pull request
New pull request
Submit changes to the remote repository, you can see a green button "Compare & pull request" on your repository page, click it.
Fill Commit Message
Please refer to Commit Format Specification to fill in the summary and details of the comment, and then click Create pull request to create it.
Ready for review
After successful creation, Then the community Committers will do CodeReview, and then he will discuss some details (design, implementation, performance, etc.) with you, afterward you can directly update the code in this branch according to the suggestions (no need to create a new PR). When this pr is approved, the commit will be merged into the main branch.
Branch definition
All contributions should be based on the main
development branch. Additionally, there are the following branch types:
- release branches: Used for version releases (e.g.,
1.1.0
,1.1.1
). - feature branches: Used for developing major features.
- hotfix branches: Used for fixing critical bugs.
When submitting a PR, please ensure that the changes are based on the main
branch.
Compile
Run the following command to compile
mvn clean install -DskipTests
To speed up the build process, you can:
- Use
-DskipTests
to skip unit tests - Use Maven's parallel build feature, e.g.,
mvn clean install -DskipTests -T 1C
Code Style
This project uses Spotless as its code formatting tool. Please ensure you run the following command to automatically format your code before submitting:
mvn spotless:apply