Understanding open source licenses and what it means to license your code is important when you're working in open source. It can have an impact on your code, how it is used and extended, and in some cases can impact your current employer's rights as well. This page is not a legal guide for copyright or licensing, but it does provide some information on the topic and hopefully makes it easier for you to make your decision.
Your code, and copyrights
When you write some code and publish it for others to use you can add a copyright header to the file to show that you created it and are responsible for the rights related to its use. In open source projects, the copyright header often also mentions the open source license that applies to the file, so others can easily find out the terms that allow them to use and build on your work. As an example, a copyright header in a source file might look like this fake one:
/* Copyright (C) 2018, Pippy Long
* You may use, modify, and distribute this code under the
* terms of the XYZ license.
// lots of great code follows this comment.
For most open source development, you or your employer will own all the rights to the code, and be responsible for things like deciding what open source license to apply to the code. As an optional alternative, the Nordix Foundation offers a way for you to assign copyright for your contributions to the foundation, instead of keeping that responsibility yourself. Copyright assignment isn't automatic, so if you ever want it, you or your employer will need to sign a specific agreement with the Nordix Foundation, which includes terms to ensure that the foundation will only use the contributions you make in a way that's beneficial for the open source community. After the agreement is signed, any new copyright headers you add should list the Nordix Foundation as the copyright holder instead of your name or your company's name. The copyright assignment agreement with the Nordix Foundation only applies to development you do on the Nordix Foundation infrastructure, it doesn't have any effect on code you develop elsewhere.
Copyright (C) 2018, Nordix Foundation
When you edit an open source file that already has a copyright header, you should not remove the original header or change the license information. Adding some lines of your own code to a file doesn't mean you own the entire file, so it doesn't give you the right to change the license on the entire file. In this case you can either;
- Make your edits and leave the header as it is, this is common when you are only making small changes to the file and not altering it significantly
- Add your own copyright statement next to the original authors, this is common when you add significant code or features to the file
It is important in open source, collaborative development, to be able to trace who created code, and who added what to the files, and that we agree on the terms and conditions of use.
Open Source Licenses
There are many open source licenses that can be used to share the software you produce. Choosing an open source license has an impact on how others can use or work with your code and the terms and responsibilities that are associated with it. The Open Source Initiative (OSI), is an independent, non-profit body that reviews and approves licenses to ensure they meet community standards for open source, and is widely accepted as an authority on what it means to call software "open source". The OSI states that "We are the stewards of the Open Source Definition (OSD) and the community-recognized body for reviewing and approving licenses as OSD-conformant."
The OSI maintains a list of licenses it has approved for open source development. Developers today will often come across GPL (used for Free Software Foundation projects, Linux Foundation projects), and Apache (used for Apache Software Foundation projects, OpenStack) licenses. When you see a license header you can visit the OSI web pages to learn more about them and what your rights are when using and contributing to the code.
Nordix Foundation licenses
We don't require projects in the Nordix Foundation to use one specific license, though we do require our projects to use licenses that have been approved by the OSI. We expect that many people in our community will be working with other communities and foundations, such as Linux Foundation and OpenStack Foundation, who do require one specific license for their projects. Giving our community the flexibility to choose between open source licenses is important, so our projects can maintain license compatibility with other projects.
If you are starting a new project in Nordix you can choose a popular OSI license to use. You need to specify that when you are creating your project and it will need to be approved by the Technical Committee. If you are not sure about what license to choose, you can reach out and ask on firstname.lastname@example.org. In general, it is best to choose an open source license that is compatible with any other projects that are closely related to your project.