Accessibility Best Practices for Your Project
Practical, actionable steps to make your open source project usable by everyone, especially people with disabilities.
Prerequisites
Best Practices for MaintainersEducation
Browse the full library of curated open source learning materials, then filter by role, topic, or skill level.
Except where marked Created, these are external resources curated by the UC OSPO Network: selected and organized by us, but authored by others.
Practical, actionable steps to make your open source project usable by everyone, especially people with disabilities.
Prerequisites
Best Practices for MaintainersMaking your life easier as an open source maintainer, from documenting processes to leveraging your community.
Prerequisites
Introduction to GitThis short course is teaching tools and practices for producing and sharing quality, sustainable and FAIR (Findable, Accessible, Interoperable and Reusable) research software to support open and reproducible research. The course can be delivered over 2 full or 4 half days.
Prerequisites
Introduction to GitBuilding a healthy community helps your project thrive. Learn how to foster collaboration and inclusivity.
Prerequisites
Social Coding and Inclusive CommunicationThis lesson covers the implementation of CI/CD pipelines in research software projects, focusing on automating tests, builds, and deployments using GitLab CI.
Prerequisites
Unit Testing and TDD in PythonFacilitate healthy and constructive community behavior by adopting and enforcing a code of conduct.
Prerequisites
Building CommunityA comprehensive reference guide covering collaboration practices in open research — community setup, GitHub workflows, code review, meetings and events, leadership, and research infrastructure roles. Part of The Turing Way open handbook.
Prerequisites
Introduction to GitThis lesson covers how to set up continuous integration and continuous delivery pipelines for automated testing and deployment in software projects.
Prerequisites
Testing and Test-Driven DevelopmentThis lesson explains how to use Git for collaborative software development, focusing on advanced Git techniques such as branching, merging, and conflict resolution.
Prerequisites
Introduction to GitThis lesson teaches best practices for conducting and participating in code reviews, emphasizing clear communication and collaborative problem solving.
Prerequisites
Collaborative Git for TeamsLaunching a successful open source project involves more than just code. Start your journey here.
Prerequisites
Best Practices for MaintainersSustain your work in open source by getting financial support for your time or your project.
Prerequisites
Starting an Open Source ProjectLearn how to find your first project using discovery tools, understanding labels, and identifying beginner-friendly tasks.
Prerequisites
What is Open Source?A set of practical computing habits every researcher can adopt — covering data management, code organization, collaboration, version control, and project structure.
This course aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language (see detailed learning objectives below).
Prerequisites
Modular Programming with PythonThis lesson covers the fundamentals of Docker, including creating containers, managing Docker images, and using Docker for software reproducibility and deployment.
This lesson introduces Git, a distributed version control system, and teaches how to use it to track changes, collaborate on projects, and manage the history of a codebase.
Prerequisites
What is Open Source?This lesson covers the basics of issue tracking for software projects, including how to create, manage, and close issues on GitHub.
Prerequisites
Best Practices for MaintainersEffective leadership and governance ensure long-term success for your open source project.
Prerequisites
Building CommunityTips for self-care and avoiding burnout as a maintainer.
Prerequisites
Best Practices for MaintainersA step-by-step walkthrough covering forking, cloning, feature branches, and responding to code review feedback.
Prerequisites
Social Coding and Inclusive CommunicationA focused metrics guide exploring how to assess risk and project direction by observing structural indicators of organizational influence.
An introduction to drawing community performance conclusions from four fundamental open-source health metrics.
Tracking the success of your project helps you make informed decisions and communicate impact effectively.
Prerequisites
Building CommunityThis lesson covers modular programming in Python, explaining how to write reusable code in modules, organize codebases, and test them to improve collaboration and maintainability.
Prerequisites
Introduction to GitThis lesson teaches the essential steps for packaging Python projects and publishing them on PyPI.
Prerequisites
Modular Programming with PythonThis lesson teaches how to create and publish packages in Python. We assume a basic understanding of Python, and assume learners are comfortable using simple commands in a Bash shell.
Prerequisites
Collaborative Git for TeamsThis lesson covers best practices for building Python packages, focusing on scientific software. It explains how to structure packages, write tests, manage dependencies, and distribute packages via PyPI.
Prerequisites
Python Packaging for BeginnersThis workshop will provide you with the basics for writing your own packages in R.
Prerequisites
Introduction to GitThis session aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments. Such environments are useful for ensuring reproducible research outputs, for example.
Prerequisites
Introduction to Docker and PodmanA comprehensive reference guide covering all aspects of reproducible research — version control, testing, data management, CI/CD, open research, licensing, and more. Part of The Turing Way open handbook.
Prerequisites
Introduction to GitPractical, low-barrier approaches to making research software citable, discoverable, and reusable — including CITATION.cff, licensing, metadata, and FAIR principles.
This course provides an overview of key skills for Research Software Engineers, including software design, version control with Git, testing with pytest, and project management.
Prerequisites
Modular Programming with PythonStrengthen your project's future by building trust through essential security practices — from MFA and code scanning to safe dependency management and private vulnerability reporting.
Prerequisites
Best Practices for MaintainersUnderstand the 'human' side of open source, including respectful language, the 'release early, often' mindset, and the value of non-code contributions.
Prerequisites
Finding and Evaluating ProjectsLaunching a successful open source project involves more than just code. Start your journey here.
Prerequisites
Introduction to GitThis lesson covers how to write tests for your code, understand test-driven development, and use testing frameworks like pytest in Python.
Prerequisites
Introduction to GitThis lesson provides an overview of common open-source software licenses, their conditions, and how to choose the right one for your project.
Prerequisites
What is Open Source?Everything you've ever wondered about the legal side of open source, and a few things you didn't.
Prerequisites
Software LicensingAn introduction to the four freedoms of software, the benefits of FOSS in education and industry, and the core principles of transparency and community.
This lesson covers how to write and run unit tests in Python, including an introduction to test-driven development (TDD) and its benefits.
Prerequisites
Modular Programming with PythonThis lesson teaches how to write effective software documentation, including API documentation, user guides, and installation instructions.
Prerequisites
Best Practices for MaintainersBuild confidence by making a real open source contribution using only your web browser. No technical setup or Git installation required!
Prerequisites
What is Open Source?