Skip to content

gt-ospo/oss-training

GT OSPO logo

OSS Training from GT OSPO

License: CC BY-SA 4.0 GitHub stars GitHub forks GitHub issues GitHub contributors

This repository contains comprehensive training modules for getting started with open source software development. The training modules are provided as interactive Jupyter Notebooks that you can read like a book or run interactively in a Jupyter session.

πŸ“š Training Modules

Module Title Description Static Interactive
00 History and Philosophy of Open Source The origins of free software, Richard Stallman's printer story, software licensing types, and the philosophy behind open source View Static Page Open in Colab
01 Open Source Licensing Overview of open source licenses, their terms, compatibility, and how to choose the right license for your project View Static Page Open in Colab
02 Git Basics Fundamental Git operations, repositories, and version control workflows View Static Page Open in Colab
03 Git Workflows: Issues, Forks, and Pull Requests Collaborative workflows on GitHub including issues, forks, and pull requests View Static Page Open in Colab
03a GitHub Project Management Using GitHub labels, milestones, Projects v2 boards, issue search, and task chunking to organize open source work View Static Page Open in Colab
04 Testing Code: What, Why and How To Comprehensive guide to software testing including unit, integration, and acceptance testing View Static Page Open in Colab
05 Continuous Integration and Continuous Delivery CI/CD concepts, GitHub Actions, and automated testing workflows View Static Page Open in Colab
06 Code Review Best practices for conducting effective code reviews and maintaining code quality View Static Page Open in Colab
07 Governance Foundations Open source governance models, foundations, and decision-making processes View Static Page -
08 Open Source Lifecycle and Sustainability Understanding OSS project lifecycle, sustainability evaluation, and ecosystem dynamics View Static Page Open in Colab
09 Security Best Practices Supply chain security, SBOMs, attestations, Semgrep, SLSA, and Gittuf for OSS projects View Static Page Open in Colab

πŸš€ Getting Started

πŸ’» Running Locally

All training notebooks require the jupyter Python package. Some may require additional packages (such as bash_kernel). See the intro section of each notebook for details.

pip install jupyter jupyterlab bash_kernel
python -m bash_kernel.install

To run the same notebook checks used in CI and pre-commit:

pip install -r requirements-notebook-tests.txt
pre-commit install
pre-commit run --all-files
#Notebook tests will run locally and return errors or passing state
Execute training notebooks...............................................Passed

🌐 Running with Google Colab

The notebooks can also be loaded using Google Colab, a hosted Jupyter notebook service from Google. To run these notebooks using Colab:

  1. Go to colab.research.google.com (you may need to log in with your Google account)
  2. Click on File β†’ Open Notebook
  3. Go to the GitHub tab and paste the repo URL: https://github.com/gt-ospo/oss-training.git
  4. Click the search icon and select the notebook you wish to run
  5. Use the Runtime tab to execute the notebook
Google Colab Open Notebook

Google Colab Interface

🀝 Contributing

We welcome contributions to improve these training materials! Please read our Contributing Guidelines for details on how to submit improvements, report issues, or suggest new content. All contributors are expected to follow our Code of Conduct to maintain a welcoming and inclusive environment.

πŸ“„ License

This project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file for details.

πŸ›οΈ About GT OSPO

The Georgia Tech Open Source Program Office (GT OSPO) promotes and supports open source software development, education, and research within the Georgia Tech community and beyond.


Happy Learning! πŸŽ“
If you find these materials helpful, please consider giving us a ⭐!

About

Topical training for getting started with open-source development

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages