How to contribute code to the MySensors project
-
-
Create a github account
https://github.com/join -
It you'd like to contribute to the core MySensors library you have to sign the Contributor License Agreement (CLA) found here:
https://www.clahub.com/agreements/mysensors/MySensors
Note 1: This does not apply if you just want to add an examples or 3:rd party libraries.
Note 2: The CLA-hub service is somewhat broken. If you get an error when trying to sign, just make a note in the pull request "I agree to CLA". -
Fork the repository.
Note: All pull-requests must be made against the development branch.
Go to: https://github.com/mysensors/MySensors/tree/development
And press the fork button

-
Install git on your computer.
http://git-scm.com/book/en/Getting-Started-Installing-Git -
Check out your own fork of the MySensors/MySensors project. Open a shell and type:
> git clone https://github.com/USERNAME/MySensors- Change USERNAME to your own
You can now make your changes to the source that you have cloned from github. When you are ready and have verified that everything works as expected check in the changes to github by typing.
> git add -A- Add all changed files to the changeset
> git commit -m "message explaining what you have done"- Commit changes (locally)
> git push- Push changes to github -
Time to create a pull request (PR). Pull requests is used to inform MySensors about your proposed changes or additions to the project. Create it by navigating to your clone on the github web.
https://github.com/USERNAME/MySensors - Change USERNAME in the url
Press the "Pull request" button:

Now write a good description and title of your pull request and send it in.

And your done!
Most of this guide only needs to be done the first time you send a PR.
-
-
Good guide, thank you.
Can you send a pull request only to the direct parent from which you forked?
-
Good guide, thank you.
Can you send a pull request only to the direct parent from which you forked?
-
I wasn't seeing a step where you selected which relative to send the pull request to.
-
Hello,
I make my contribution as License: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0), I hope this will not conflict with your CLA...
-
Hello,
I make my contribution as License: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0), I hope this will not conflict with your CLA...
@epierre MySensors is GPL so all code needs to conform with that, which CC doesn't. Also CC isn't for code.
-
Hello,
I make my contribution as License: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0), I hope this will not conflict with your CLA...
-
@epierre MySensors is GPL so all code needs to conform with that, which CC doesn't. Also CC isn't for code.
@Rasmus-Eneman good, I did not find that mention on the website, and the CLA made me wondering on this...
@hek right ;-) I distribute too much under various licenses...but not the same media ;-)
-
@Rasmus-Eneman good, I did not find that mention on the website, and the CLA made me wondering on this...
@hek right ;-) I distribute too much under various licenses...but not the same media ;-)
@hek you have a CC in an example too : https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/SecretKnockSensor/SecretKnockSensor.ino ;-)
-
@hek you have a CC in an example too : https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/SecretKnockSensor/SecretKnockSensor.ino ;-)
-
Ok, 2 questions:
-
What's the matter with this Contributor License Agreement? Why is it needed at all? Then in plain words, what the heck do you want from people with it? Because my plain words are: section 2.1a explicitly says that copyright for the contributed code remains with the contributor - and it's usually the copyright assignment is why CLA are put forth at all. Yet section 2.1b says that contributor gives you a license and right to sublicense the code - without naming the license concretely. That sounds as if you ask to give you right to put the code under any license, besides the one under which it is released by contributor. But that's madness. If someone releases code under GPL, and you accept it, you're bound by that GPL.
-
What's the matter with including non Open Source code into the project? Because is CC-NC (non-commercial) is not an Open Source license, because no Open Source license puts limitation on the use of the software (like "only for non-commercial use"). If you include non Open Source code in your project, then your entire project is not Open Source.
So, would be nice to get answers to these licensing questions. Thanks.
-
-
- Let me first explain how it works in our case. All code written for mysensors.org should be GPL v2 or higher. If you contribute code to mysensors.org you have to agree on our CLA. If you don't agree with the CLA you should not create a pull request. According to our CLA you still own the copyright to all code you submit (you may for example submit your code to another site under whatever license you like) but you also give mysensors.org the right to release the code under any other license.
It is not uncommon that organisations impose you to sign CLA:s. Even if you contribute code to FSF (Free Software foundation) you need to sign a CLA. One of the reasons is that the organisation in the future more easily can adapt to changes. Another example is the Linux Kernal that is released under GNU GPL v2, in order to change to GNU GPL v3 they whould need a written statement for all contibuting developers, since they didn't sign any CLA:s.
- We will use GNU GPL v2 or higher as license for all code written for mysensors.org in the repos.
-
so when you intent to use GNU GPL v2 or higher for all code why would you need the right to change to 'any other license' (even to licenses not compliant with GPL v2 of higher)?
I'd like to contribute but will not sign a CLA that allows this 'change to any other license'.
Feel free to pull any changes that I commit to my fork (as you have done with my UIPEthernet-lib):
https://github.com/ntruchsess/MySensors/tree/ethernet_gw
https://github.com/ntruchsess/MySensors/tree/mqttclientall changes there are (and will remain) licensed GPL v2 or higher.
-
2012-1014? I just can't belive it!
-
@Heinz said:
2012-1014
Yep, typo, should be 2013-2015. :)
This is where the project started: http://forum.micasaverde.com/index.php/topic,16170.0.html
-
@Heinz said:
2012-1014
Yep, typo, should be 2013-2015. :)
This is where the project started: http://forum.micasaverde.com/index.php/topic,16170.0.html