Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Announcements
  3. How to contribute code to the MySensors project

How to contribute code to the MySensors project

Scheduled Pinned Locked Moved Announcements
30 Posts 15 Posters 17.3k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • hekH Offline
    hekH Offline
    hek
    Admin
    wrote on last edited by hek
    #1
    1. Create a github account
      https://github.com/join

    2. 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".

    3. 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
      Screen Shot 2014-08-30 at 21.33.57.png

    4. Install git on your computer.
      http://git-scm.com/book/en/Getting-Started-Installing-Git

    5. 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

    6. 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:
      Screen Shot 2014-08-30 at 21.56.17.png
      Now write a good description and title of your pull request and send it in.
      Screen Shot 2014-08-30 at 22.05.00.png

    And your done!

    Most of this guide only needs to be done the first time you send a PR.

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      Zeph
      Hero Member
      wrote on last edited by Zeph
      #2

      Good guide, thank you.

      Can you send a pull request only to the direct parent from which you forked?

      hekH 1 Reply Last reply
      0
      • Z Zeph

        Good guide, thank you.

        Can you send a pull request only to the direct parent from which you forked?

        hekH Offline
        hekH Offline
        hek
        Admin
        wrote on last edited by
        #3

        @Zeph

        The project must have a common ancestor. But not necessarily a direct fork.

        1 Reply Last reply
        0
        • Z Offline
          Z Offline
          Zeph
          Hero Member
          wrote on last edited by
          #4

          I wasn't seeing a step where you selected which relative to send the pull request to.

          hekH 1 Reply Last reply
          0
          • Z Zeph

            I wasn't seeing a step where you selected which relative to send the pull request to.

            hekH Offline
            hekH Offline
            hek
            Admin
            wrote on last edited by
            #5

            @Zeph

            You can press the "Edit" button (top right) on the last picture.

            1 Reply Last reply
            0
            • epierreE Offline
              epierreE Offline
              epierre
              Hero Member
              wrote on last edited by
              #6

              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...

              z-wave - Vera -> Domoticz
              rfx - Domoticz <- MyDomoAtHome <- Imperihome
              mysensors -> mysensors-gw -> Domoticz

              R hekH 2 Replies Last reply
              0
              • epierreE epierre

                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...

                R Offline
                R Offline
                Rasmus Eneman
                wrote on last edited by
                #7

                @epierre MySensors is GPL so all code needs to conform with that, which CC doesn't. Also CC isn't for code.

                epierreE 1 Reply Last reply
                0
                • epierreE epierre

                  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...

                  hekH Offline
                  hekH Offline
                  hek
                  Admin
                  wrote on last edited by
                  #8

                  @epierre

                  https://wiki.creativecommons.org/FAQ#Can_I_use_a_Creative_Commons_license_for_software.3F

                  1 Reply Last reply
                  0
                  • R Rasmus Eneman

                    @epierre MySensors is GPL so all code needs to conform with that, which CC doesn't. Also CC isn't for code.

                    epierreE Offline
                    epierreE Offline
                    epierre
                    Hero Member
                    wrote on last edited by
                    #9

                    @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 ;-)

                    z-wave - Vera -> Domoticz
                    rfx - Domoticz <- MyDomoAtHome <- Imperihome
                    mysensors -> mysensors-gw -> Domoticz

                    epierreE 1 Reply Last reply
                    0
                    • epierreE epierre

                      @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 ;-)

                      epierreE Offline
                      epierreE Offline
                      epierre
                      Hero Member
                      wrote on last edited by
                      #10

                      @hek you have a CC in an example too : https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/SecretKnockSensor/SecretKnockSensor.ino ;-)

                      z-wave - Vera -> Domoticz
                      rfx - Domoticz <- MyDomoAtHome <- Imperihome
                      mysensors -> mysensors-gw -> Domoticz

                      hekH 1 Reply Last reply
                      0
                      • epierreE epierre

                        @hek you have a CC in an example too : https://github.com/mysensors/Arduino/blob/master/libraries/MySensors/examples/SecretKnockSensor/SecretKnockSensor.ino ;-)

                        hekH Offline
                        hekH Offline
                        hek
                        Admin
                        wrote on last edited by
                        #11

                        @epierre

                        Yeah. I know. Most of that example was copied from Adafruit (see link in example) with the CC license. I'm not a legal expert and unsure if I can "change" the CC. Would prefer having GPL on everything.

                        1 Reply Last reply
                        0
                        • O Offline
                          O Offline
                          oshwit
                          wrote on last edited by
                          #12

                          Ok, 2 questions:

                          1. 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.

                          2. 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.

                          1 Reply Last reply
                          0
                          • jkaJ Offline
                            jkaJ Offline
                            jka
                            wrote on last edited by
                            #13

                            @oshwit

                            1. 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.

                            1. We will use GNU GPL v2 or higher as license for all code written for mysensors.org in the repos.
                            1 Reply Last reply
                            0
                            • N Offline
                              N Offline
                              ntruchsess
                              Plugin Developer
                              wrote on last edited by ntruchsess
                              #14

                              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/mqttclient

                              all changes there are (and will remain) licensed GPL v2 or higher.

                              1 Reply Last reply
                              1
                              • M Offline
                                M Offline
                                myname
                                wrote on last edited by
                                #15

                                Copyright
                                This software is copyright 2012-1014 Sensnology AB. All rights reserved. Use is subject to license conditions. The main licensing options available are GPL V2 or Commercial.

                                1 Reply Last reply
                                0
                                • HeinzH Offline
                                  HeinzH Offline
                                  Heinz
                                  Hero Member
                                  wrote on last edited by
                                  #16

                                  2012-1014? I just can't belive it!

                                  hekH 1 Reply Last reply
                                  0
                                  • HeinzH Heinz

                                    2012-1014? I just can't belive it!

                                    hekH Offline
                                    hekH Offline
                                    hek
                                    Admin
                                    wrote on last edited by hek
                                    #17

                                    @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

                                    DrJeffD barduinoB 2 Replies Last reply
                                    0
                                    • hekH hek

                                      @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

                                      DrJeffD Offline
                                      DrJeffD Offline
                                      DrJeff
                                      wrote on last edited by
                                      #18

                                      @hek said:

                                      This is where the project started: http://forum.micasaverde.com/index.php/topic,16170.0.html

                                      WOW your vision stayed the same! Cool

                                      1 Reply Last reply
                                      0
                                      • hekH hek

                                        @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

                                        barduinoB Offline
                                        barduinoB Offline
                                        barduino
                                        wrote on last edited by
                                        #19

                                        Hi @hek

                                        When trying to sign the license agreement I get a very generic We're sorry, but something went wrong. on https://www.clahub.com/agreements/mysensors/Arduino/signatures

                                        Cheers

                                        1 Reply Last reply
                                        0
                                        • hekH Offline
                                          hekH Offline
                                          hek
                                          Admin
                                          wrote on last edited by
                                          #20

                                          Yes, CLAhub has been messed up a couple of months.

                                          You can just write "I agree to CLA" in the pull request comment until this has been fixed.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          10

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular