-
Start day: 2023.03.29
TOC
Videos
General information
This workshop is a shortened version of the full OSDC planned for the staff of the Azrieli College of Engineering in Jerusalem (JCE)
- Lecturer: Gabor Szabo gabor@szabgab.com
- The workshop is planned to be in 4 meetings of 5 academic hours.
- In each meeting we'll have a presentation that will last about 2-3 academic hours (depending on the questions). Then we'll have hands-on assignments aided by the lecturer.
- The workshop is planned to take place via Zoom, though the first session might be in a class-room setting. We'll decide this later on.
- The sessions in Zoom will be recorded and made available via YouTube.
- The presentation will be given in Hebrew. Notes and written materials are in English.
- The exact dates and time of the meetings will be decided later.
- If you don't have one yet, please create an account on GitHub and upload an image or avatar.
- We will have a web-form for the participants so the lecturer will have some understanding of the participants' background.
- We'll have a private Slack channel for communication in-between the meetings for participants who would like to get help outside of the meetings.
Syllabus
Day 1
-
Day 1 - 2023.03.29 15:00-19:00
-
Introduction to the Open Source development process using GitHub (forking and pull-request).
-
Continuous Integration (CI) to ensure different contributors don't interfere with each-other.
-
Old way in open source:
- start from the code you have (but it might have been already outdated)
- change code
- use
diff
to created diff-file (also called a patch). - send the diff to developer of the project or to the mailing list of the project if it had one.
- Use the
patch
command to integrated the changed to the most recent version of the source code.
-
We discussed how GutHub with the idea of forking made this process much easier.
-
We saw the fork, pull-request process in a drawing.
-
We saw a few Pull-Request in the Forem in GitHub project (the platform on which DEV.to runs).
-
We saw how to accept a Pull-Request in the Kantoniko - Ladino dictionary project.
-
We discussed the 3 ways to accept a pull-request.
- Create a merge commit
- Squash and merge
- Rebase and merge
-
We created a Pull-Request adding a JSON file to our website.
-
We hadd issues enabling workflow and checked the GitHub Status page. GitHub Actions was basically down.
-
We discussed a few examples of GitHub Actions (Bash, Python, and Postgres)
- Video-2
- Video-3
Day 2
-
Day 2 - 2023.05.15 15:00-19:00
- Git Workflow - single branch, Continuous Integration
- Git commit, push, staging
- What is a fork (historically, in GitHub it is friendly)
-
What is a branch
-
Why do people develop Open Source projects?
-
Why do corporations develop Open Source software?
- Video 2-2
Day 3
-
Day 3 - 2023.06.19 14:00-18:00
-
The wealth of GitHub (Issues, diffs, blame, insights, watching, stars)
-
Create Github pages - Creating a free website using Markdown and static site generators.
-
Docker - containerization for easier on-boarding and to reduce the risk of executing unknown code on our system.
Day 4
- Introduction to automated testing. A testing demo with a Python project.
- On request of the participants there can be demo for other programming languages as well.
- How open source projects ensure high quality. CI systems, test farms.
Prerequisites
No programming background is required. People without programming background will have non-programming assignments.
About the instructor
Gabor Szabo has been writing software since 1983, working in the hi-tech industry since 1993, teaching software development since 2000, contributing to open source since 2002. He is the author of the Code Maven web site. Check out his GitHub profile.