Skip to content

OSDC-Code-Maven/osdc-2023-03-azrieli-staff-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSDC - Open Source Development Course for Azrieli staff 2023.03

  • site

  • 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-1

  • Video-2

  • Video-3

Day 2

  • Day 2 - 2023.05.15 15:00-19:00

  • GitFlow

  • 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-1

  • 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.