|
1 | | -Contributing to Paho |
2 | | -==================== |
| 1 | +# Contributing to Paho |
3 | 2 |
|
4 | | -Thanks for your interest in this project. |
| 3 | +Thanks for your interest in this project! |
5 | 4 |
|
6 | | -Project description: |
7 | | --------------------- |
| 5 | +You can contribute bugfixes and new features by sending pull requests through GitHub. |
8 | 6 |
|
9 | | -The Paho project has been created to provide reliable open-source implementations of open and standard messaging protocols aimed at new, existing, and emerging applications for Machine-to-Machine (M2M) and Internet of Things (IoT). |
10 | | -Paho reflects the inherent physical and cost constraints of device connectivity. Its objectives include effective levels of decoupling between devices and applications, designed to keep markets open and encourage the rapid growth of scalable Web and Enterprise middleware and applications. |
| 7 | +## Legal |
11 | 8 |
|
12 | | -- [Project web site](https://www.eclipse.org/paho) |
13 | | -- [Project information](https://projects.eclipse.org/projects/iot.paho) |
| 9 | +In order for your contribution to be accepted, it must comply with the Eclipse Foundation IP policy. |
14 | 10 |
|
15 | | -Source |
16 | | ------- |
| 11 | +Please read the [Eclipse Foundation policy on accepting contributions via Git](http://wiki.eclipse.org/Development_Resources/Contributing_via_Git). |
17 | 12 |
|
18 | | -The Paho Java client and Android service are stored in a git repository. The URLs to access it are: |
| 13 | +1. Sign the [Eclipse CLA](http://www.eclipse.org/legal/CLA.php) |
| 14 | + 1. Register for an Eclipse Foundation User ID. You can register [here](https://dev.eclipse.org/site_login/createaccount.php). |
| 15 | + 2. Log into the [Projects Portal](https://projects.eclipse.org/), and click on the '[Eclipse CLA](https://projects.eclipse.org/user/sign/cla)' link. |
| 16 | +2. Go to your [account settings](https://dev.eclipse.org/site_login/myaccount.php#open_tab_accountsettings) and add your GitHub username to your account. |
| 17 | +3. Make sure that you _sign-off_ your Git commits in the following format: |
| 18 | + ``` Signed-off-by: John Smith <johnsmith@nowhere.com> ``` This is usually at the bottom of the commit message. You can automate this by adding the '-s' flag when you make the commits. e.g. ```git commit -s -m "Adding a cool feature"``` |
| 19 | +4. Ensure that the email address that you make your commits with is the same one you used to sign up to the Eclipse Foundation website with. |
19 | 20 |
|
20 | | -ssh://<username>@git.eclipse.org:29418/paho/org.eclipse.paho.mqtt.java |
21 | | -https://<username>@git.eclipse.org/r/paho/org.eclipse.paho.mqtt.java |
| 21 | +## Contributing a change |
22 | 22 |
|
23 | | -A [web browsable repository](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git) is available. |
| 23 | +1. Fork the repository on GitHub |
| 24 | +2. Clone the forked repository onto your computer: ``` git clone https://github.com/eclipse/paho.mqtt.java.git ``` |
| 25 | +3. Checkout the remote ```develop``` branch: ``` git checkout -b develop remotes/origin/develop ``` |
| 26 | +4. Make your changes |
| 27 | +5. If developing a new feature, make sure to include JUnit tests. |
| 28 | +6. Ensure that all tests pass. |
| 29 | +7. Commit the changes into the branch: ``` git commit -s ``` Make sure that your commit message is meaningful and describes your changes correctly. |
| 30 | +8. If you have a lot of commits for the change, squash them into a single commit. |
| 31 | +9. Push the changes to the develop branch in your forked repository. |
| 32 | +10. Finally, submit a pull request using the normal GitHub Web Interface. |
24 | 33 |
|
25 | | -Contributing a patch |
26 | | --------------------- |
27 | | - |
28 | | -The Paho repositories are accessed through Gerrit, the code review |
29 | | -project, which makes it possible for anybody to clone the repository, make |
30 | | -changes and push them back for review and eventual acceptance into the project. |
31 | | - |
32 | | -To do this, you must follow a few steps. The first of these are described at |
33 | | - |
34 | | -- [Contributing via git](https://wiki.eclipse.org/Development_Resources/Contributing_via_Git) |
35 | | - |
36 | | -* Sign the Eclipse CLA |
37 | | -* Use a valid commit record, including a signed-off-by entry. |
38 | | - |
39 | | -There are further details at |
40 | | - |
41 | | -- [Handling Git Contributions](https://wiki.eclipse.org/Development_Resources/Handling_Git_Contributions) |
42 | | - |
43 | | -Once the patch is pushed back to Gerrit, the project committers will be |
44 | | -informed and they will undertake a review of the code. The patch may need |
45 | | -modifying for some reason. In order to make amending commits more |
46 | | -straightforward, the steps at |
47 | | -https://git.eclipse.org/r/Documentation/cmd-hook-commit-msg.html should be |
48 | | -followed. This automatically inserts a "Change-Id" entry to your commit message |
49 | | -which allows you to amend commits and have Gerrit track them as the same |
50 | | -change. |
51 | 34 |
|
52 | 35 | What happens next depends on the content of the patch. If it is 100% authored |
53 | 36 | by the contributor and is less than 1000 lines (and meets the needs of the |
54 | | -project), then it can be committed to the main repository. If not, more steps |
55 | | -are required. These are detailed in the |
| 37 | +project), then it can be pulled into the main repository. If not, more steps |
| 38 | +are required. These are detailed in the |
56 | 39 | [legal process poster](http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf). |
57 | 40 |
|
58 | 41 |
|
59 | | -Developer resources: |
60 | | --------------------- |
61 | 42 |
|
62 | | -Information regarding source code management, builds, coding standards, and more. |
| 43 | +## Developer resources: |
63 | 44 |
|
64 | | -- [https://projects.eclipse.org/projects/iot.paho/developer](https://projects.eclipse.org/projects/iot.paho/developer) |
65 | 45 |
|
66 | | -Contributor License Agreement: |
67 | | ------------------------------- |
| 46 | +Information regarding source code management, builds, coding standards, and more. |
68 | 47 |
|
69 | | -Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation [Contributor License Agreement (CLA)](http://www.eclipse.org/legal/CLA.php). |
| 48 | +- [https://projects.eclipse.org/projects/iot.paho/developer](https://projects.eclipse.org/projects/iot.paho/developer) |
70 | 49 |
|
71 | 50 | Contact: |
72 | 51 | -------- |
73 | 52 |
|
74 | | -Contact the project developers via the project's development |
| 53 | +Contact the project developers via the project's development |
75 | 54 | [mailing list](https://dev.eclipse.org/mailman/listinfo/paho-dev). |
76 | 55 |
|
77 | 56 | Search for bugs: |
78 | 57 | ---------------- |
79 | 58 |
|
80 | | -This project uses [Bugzilla](https://bugs.eclipse.org/bugs/buglist.cgi?product=Paho) to track ongoing development and issues. |
| 59 | +This project currently uses [Bugzilla](https://bugs.eclipse.org/bugs/buglist.cgi?product=Paho) to track ongoing development and issues. |
81 | 60 |
|
82 | 61 | Create a new bug: |
83 | 62 | ----------------- |
|
0 commit comments