This repository contains the training materials for the CZI Imaging Tech team focused on good open-source citizenship.
This repository contains several modules intended to drive knowledge and culture around open source at CZI.
- Each module covers specific topics and is intended to be self-contained.
- Each module is broken into chapters, prefixed by a number to reflect the order in which they should be read.
- Each chapter indicates the primary personas at which the content is aimed (though this is not prescriptive, and all stakeholders involved in open source should be able to follow all the content in this repository).
- Files are written in Markdown format.
- This course is aimed at three primary learning personas; learning paths relevant to each persona are indicated in the learning personas section of this README.
This training is created for three types of people (personas) who interact with open source projects: code contributors, code-adjacent contributors, and managers who support the first two groups.
You can read the material chapter-wise for a thorough understanding. However, specific chapters are more relevant and valuable for particular personas, and this persona is indicated at the top of each chapter.
The following sections outline each persona's role in the open source project.
Community members who:
- report issues and create pull requests to improve or maintain the software codebase;
- propose plans to advance the software design and implementation;
- regularly participate in community discussions;
- contribute to upstream or downstream projects where relevant.
Learning path:
- Module 01 - Introduction to open-source
- Chapter 1.1 - Introduction to Open Source
- Chapter 1.2 - Types of Open Source Software
- Chapter 1.3 - Understanding OSS Governance
- Chapter 1.4 - How Does OSS Relate To The Open Research Movement?
- Module 02 - Participating in open source communities
- Chapter 2.1 - Why contribute to open source
- Chapter 2.2 - Understand open source sustainability and life cycle
- Chapter 2.3 - Being a good open source citizen as a corporate contributor
- Chapter 2.4 - Contributing to open source: tooling and best practices
- Module 03 - Enhancing your OSS contribution impact
- Chapter 3.1 - Creating a New OSS Project
- Chapter 3.2 - Effective upstream contributions
Community members who:
- report issues and create pull requests to improve or maintain the software documentation, design, user, and developer experience;
- propose plans to improve community collaboration, planning, and workflows;
- participate in community discussions;
- interact with upstream or downstream project communities.
Learning path:
- Module 01 - Introduction to open-source
- Chapter 1.1 - Introduction to Open Source
- Chapter 1.2 - Types of Open Source Software
- Chapter 1.3 - Understanding OSS Governance
- Chapter 1.4 - How Does OSS Relate To The Open Research Movement?
- Module 02 - Participating in open source communities
- Chapter 2.1 - Why contribute to open source
- Chapter 2.2 - Understand open source sustainability and life cycle
- Chapter 2.3 - Being a good open source citizen as a corporate contributor
- Chapter 2.4 - Contributing to open source: tooling and best practices
- Module 03 - Enhancing your OSS contribution impact
- Chapter 3.1 - Creating a New OSS Project
- Chapter 3.2 - Effective upstream contributions
Community members who support teams of regular contributors, specifically:
- manage teams of Individual Contributors (ICs) or advise team members/managers;
- set goals for the team that align with team members' skill sets, the team's mission, and the broader project roadmap;
- track, record, and communicate progress on various tasks;
- participate in community discussions, primarily around project-level strategy and direction.
Learning path:
- Module 01 - Introduction to open-source
- Chapter 1.1 - Introduction to Open Source
- Chapter 1.2 - Types of Open Source Software
- Chapter 1.3 - Understanding OSS Governance
- Chapter 1.4 - How Does OSS Relate To The Open Research Movement?
- Module 02 - Participating in open source communities
- Chapter 2.1 - Why contribute to open source
- Chapter 2.2 - Understand open source sustainability and life cycle
- Chapter 2.3 - Being a good open source citizen as a corporate contributor
- Module 03 - Enhancing your OSS contribution impact
- Chapter 3.1 - Creating a New OSS Project
- Chapter 3.2 - Effective upstream contributions
- Chapter 3.3 - Creating an impactful open source strategy
- Module 01 - Introduction to open-source: Provides a brief introduction to open-source, its ethos, and its benefits.
- Module 02 - Participating in open source: This module explores different ways to engage with and participate in open source communities. It also provides some best practices for contributing to open source as an individual and a corporate stakeholder.
- Module 03 - Module 03 - Enhancing your OSS contribution impact: This last chapter builds on the principles and learnings from the previous chapters and includes some best practices to further your open source contributions' impact and strategy.
- Each module contains a module activity to help you apply the learnings from the module to your open source project and your professional development.
Supporting slides for the workshop can be found in the slides directory. These slides are intended to cover two training sessions with the following content split:
- Session/Day 1:
- Session/Day 2:
- Module 02 - Participating in open source communities
- Chapter 2.1 - Why contribute to open source
- Module 03 - Enhancing your OSS contribution impact
- Chapter 3.1 - Creating a New OSS Project
- Chapter 3.2 - Effective upstream contributions
- Chapter 3.3 - Creating an impactful open source strategy
- Module 02 - Participating in open source communities
This repository uses the prettier
pre-commit hook to standardize our Markdown structure.
To install and run the pre-commit hooks, use these commands from the repository root:
# install the pre-commit hooks
pre-commit install
# run the pre-commit hooks
pre-commit run --all-files
Once installed, the hooks should run automatically on every commit.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to opensource@chanzuckerberg.com.
This work is licensed under a Creative Commons Attribution 4.0 International License.
If you believe you have found a security issue, please responsibly disclose by contacting us at security@chanzuckerberg.com.