Guidelines
Licensing

Licensing

Choose a license that fits your needs

There are many different open source licenses available, each with its own set of terms and conditions. Choose a license that aligns with your goals for the project, such as allowing others to use and modify the code or requiring that any modifications be made available to the community.

A wide range of software licenses exist, but some of the most common ones include:

  • GNU General Public License (GPL): This is a widely used free software license that allows users to freely modify and distribute the software, as long as they make any modifications available under the same license.
  • MIT License: This is a permissive free software license that allows users to use, modify, and distribute the software without many restrictions.
  • Apache License: This is a permissive free software license that allows users to use, modify, and distribute the software without many restrictions, as long as they include a copy of the license and give credit to the original developers.
  • BSD License: This is a permissive free software license that allows users to use, modify, and distribute the software without many restrictions, as long as they include a copy of the license and give credit to the original developers.
  • Microsoft Public License (MS-PL): This is a free software license that allows users to use, modify, and distribute the software without many restrictions, as long as they include a copy of the license and give credit to the original developers.
  • Creative Commons licenses: These are a set of free licenses that allow users to use, modify, and distribute creative works, such as music, photographs, and videos, under certain conditions.
  • Proprietary licenses: These are licenses that are not open source and are typically owned by a company or individual. They may include restrictions on how the software can be used, modified, or distributed.

Here are a couple of resources that you can use to learn more about different software licenses:

Understand the terms of the license agreement

Make sure you fully understand the terms of the license agreement before using the software. This includes any restrictions or limitations on how you can use the software, as well as any fees or other obligations you may have.

Include a LICENSE file in your project

It's important to include a LICENSE file in your project so that users know what they can and cannot do with your code. You can use a tool like choosealicense.com (opens in a new tab) to generate a LICENSE file for your project.

Update your license if you make significant changes to the code

If you make significant changes to your code that alter the terms of the license, it's a good idea to update the license to reflect those changes. This helps to ensure that users are aware of the current terms and conditions for using your code.

Respect the licenses of any third-party libraries or dependencies

If your project includes any third-party libraries or dependencies, make sure to respect the licenses of those components. This may mean including additional attribution or license notices in your project, or following other requirements specified by the license.

Here are a few examples of how you might include additional attribution or license notices in your project:

  • In a separate file: You could create a file called "ATTRIBUTION" or "LICENSE_NOTICES" and include all of the attribution and license notices for third-party libraries or dependencies in that file.
  • In the documentation: If your project has documentation, you could include attribution and license notices for third-party libraries or dependencies in the documentation. For example, you might create a section called "Third-Party Libraries" and list all of the libraries you are using along with their respective attribution and license notices.
  • In the README: If your project has a README file, you could include attribution and license notices for third-party libraries or dependencies in the README. For example, you might create a section called "Dependencies" and list all of the libraries you are using along with their respective attribution and license notices.

Obtain permission for use

If you want to use software for a purpose that is not covered by the terms of the license agreement, you may need to obtain permission from the software owner or developer.

Consider professional advice

If you are unsure about the terms of a license agreement or have any other questions about software licensing, consider seeking the advice of a legal professional.

Last updated on