After clicking on the plus sign in the upper right corner of the Github homepage, you can see the option to create a New repository, as shown above. Click on ‘New Repository’ to take you to the Create New Repository page. Once on this page, you can see the drop-down box in the lower right corner to select an open source license for your project:

As of 2020/06/13,Github allows the selection of open source licenses to create the repository as follows:

Github supports Apache, MIT, BSD, CC0, EPL, AGPL, GPL, LGPL, MPL. This makes our choices a lot easier, but sometimes it’s not always a good thing to have a lot of choices. When it comes to open source licenses, everyone probably has this question on their mind:

  1. Why use an open source license? I don’t have a problem using open source licenses at all
  2. Even if I was going to use an open source license, there are so many on Github that I have no idea which one to choose. Don’t even know the difference between them?
  3. None of the open source licenses on Github are what I want. I know of a great one, but I don’t have a choice when creating the Github repository.

Why do I need an open source license?

To understand why you should use an open source license, I think you should first understand what happens if you don’t use an open source license.

How does not using an open source license affect developers?

First of all, in the absence of open source license of your project is an exclusive rights, so that it can cause a problem is that other people use your projects more difficult, and will cause no one wants to use your project, if there is a problem is many people participate in the development of your project, because everybody wants to be the copyright holder of the project, You get all the members of the team in charge of cases, free to use for a project is illegal, if you want to be a good maintenance projects of other contributors to the copyright permission, that you have to go and a contributor agreement between your project contributors, think is a very hard thing to do.

The second problem is that when you publish your code to Github’s public repository, you are accepting the Github public repository’s terms of service, which allow many people to view and copy your project repository. In some special cases, some people may not need your permission or authorization to use your project.

How does not using an open source license affect the users of the project?

If you find software that is not licensed under an open source license, you are not authorized by the author. Although you can view and copy the code on Github, you are technically not allowed to use, modify, or share the software for any purpose.

What you can do as a user of the project at this point is:

  1. Talk to the project developer to add an open source license
  2. Don’t use a project without an open source license, even if you think it’s a good project
  3. Negotiate with the developer personally to obtain the developer’s license

Conclusion: Why to use open source license, because otherwise, will bring a lot of trouble to developers and users, with open source license is to avoid some unnecessary trouble in the use of the project in the future

How are Github open source licenses selected and what are the differences between them?

There are so many open source licenses out there, even on Github, that I’m sure most people don’t have the time or energy to get certified and know every one of them. So I have listed the addresses and rights of the most important open source licenses, so you can first make a rough judgment, make a simple judgment about which open source license you are likely to use, and then do a serious study. If you are really interested in open source licenses, You can also explore a few widely used open source licenses (such as GPLv3 and MIT licenses) and follow the trend without any problems.

Common open source software licenses (from most open to least open)

GNU AGPLv3

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
Disclose source

License and copyright notice

Network use is distribution

Same license

State changes
Liability

Warranty

GNU GPLv3

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
Disclose source

License and copyright notice

Same license

State changes
Liability

Warranty

GNU LGPLv3

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
Disclose source

License and copyright notice

Same license

State changes
Liability

Warranty

The Mozilla Public License 2.0

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
Disclose source

License and copyright notice

Same license (file)
Liability

Trademark use

Warranty

The Apache License 2.0

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
License and copyright notice

State changes
Liability

Trademark use

Warranty

MIT License

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
License and copyright notice

Liability

Warranty

The Boost Software License 1.0

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
License and copyright notice

Liability

Warranty

The Unlicense

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Patent use

Private use
Liability

Warranty

Common non-software open source licenses

CC0-1.0 –

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Private use
Liability

Patent use

Trademark use

Warranty

CC – BY – 4.0

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Private use
License and copyright notice

State changes
Liability

Patent use

Trademark use

Warranty

CC – BY – SA – 4.0

Permissions Conditions Limitations
Commercial use

Distribution

Modification

Private use
License and copyright notice

State changes

Same license
Liability

Patent use

Trademark use

Warranty

How to read the chart above

It’s like, the Permissions are what the open source license allows you to do and the Condition is that you’re only allowed to do it under certain circumstances like Limitations

How to choose software open source license?

We need a chart drawn by Ukrainian veteran Paul Bagwell to help us understand and choose:

From the figure above, we can see that the mainstream open source certificates are divided into two groups:

GPL and MPL (I’ll call them “A”) BSD, MIT and Apache (I’ll call them “B”)

The main difference between the two groups is whether you allow open source certificates to change when you make changes to existing open source software:

The viewpoint of school A is that the open source certificate used after you change the open source project must be consistent with or compatible with the original open source project. In fact, it is an idea that starts from open source and stays loyal to open source, so that everyone can keep open source

The B side of the argument is that the original open source project, if you change part of the code then you can also change the open source certificate, so that the open source project is easier to commercialize,

The GPL and MIT certificate of the two open source is A and B two extremes, was by far the most popular both certificate, specific how to choice you can look at the picture, or the content of the agreement, of course, more detailed recommend according to the agreement I sent you A link to find the original agreement, to read the agreement carefully to understand the original

How to choose a non-software open source license?

Open source license used for dataset video

Cc0-1.0, CC-BY-4.0, and CC-by-SA-4.0 are commonly used for non-software projects such as data sets and videos. It is important to note that CC-BY-4.0 and CC-by-SA-4.0 are not recommended for software projects

Cc-by-4.0 is very similar to CC-BY-SA-4.0. The latter has a requirement that if you make changes to the open source project, the modified version must use the same open source license as the original one or be compatible with the original one. This is the same idea as the two schools of software open source certificate

The open source license used for the document

Normally in the open source software and open source software with open source document itself holds the same open source licenses, of course you also can be in open source software and its corresponding source documents use two different sets of open source licenses, but you have to point out that in the document source code examples use license is what kind of

Open source license for font use

A common License for Open source fonts is the SIL Open Font License 1.1, which allows others to use them freely while retaining their own copyright

Permit for use in mixed works

If your project is a very large mixed project, including software, documentation, data sets, videos, fonts, etc., you will need multiple licenses for your project, but you will need a description of what licenses are used for each part of your project.

What if all the licenses on Github don’t meet my requirements?

An open source LICENSE is essentially a text file named LICENSE or license.txt. If you are going to use an open source LICENSE that is not optional when building a repository on Github, you can do this:

  1. When selecting an open source LICENSE, select one at random and change the automatically generated LICENSE file to the one you need
  2. Do not select the open source LICENSE. Create the LICENSE/ license. TXT file in your own project folder and paste the content of the open source LICENSE

All read here wechat friends point to see, friends of other platforms can pay attention to wechat public number early sleep python more quality original without advertising content waiting for you to see.