Community Source of NI Code

cancel
Showing results for 
Search instead for 
Did you mean: 

Instructions For Submitters to NI-Dev GitHub

  1. Git is a source code control system. GitHub is a particular Git server used by projects that need/want to share source who do not run their own Git server. NI has chosen to use GitHub for its Git server. You will need an account on GitHub before signing the NI license agreement. Your username will be needed on the license agreement. Go here to create your account:
    https://github.com/

  2. If you want training in Git or GitHub specifics, several NI employees found the 1 hour FREE GitHub Training courses useful. There are also further paid courses you might want. You can learn more and sign up for the courses here:
    http://training.github.com/schedule/

  3. Even if you don’t sign up, reading through this list will give you a good guide to installing the tools for GitHub interaction:
    http://training.github.com/articles/github-class-prerequisites/

  4. Download the license agreement from NI:
    https://decibel.ni.com/content/docs/DOC-37196

  5. Sign the license agreement. You must have permission to upload your work. If your employer (including a university) has a right to IP in your work, you will need to get clearance and signature from them to participate.

    Legally, we do need an actual signature on the document. If you can add a graphic of your signature to the PDF, that's fine. Otherwise, you'll need to print the pages, sign the document and then scan the pages back in as a single PDF.

  6. Then send the signed copy to:
    CommunityDevelopment@ni.com
    with the subject line "APPLICATION FOR NI-DEV ACCESS"
    Although we will try to respond much sooner, please allow a week to reply before you send us a reminder e-mail.
    Note: We know this is not a typical "open source" arrangement, but this is the best idea we have found to balance the desire of our users to improve LabVIEW while acknowledging that LabVIEW is for-profit software that gets used in sensitive industries. If you have particular objections to the license agreement, please open a discussion thread in this community so we can discuss them. We believe most users will find this arrangement acceptable.

  7. Wait for NI to respond with an accepted version of the license agreement. If we accept your license agreement, we will grant you access to the private "ni-dev" organization on GitHub.
    https://github.com/ni-dev/

  8. In the organization, you will find several repositories. Each repository is a separate library that NI has decided to community source. Community source means that NI still owns the code but has made it available for users and made it possible for you to make AND distribute modifications. When you upload changes, you assign them to NI, but NI permits you to distribute those changes. You may distribute those changes in binary form for non-commercial or commercial purposes; in source form only for a non-commercial purpose under an NI-prescribed license agreement to other users who have not signed the NI code repository access and license agreement. Any changes you want to distribute must be uploaded to the “ni-dev” organization on the GitHub server first.

  9. Please do NOT make changes to the “master” branch of any project on “ni-dev”. Instead, create your own branch (not a fork, just a branch) to make changes. The “master” branch will be updated only when NI updates the core product distribution. Any changes pushed into the master branch by non-NI employees will be reverted.

  10. If you choose to ALSO make a fork (and there are good reasons for doing so), updating your fork does not suffice to have shared your changes with the community. You must push your changes back into a branch within the “ni-dev” repositories before distributing your changes to other users.

  11. When you have your branch in a form that you believe is ready for inclusion in the main NI product, submit a New Pull Request to the “ni” organization. These pull requests will be evaluated by NI employees for inclusion or exclusion in the main NI distributions. Pull requests to the “ni” repository will be approved or rejected at NI’s discretion. Rejected pull requests will generally remain available on the “ni-dev” repository.

Thank you for helping us improve LabVIEW!

Message 1 of 1
(8,018 Views)