Summary and Schedule
This a new lesson meant to help learners understand Open Source Licensing.
Learning Objectives
After completing this lesson, learners will be able to:
- Describe what an open source license is
- Describe an example of what can happen if a license isn’t applied to a project
- Identify the difference between permissive and non-permissive (copyleft) licenses, with an example of each
- List the most common open source licenses
- Describe an example of what can happen when a project’s dependencies’ licenses clash
- Choose a license for an example project and explain why that’s the right choice
- No licensing knowledge required, this is the starting point of the lesson.
- Some basic understanding of what open source software is, helps but isn’t strictly required, since the lesson can open with the basics.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Why License? |
What is an open source software license? Why should I add a license to my software? |
| Duration: 00h 25m | 2. Permissive vs Copyleft Licenses | Put questions here |
| Duration: 00h 37m | 3. When Licenses Clash |
What are dependencies What happens if my dependency has a license different from my project license :::::: |
| Duration: 01h 02m | 4. Using Markdown | Think, Pair, share: Think of an OSS project and roles ( contributor, researcher, commercial oss dev.), Discuss which license you would choose for that project and why. |
| Duration: 01h 14m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
FIXME: Setup instructions live in this document. Please specify the tools and the data sets the Learner needs to have installed.
Data Sets
Download the data zip file and unzip it to your Desktop
Software Setup
Details
Setup for different systems can be presented in dropdown menus via a
spoiler tag. They will join to this discussion block, so
you can give a general overview of the software used in this lesson here
and fill out the individual operating systems (and potentially add more,
e.g. online setup) in the solutions blocks.
Use PuTTY
Use Terminal.app
Use Terminal