2. Introduction
- All GWT is under the Apache 2.0 license.
- Everybody is welcome to improve it, but
must sign a CLA.
- You need to be familiar with git
4. Preparation: Gerrit
- Check that you already have an account
in github: https://github.com/join
- Sign in into the GWT gerrit service:
https://gwt-review.googlesource.com
- Gerrit will use your gmail account
5. Sign a CLA
- It works for both gerrit (gwt) and github (gwt-site)
- Click on your name, then click on settings.
- Fill everything even your github id
11. How to make the contributions
- GWT site uses markdown
- Visit the site and click on edit icon
- Fork the repo if not already done
- Follow github flavored syntax.
- You can mix HTML syntax but, do only in
the case there is no markdown equivalent
- Send a github pull-request
- Wait for feedback
- Merge
13. - Wait for feedback
- Make suggested modifications in
github
- A contributor will Merge when done
- Will be live in gwtproject.org after few
minutes
Follow github discussions
20. Contributing to code
- You need to be familiar with ‘ant’
- Compile the code
- Run checkstyle & tests
- Prepare your IDE
- Plugins
- Formating & checkstyle rules
- Import projects in your IDE
- Run checkstyle & tests from your IDE
21. Contributing to code
- Check that the issue is in the issues list
- Work in a new local branch
- Make changes and add Tests
- Run tests
- Commit & push changes
- Make sure git is configured: name, email, hook
- Add issue numbers to commit message
- Wait for review
- amend & rebase until ready
- Merge
22. Using your IDE
Choose whatever development environment
you are comfortable with.
- Eclipse:
- Work through the eclipse/README.txt
- IntelliJ IDEA:
- Style configuration
- Gradle build
23. - Select or create an issue.
- It’s recommended that any patch was previously
documented in an issue ticket in github
- Search for:
- status:patcheswelcome or status:accepted
- Issue reporting guidelines
Contributing, how to start
24. - Javadoc: classes and public methods.
- Class structure and member sorting
(relaxed)
- Indentation: 2 spaces
- Imports: remove unused, follow order
- Line length: 100 chars
- Meaningful names.
Contributing, Style rules
25. Contributing, how to use ‘ant’
- Check Code Compiles
$ ant clean dist-dev [2min]
- Check Styles
$ ant checkstyle apicheck [3min - 1min]
- Check Tests Compile
$ ant compile.tests [1min - 15secs]
- Run certain Tests
$ ( cd dev && ant test )
$ ( cd user && ant test.nongwt )
26. - Create a new branch
$ git checkout -b issue_name
- Commit your changes
$ git commit -a -m 'Message, Bug: issue nnn'
- Push for Review
$ git push origin HEAD:refs/drafts/master #push as private draft
$ git push origin HEAD:refs/for/master #public ready for review
- New changes
$ git commit --amend --no-edit -a
$ git push origin HEAD:refs/for/master
Contributing, how to use ‘git’
Tip: use different branches for different and unrelated changes
Tip: push as draft to check your changes in gerrit and not being public yet
27. Dealing with gerrit
- Check your patch in gerrit until it looks ok to you
(avoid noise, follow rules)
- Assign a reviewer to your patch, check the
maintainer list for candidates.
- Use gerrit for discussions
- Make the proposed changes
- Amend the previous commit
- Repeat the process until you get a +2
- Merge on master (rebase can be needed)
Tip: contribute reviewing other contributors’ patches
28. Promote draft > review
Abandon a Change
Add a reviewer
Vote a Review
Contributing: using ‘gerrit’