Almost all college students want to contribute to FOSS, but most of them are inexperienced. They are stuck in a chicken-and-egg problem - they need basic git/version control experience to contribute to a FOSS project, but they need to contribute to FOSS projects to gain basic experience. How do we address this?
We came across a potential solution in the form of the BeyondSyllabus project. In brief, the BeyondSyllabus project and the affiliated WikiSyllabus projects make college curricula accessible to students. Unfortunately, the WikiSyllabus project aims to create a central repository of all available college curricula via user contributions. What if instead of a central repository, the information were decentralized? This was the beginning of our effort to make college curricula accessible, and we were able to structure our effort such that the students gain basic git/version control experience by creating/maintaining a project close to them, i.e., of their own college.
We designed a simple session for college students where
A basic version-controlled project is set up on a source code hosting provider, e.g., a git project on github
The project is configured with a Static Site Generator, e.g., MkDocs, such that content written in plain text can be used to generate a static website
CI/CD is set up on the source code hosting provider, e.g., GitHub Actions, such that the static site is compiled and deployed after every PR merge
Every participant opens forks and opens PRs against the project to add content from their college curricula
In this process, the participants learn the basics
Basics of version control software and source code hosting providers, e.g., Git and GitHub
Basics of Markdown
Basics of SSG like MkDocs
Basics of CI/CD, e.g., GitHub Actions
Across multiple, we have been able to walk hundreds of student participants through this session, and hundreds of PRs were created by first-time contributors.
The key takeaway is a new kind of session that student clubs can organize to regularly practice how to use version control software and source code hosting providers, e.g., Git and GitHub.