1. Ensure that Git, Java JDK >= 11 until JDK 17, maven >= 3.6.3 are installed.
You can find information about development environment preparation here:
Prepare development environment in Ubuntu.
2. Fork Checkstyle upstream project. As it is described
here
3. Clone your forked repository to your computer:
git clone git@github.com:your_user_name/checkstyle.git
4. Before opening project in IDE, build the project in your terminal to download
all needed artifacts. From the repository root folder, run:
mvn install
Here you can find instructions about importing and debugging the project for IDEs:
Eclipse IDE
NetBeans IDE
IntelliJ IDEA IDE
Community video walk throughs of these instructions are available in SteLeo1602's playlist on YouTube.
Follow these instructions of Git usage and creating a Pull Request:
1) Configure remotes by pointing to the official checkstyle repository,
naming it "upstream":
git remote add upstream https://github.com/checkstyle/checkstyle
2) Create a branch for a new check:
git checkout -b my-new-check
3) Commit changes to my-new-check branch:
git add . git commit -m "commit message"
4) Push branch to GitHub, to allow your mentor to review your code:
git push origin my-new-check
5) Repeat steps 3-4 till development is complete
All additional commits, please
squash to first. Please read all rules for PullRequest at
our wiki.
git rebase -i master git push --force origin my-new-check
6) Update current branch and local master by pulling changes that were done
by other contributors:
git checkout master git pull upstream master git push origin master
7) Rebase your branch on your updated master:
git checkout my-new-check git rebase master
8) In the process of the rebase, it may discover conflicts.
In that case it will stop and allow you to fix the conflicts.
After fixing conflicts, use
git add .
to update the index with those contents, and then just run:
git rebase --continue
9) Push branch to GitHub (with all your final changes and actual code of Checkstyle):
git push --force origin my-new-check
10) Only after all content is finished and testing is done - send a Pull Request