Creating your repo is simple. Visit https://github.com/cablelabs/software-best-practices and clone the repo to get started.
Once you have cloned the repo be sure to update the README section. The README should introduce what the project is, how someone can contribute to the project and any other relevant resources that can help the community better understand the project. To view an example of an Open Source Project Repo visit: https://github.com/cablelabs/snaps-kubernetes
Next you will need to select the License that you want for your Open Source project. Below are the three most commonly used licenses:
Apache 2.0 - The Apache License is a permissive free software license written by the Apache Software Foundation (ASF) copyright notice and disclaimer. Like other free software licenses, the license allows the user of the software the freedom to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software, under the terms of the license, without concern for royalties. This makes the Apache License a FRAND-RF license. The ASF and its projects release the software they produce under the Apache License. The license is also used by many non-ASF projects.
MIT - The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) license compatibility proprietary software provided that all copies of the licensed software include a copy of the MIT License terms and the copyright notice. The MIT license is also compatible with many copyleft licenses, such as the GNU General Public License (GPL); MIT licensed software can be integrated into GPL software, but not the other way around.
BSD + Patents - This license is designed to provide: a) a simple permissive license; b) that is compatible with the GNU General Public License (GPL), version 2; and c) which also has an express patent grant included.
If you have questions on how to apply the license to your repo you can visit: https://help.github.com/articles/licensing-a-repository/#disclaimer Github also provides a great resource for helping determine what license to use: https://choosealicense.com.
The landing page will be your public introduction to your project and used in promoting the project to the target audience. Work with the Software Team and Marketing to identify the proper domain name and layout for the landing page template.
Once the template is ready you will be able to populate with all relevant content for your project. This content will be similar to what was provided in the README section of your repo and should include what the project is and why it matters, relevant diagrams or illustrations, upcoming feature enhancements and how to get engaged.
It’s important to keep this content up to date as the project continues to evolve. Here are two examples of current landing pages for Open Source projects at CableLabs: https://www.loraserver.io/, https://lpwanserver.com/
The ultimate goal of an Open Source project is to build a community around it that will help contribute and eventually maintain the project long term. There are a few steps to follow in order to start building your community.
First, identify who the target audience is going to be (e.g. specific Vendors, Members or other industry organizations).
Second, work with the Software and Marketing teams to develop relevant content and events/ platforms that will be used when executing the communication plan. Prepare a blog entry to act as announcement for the launch of your open source project. An example blog can be found at https://www.cablelabs.com/open-source-lpwan-server-lpwan-technologies/.
Last, be responsive to activity in the repo. The best way to build and keep a healthy community is to answer questions, fix bugs or provide requested documentation as soon as possible.
If you have any questions you can contact Paul Fonte with the Software Team