How to choose a GitHub license and why is it important not to make the wrong choice? GitHub is the largest service for the joint development of IT projects and their subsequent hosting. With the help of this web service, an unlimited number of people can work on a project at once, as well as from absolutely anywhere in the world. Also in GitHub there is a management system or control that allows you to view and control absolutely all changes by developers for any time, and it also allows you to return to the state that occurred before the changes.
But to put it simply, GitHub is a so-called social network for programmers and developers, where you can find and then practice using codes from other developers. You can also store your portfolio in GitHub. All in all, GitHub is a service that is well suited for both novice developers and experienced programmers. However, users of this service may sometimes have some questions about choosing a license, since their choice there is quite diverse.
What is a GitHub license
A license is a special document that was established by the state form and allows one to engage in a certain type of entrepreneurial activity, which necessarily requires special attention from the state party. But, most often, in practice, only abbreviated licensing agreements are used or agreements that provide for the issuance of private law licenses. In general, the license pursues only one, but the most important goal, it is an agreement on obligations and rights between the licensor and the licensee. These duties and rights can be absolutely anything, but only within the framework of the law. A striking example is that the licensor may require the mandatory indication of the name of the copyright holder when using the work by the licensee. Or, for example, to allow copying of the work,but prohibit absolutely any modification of it. Or, to deduce such requirements that the work should be produced on absolutely the same conditions as the original, and so on, there are a lot of examples of different conditions being put forward.
An example of one of the Apache licenses [/ caption]
But, also we must not forget that the license protects the rights of not only the licensor, but also the licensee. Since in it you can clearly see and read all the terms of use of the work and therefore he does not need to be afraid that the licensor will suddenly demand any royalties or any other compensation for the use of his work.
If you opt out of a license that is associated with a work, the copyright will still apply in accordance with the legal rules in force in that country. Simply put, the absence of a license does not in any way imply that other authors can use this project however they want. Everything, absolutely, on the contrary, because without any specific license, a programmer in no way renounces the rights that were granted by law. It is also important to always remember that the license governs all rights and obligations. This is to protect the owner of the work from user expectations and what any warranty implies. After all, no one wants his code to go to court in any way.
What is copyright
Copyright appears to a person only when, as a result of intellectual activity, he creates a work that will be unique, but at the same time useful, as an example, you can take the writing of the same program. When all of the above is done, the person becomes the author and now he has absolutely all the copyright for this work. It must also be said that copyrights are proprietary and non-proprietary. Their difference is that property rights can be transferred to anyone, but not property rights will always remain only with the author in any situation. After all, being an author is an inalienable and inalienable right.
What is an Open Source license for?
This is also a fairly popular question among novice developers and programmers, since they simply don’t understand why they should attach any license to their projects, because without it the project can also easily exist. However, this is not entirely true, because if, for example, some novice developer wrote some rather important and useful piece of code, but did not protect it with a license, then other users have questions. And precisely because of this, when clients come to him and want to use this piece of code for their commercial purposes, they see that the code does not have any license and simply refuse it. This is due to the fact that companies simply will not use the code without a license, because they do not need problems with the law and lawyers.
And that is why, even the most useful and convenient project will never be realized. And the developer who wanted to take this piece of code will have to look for and use an alternative or completely rewrite the code that was already written by a novice developer earlier. That is why, it would be best to make sure in advance that the programmer is using the correct, and most importantly, suitable license. Explore GitHub in one video tutorial in 15 minutes: https://youtu.be/JfpCicDUMKc
Which GitHub license is right for certain conditions – how to choose?
There can be no exact answer to this question, since the choice of a license depends only on the goals of the project and on the personal preferences and desires of the developer himself. As you can see, there are a lot of various licenses on GitHub, and most importantly, they are all free and publicly available, which means that every programmer can find the
Open Source license that is exactly suitable for his project. But, most importantly, we must not forget that an Open Source license is not just a code with no license.
Family of licenses on GitHub [/ caption] After a little research, you can collect all Open Source licenses and divide them into three large main groups:
- Strongly protective.
- Weakly defending.
- Permissive.
Strongly protective
Strongly defensive licenses are most often variations of the GPL. These licenses necessarily require licensing of the project, as well as the disclosure of source codes, even in spite of how any code or project will be used or has already been used.
Weakly defending
Weakly defensive licenses are most often variations of the Lesser GPL. In which the main difference from permissive licenses is that it is simply necessary to license the program under the GPL license, as well as to provide the source codes without fail. Moreover, if a programmer’s project contains a library, that is, static linking or dynamic linking under the LGPL license, then it will also be compatible with any of the programmer’s project license.
Where the type of license on GitHub is indicated [/ caption]
Permissive
There are a large number of permissive licenses, among them the most popular licenses are MIT, Apache 2.0, and BSD. With slight variations, these licenses have the ability to allow the use of the code both in Open Source projects and for commercial purposes and projects. But, in this case, it is important to remember that it is necessary to indicate the authorship of the original program.
Other popular GitHub licenses
In addition to these three groups of licenses, there are others, for example, another of the most useful licenses is GPLv2 with classpath extensions. This license can also be used both in Open source projects and in commercial projects and purposes. Its most popular appearance is at Oracle, this company uses GPLv2 with classpath extensions to license its Open Source projects and solutions. This license is quite important and useful, as ordinary GPL licenses, for example, can never handle bytecode. That is, they have a special description of the compilation and linking process, which is completely inappropriate for other interpreted programming languages, such languages include the most popular Java language.It is for such cases that a special GPLv2 license with classpath extensions was released. After all, it very clearly and clearly says that the library that was released under this license can be used in commercial projects and purposes with absolutely any other license.
What else you need to know about
GitHub licenses .
Adding a license
After the final license is finally selected, all that remains is to add it to the project root itself. To perform this action, you need to add the selected license under the project root during the creation of the project itself, or in general at any other time. But even in this action, the GitHub web service managed to take care of its users and they made a fairly convenient way to add the final license even at the start of the project itself.
However, unfortunately this is not all, since the developer or programmer needs to check absolutely all the dependencies that were used in his idea or project. That is, even if one of the dependencies is released under the GPL license, then absolutely the entire developer’s project must be GPL compatible. For such verification, the intended earlier created programs or tools are usually used for this. For example, there is a tool for this https://github.com/pivotal/LicenseFinder:
We can say that licensing is a rather time-consuming task, but at the same time a necessary action for the life of a project or any idea of a programmer. In order to choose the right license, unfortunately, you have to spend a lot of time, however, it is worth it for the project to be successful. It is best to put the choice of a license in the first place when writing a program, since having done this at the very beginning, you can direct all your efforts in the right direction and write a program that will be successful and convenient for most users.