Before development

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

4. Before opening project in your IDE, build the project in your terminal to download
all needed artifacts. From the repository root folder, run:

            mvn install

Starting Development

Here you can find instructions of importing and debugging the project for IDEs:
Eclipse IDE
NetBeans 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

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