This document provides instructions for becoming a contributor to the GWT (Google Web Toolkit) open source project. It outlines the process for signing the contributor license agreement, setting up the necessary tools like Git and Gerrit, contributing code changes by submitting pull requests through GitHub, and ensuring code style guidelines are followed. The workflow for contributing changes to both the GWT codebase and documentation site is described.
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’