Content

Before development

1. Ensure that Git, Java JDK >= 1.8 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. Checkout the current source code from: https://github.com/you_user_name/checkstyle/
by running

            git clone git@github.com:you_user_name/checkstyle.git
        

Starting Development

Here you can find instructions of importing and debugging the project for IDEs:
Eclipse IDE
NetBeans IDE
IntelliJ IDEA IDE

Follow these instructions of Git usage and creating a Pull Request:
1) Configure remotes:

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