diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c3b76c99..005ca232 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,99 +10,83 @@ The Mosquitto project has been created to provide a light weight, open-source implementation, of an MQTT broker to allow new, existing, and emerging applications for Machine-to-Machine (M2M) and Internet of Things (IoT). +- - Source ------ -The Mosquitto code is stored in a git repository. The URL for anonymous access is: +The Mosquitto code is stored in a git repository. -- http://git.eclipse.org/gitroot/mosquitto/org.eclipse.mosquitto.git +- http://github.com/eclipse/mosquitto -Access via Gerrit (for code review) is through the following URLs: +You can contribute bugfixes and new features by sending pull requests through GitHub. -- ssh://username@git.eclipse.org:29418/mosquitto/org.eclipse.mosquitto -- https://username@git.eclipse.org/r/mosquitto/org.eclipse.mosquitto -A web browsable repository is available at +## Legal -- +In order for your contribution to be accepted, it must comply with the Eclipse +Foundation IP policy. -Contributing a patch --------------------- +Please read the [Eclipse Foundation policy on accepting contributions via Git](http://wiki.eclipse.org/Development_Resources/Contributing_via_Git). -The Mosquitto repositories are accessed through Gerrit, the code review -project, which makes it possible for anybody to clone the repository, make -changes and push them back for review and eventual acceptance into the project. +1. Sign the [Eclipse CLA](http://www.eclipse.org/legal/CLA.php) + 1. Register for an Eclipse Foundation User ID. You can register [here](https://dev.eclipse.org/site_login/createaccount.php). + 2. Log into the [Projects Portal](https://projects.eclipse.org/), and click on the '[Eclipse CLA](https://projects.eclipse.org/user/sign/cla)' link. +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. +3. Make sure that you _sign-off_ your Git commits in the following format: + ``` Signed-off-by: John Smith ``` 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"``` +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. -To do this, you must follow a few steps. The first of these are described at +## Contributing a change -- +1. [Fork the repository on GitHub](https://github.com/eclipse/mosquitto/fork) +2. Clone the forked repository onto your computer: ``` git clone + https://github.com//mosquitto.git ``` +3. If you are adding a new feature, then create a new branch from the latest + ```develop``` branch with ```git checkout -b YOUR_BRANCH_NAME + origin/develop``` +4. If you are fixing a bug, then create a new branch from the latest + ```fixes``` branch with ```git checkout -b YOUR_BRANCH_NAME origin/fixes``` +5. Make your changes +6. Ensure that all new and existing tests pass. +7. Commit the changes into the branch: ``` git commit -s ``` Make sure that + your commit message is meaningful and describes your changes correctly. +8. If you have a lot of commits for the change, squash them into a single / few + commits. +9. Push the changes in your branch to your forked repository. +10. Finally, go to + [https://github.com/eclipse/mosquitto](https://github.com/eclipse/mosquitto) + and create a pull request from your "YOUR_BRANCH_NAME" branch to the + ```develop``` or ```fixes``` branch as appropriate to request review and + merge of the commits in your pushed branch. -* Sign the Eclipse CLA -* Use a valid commit record, including a signed-off-by entry. - -There are further details at - -- - -If your contribution is a fix for a bug, please use the 'fixes' branch as the -base for your work. If you are proposing new behaviour/features please use the -'develop' branch. - -Once the patch is pushed back to Gerrit, the project committers will be -informed and they will undertake a review of the code. The patch may need -modifying for some reason. In order to make amending commits more -straightforward, the steps at - should be -followed. This automatically inserts a "Change-Id" entry to your commit message -which allows you to amend commits and have Gerrit track them as the same -change. What happens next depends on the content of the patch. If it is 100% authored by the contributor and is less than 1000 lines (and meets the needs of the -project), then it can be committed to the main repository. If not, more steps -are required. These are detailed in the legal process poster: +project), then it can be pulled into the main repository. If not, more steps +are required. These are detailed in the +[legal process poster](http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf). -- - -Developer resources: --------------------- - -More information regarding source code management, builds, coding standards, -and other topics can be found at. - -- - - -Contributor License Agreement: ------------------------------- - -Before your contribution can be accepted by the project, you need to create and -electronically sign the Eclipse Foundation Contributor License Agreement (CLA). - -- Contact: -------- -Contact the project developers via the project's "dev" list. - -- - +Contact the project developers via the project's development +[mailing list](https://dev.eclipse.org/mailman/listinfo/mosquitto-dev). Search for bugs: ---------------- -This project uses Bugzilla to track ongoing development and issues. - -- +This project uses [Github](https://github.com/eclipse/mosquitto/issues) +to track ongoing development and issues. Create a new bug: ----------------- -Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome! +Be sure to search for existing bugs before you create another one. Remember +that contributions are always welcome! -- +- [Create new Paho bug](https://github.com/eclipse/mosquitto/issues)