You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/6. Sharing/6.1. License.md
+42-44Lines changed: 42 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,76 +6,74 @@ description: Discover the essential role of software licenses in defining how yo
6
6
7
7
## What is a software license?
8
8
9
-
[A software license](https://en.wikipedia.org/wiki/Software_license) is a legal agreement that details the conditions under which a software product can be accessed and used. This agreement is essential for defining the rights and responsibilities of both the developers and the users. It covers aspects like software modification, sharing, and usage in other projects, thus protecting the intellectual property of the creators and the legal rights of the users.
9
+
[A software license](https://en.wikipedia.org/wiki/Software_license) is a legal document that dictates what others can and cannot do with your code. It is the official rulebook for how your project is used, shared, and modified, protecting both your rights as a creator and the rights of your users.
10
10
11
-
Software licenses are typically categorized into two main types: [open-source](https://en.wikipedia.org/wiki/Open-source_license) and [proprietary](https://en.wikipedia.org/wiki/Proprietary_software). [Open-source licenses](https://en.wikipedia.org/wiki/Open-source_license) generally allow the software to be freely used, modified, and shared, while [proprietary licenses](https://en.wikipedia.org/wiki/Proprietary_software) impose restrictions on these activities.
11
+
Licenses are generally categorized by their permissions:
12
12
13
-
## Why do you need a software license?
13
+
-**Permissive (e.g., MIT, Apache 2.0)**: These licenses, often called "attributional," allow for great freedom. Others can use, modify, and even sell your work as part of their own proprietary software, as long as they give you credit.
14
+
-**Copyleft (e.g., GPLv3)**: These licenses ensure that any derivative work remains open source. If someone uses your copyleft-licensed code in their project, they must release their entire project under the same license.
14
15
15
-
Implementing a software license is crucial for several reasons:
16
+
## What happens if I don't include a license?
16
17
17
-
-**Legal Clarity**: Establishes a legal framework that dictates how the software can be used, preventing disputes.
18
-
-**Copyright Protection**: Protects your intellectual property from unauthorized use or distribution.
19
-
-**Control Over Distribution**: Dictates the terms of how your software is distributed, whether it is sold, given away, or integrated into other products.
20
-
-**Open Source Integrity**: In open-source projects, a clear license preserves the ethos of free use and collaborative development, and governs contributions.
18
+
If you don't include a license, your code is automatically protected by exclusive copyright. This means that, legally, no one else has the right to use, copy, modify, or distribute your work, even if you've published it on a public platform like GitHub. To allow others to use your code, you **must** provide a license that grants them permission.
21
19
22
-
In an organizational setting, it's vital to choose a license that aligns with institutional policies and objectives. Consultation with legal and management teams is recommended to ensure compliance with these policies.
20
+
## Why is a software license essential?
23
21
24
-
### Example: MIT vs GPLv3
22
+
A software license is crucial for turning a private project into a public resource. Here’s why it’s essential:
25
23
26
-
[The MIT License](https://en.wikipedia.org/wiki/MIT_License) and the [GNU General Public License v3 (GPLv3)](https://en.wikipedia.org/wiki/GNU_General_Public_License) are two prevalent open-source licenses that differ significantly:
24
+
-**Defines Clear Boundaries**: It removes ambiguity by explicitly stating the terms of use, preventing legal disputes.
25
+
-**Protects Your Work**: It safeguards your intellectual property from unauthorized use or distribution.
26
+
-**Encourages Contribution**: A clear license gives potential contributors the confidence to participate in your project, knowing their rights are protected.
27
+
-**Limits Liability**: Most licenses include a clause stating the software is provided "as is," without warranty, protecting you from liability.
27
28
28
-
-**MIT License**: Highly permissive, allowing almost unrestricted use, including in proprietary projects, provided the original copyright and license notice are included in copies of the software.
29
-
-**GNU General Public License v3 (GPLv3)**: This copyleft license requires that any derivatives of the software also be distributed under the same license, ensuring the preservation of usage, modification, and sharing rights.
29
+
In an organizational setting, always choose a license that aligns with your company’s policies. Consult with legal and management teams to ensure compliance.
30
30
31
-
### Case Study: ElasticSearch vs OpenSearch
31
+
### Example: MIT vs. GPLv3
32
32
33
-
[ElasticSearch](https://www.elastic.co/elasticsearch) switched from the very permissive [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0) to a dual-license model due to concerns about cloud providers using their software without contributing back. This led [Amazon Web Services (AWS)](https://aws.amazon.com/) to fork ElasticSearch, creating [OpenSearch](https://opensearch.org/) under the Apache 2.0 license to maintain its openness and community contribution. This case underscores the strategic role of licensing in software development and community engagement.
33
+
[The MIT License](https://en.wikipedia.org/wiki/MIT_License) and the [GNU General Public License v3 (GPLv3)](https://en.wikipedia.org/wiki/GNU_General_Public_License) are two popular open-source licenses with different philosophies:
34
34
35
-
## How to choose your software license?
35
+
-**MIT License**: A highly permissive license. Its motto is essentially, "Do whatever you want with this, just keep my name on it." It allows use in proprietary projects.
36
+
-**GNU General Public License v3 (GPLv3)**: A strong copyleft license. Its motto is, "If you use my code, your project must also be open." It ensures that the software and its derivatives remain free and open source.
36
37
37
-
Choosing the right software license involves careful consideration of your project’s objectives and the legal landscape:
38
+
### Case Study: Elasticsearch vs. OpenSearch
38
39
39
-
-**For Open Source Projects**: Utilize tools like [ChooseALicense.com](https://choosealicense.com/) to select a license that fits your preferences regarding how your software is used and shared.
40
-
-**For Proprietary Project**: Work closely with your company’s legal team to ensure the license aligns with business strategies and regulatory requirements.
40
+
[Elasticsearch](https://www.elastic.co/elasticsearch), originally under the permissive [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0), switched to a more restrictive dual-license model. The change was driven by concerns that cloud providers were profiting from their software without contributing back. In response, [Amazon Web Services (AWS)](https://aws.amazon.com/) forked the project to create [OpenSearch](https://opensearch.org/), keeping it under the Apache 2.0 license to ensure it remained open for community use. This case highlights how licensing is a strategic tool that can shape a project's community and commercial future.
41
41
42
-
## How to define the license for your project?
42
+
## How do you choose the right software license?
43
43
44
-
[To implement a license in your project](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository):
44
+
The right license depends entirely on your goals for the project. Ask yourself these key questions:
45
45
46
-
1.**Create a LICENSE.txt file** in the root directory.
47
-
2.**Include the Full License Text**: Ensure the complete, unaltered text of the license is included to make it legally binding.
46
+
-**Simplicity and Permission**: Do I want anyone to be able to use my code for any purpose? → **MIT License**
47
+
-**Concern About Patents**: Do I want to provide an express grant of patent rights from contributors to users? → **Apache License 2.0**
48
+
-**Enforcing Openness**: Do I want to ensure that any software that uses my code is also open source? → **GNU GPLv3**
48
49
49
-
You can find open-source license text on this website: https://opensource.org/license.
50
+
For a guided experience, use tools like [ChooseALicense.com](https://choosealicense.com/) to find a license that matches your goals.
50
51
51
-
## Should you choose a different license for AI/ML models?
52
+
## How do you add a license to your project?
52
53
53
-
Licensing AI and ML models necessitates addressing unique considerations related to the nature of data usage, model training, and deployment:
54
+
[Adding a license is straightforward](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository):
54
55
55
-
-**Data Privacy and Usage**: It's crucial to ensure that the licensing agreement covers the handling of potentially sensitive or personal information in compliance with applicable privacy laws, such as GDPR.
56
-
-**Model Reproducibility**: The license should specify if and how the model can be used to generate derivative models or reproduce results.
57
-
-**Commercial Use**: You need to decide whether the model can be used for commercial purposes. Some licenses may restrict commercial use to promote free academic and research utilization.
58
-
-**Attribution Requirements**: If required, the license should mandate users to credit the model creators or reference the original research.
56
+
1.**Choose Your License**: Select the license that best fits your project's needs.
57
+
2.**Create a `LICENSE` file**: In your project's root directory, create a file named `LICENSE` (or `LICENSE.txt`).
58
+
3.**Copy the Full License Text**: Visit [opensource.org](https://opensource.org/licenses) to find the official text for your chosen license. Paste the complete, unmodified text into your `LICENSE` file. Do not summarize or alter it, as the full text is legally binding.
59
59
60
-
Here is a list of some popular licenses used for AI/ML models that address these considerations:
60
+
## Are there special licensing considerations for AI/ML?
61
61
62
-
-**[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)**: Permits almost unrestricted use, including commercial use, while still requiring attribution.
63
-
-**[GNU General Public License (GPL) v3.0](https://en.wikipedia.org/wiki/GNU_General_Public_License)**: Ensures that derivative works are distributed under the same license terms, suitable for models where sharing improvements is desired.
64
-
-**[MIT License](https://en.wikipedia.org/wiki/MIT_License)**: A permissive license that allows almost any use with minimal restrictions, provided that the license and copyright notice are included.
65
-
-**[Creative Commons (CC BY 4.0)](https://creativecommons.org/)**: Suitable for datasets rather than models, requiring attribution but allowing for commercial and derivative uses.
62
+
Yes, licensing in AI/ML is more complex because you're often dealing with three distinct components: the **code**, the **model artifacts** (the trained weights), and the **data**. Each may require its own license.
66
63
67
-
## How should you integrate the license of your software dependencies?
64
+
-**Licensing the Code**: Standard software licenses like MIT or Apache 2.0 work perfectly well for the source code that trains or runs your model.
65
+
-**Licensing the Model**: This is an emerging area. You must decide if you are licensing the *use* of the model. Can others use it commercially? Can they build upon it? Specialized licenses like [OpenRAIL](https://www.licenses.ai/blog/2022/8/18/bigscience-open-rail-m-license) (Responsible AI Licenses) are designed to restrict the use of models in certain sensitive or unethical applications.
66
+
-**Licensing the Data**: Data licensing is critical. You must ensure you have the right to use the training data and clearly state how it can be used by others. [Creative Commons](https://creativecommons.org/) licenses are a popular standard for datasets, allowing you to specify whether commercial use is allowed or if derivatives must be shared.
68
67
69
-
Effectively managing the licenses of software dependencies ensures legal compliance and supports community and user trust. Here are streamlined steps for integrating these licenses:
68
+
## How do you manage licenses for your dependencies?
70
69
71
-
1.**Inventory Dependencies**: Use tools like SPDX to list and document all third-party components and their licenses.
72
-
2.**Review License Terms**: Analyze what is permitted or restricted under each license.
73
-
3.**Assess Compatibility**: Check for conflicts between dependency licenses and your project’s intended use.
74
-
4.**Automate License Compliance**: Employ tools like WhiteSource or Black Duck to automate license management, integrating them into your CI/CD pipeline.
70
+
Your project is a "derivative work" of its dependencies, so you must comply with their licenses. Incompatible licenses (e.g., using a GPL-licensed library in a closed-source commercial product) can create significant legal risks.
75
71
76
-
These steps help maintain legal integrity while leveraging the benefits of diverse software components.
72
+
1.**Audit Your Dependencies**: Generate a list of all third-party components and their licenses. You can use tools like `pip-licenses` for Python or `npm-license-crawler` for Node.js.
73
+
2.**Check for Compatibility**: Ensure that your project's license is compatible with the licenses of all its dependencies. For example, a project with an MIT license can use dependencies with MIT or Apache licenses, but using a GPL dependency would force the entire project to become GPL.
74
+
3.**Automate Compliance**: Integrate license-checking tools into your CI/CD pipeline. Tools like [WhiteSource](https://www.whitesourcesoftware.com/) or [Black Duck](https://www.blackducksoftware.com/) can automate this process for enterprise environments.
77
75
78
-
## License additional resources
76
+
## Additional Resources
79
77
80
-
-**[License example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/LICENCE.txt)**
78
+
-**[License example from the MLOps Python Package](https://github.com/fmind/mlops-python-package/blob/main/LICENSE.txt)**
81
79
-[Choose an Open Source License](https://choosealicense.com/)
0 commit comments