How does Git and Github Open Source Development Work?

Software 

 

Research Links


Software development using GitHub works by leveraging Git, a distributed version control system, hosted on a web-based platform that adds tools for collaboration, code review, and project management. This system allows multiple developers to work on the same codebase simultaneously without overwriting each other's changes. 

Key Concepts

  • Repository (Repo): A centralized storage location for all project files, folders, and their complete revision history.
  • Git: An open-source, local version control system that tracks changes, manages different versions, and allows developers to work offline.
  • GitHub: The cloud-based hosting platform that stores Git repositories remotely and provides a web interface with additional collaboration features.
  • Branching: The practice of creating a separate, parallel line of development to work on new features or bug fixes safely, without affecting the main codebase until the changes are ready.
  • Commits: Snapshots of a project at a specific point in time, each with an associated message describing the changes made.
  • Pull Requests (PRs): A mechanism for a developer to propose changes from a feature branch to the main branch, allowing for peer review and discussion before integration. 

The Typical GitHub Workflow

The standard process, often referred to as the GitHub flow, involves a series of steps to ensure code quality and seamless collaboration: 

  1. Set Up a Repository: A developer creates a new repository on GitHub or clones an existing one to their local machine using the git clone command.
  2. Create a Branch: A new branch is created from the main or development branch to isolate the new work. This is typically done with a command like git checkout -b <branch-name>.
  3. Make Changes and Commit: The developer works locally, making and saving changes with git add to stage files and git commit to record the changes as a snapshot in their local repository.
  4. Push Changes: The developer uploads their local commits to the remote repository on GitHub using the git push command.
  5. Open a Pull Request (PR): The developer opens a PR on GitHub to propose merging their changes into the main branch. This initiates a discussion and code review process among team members.
  6. Review and Discuss: Other team members review the proposed changes, provide feedback, suggest improvements, and run automated tests using tools like GitHub Actions.
  7. Merge: Once the changes are approved and all conflicts (if any) are resolved, the PR is merged into the main branch, integrating the new code into the project. The feature branch is then often deleted. 

This iterative cycle allows teams to manage complexity, track history, and maintain a stable main codebase while experimenting and collaborating efficiently. The process is further enhanced by integrated tools like Issues for task tracking and GitHub Actions for automation (e.g., automated testing and deployment). 


Gabor Szabo Presentation – Open Source Contribution with Focus on PERL and GetHub Use:1-24-2026

Links

From GS Email – 1/25/2026 – Post Presention Summary

In the first hour I showed some PRs I prepared for MIME::Lite you can watch the video here.

In the second hour we had two pair-programming sessions. In each one a participant was writing the code and I was giving the instructions. Driver-navigator style. Others added valuable comments. This part was also recorded and you can watch it here.

Please follow that channel and "like" the videos. That will help spreading them a bit further.

I've schedule a new event. You can register here.

I also mentioned that in order to make these events sustainable I am looking for corporate sponsors. If you work at a company that uses Perl a lot and you think these sessions are valuable, let's work out a way for them to sponsor the events.

Sponsors will be mentioned on the OSDC web site and in the Perl Weekly. They will also be able to give a list of modules important for them and we'll try to work on those in our sessions.

Ubuntu Linux How to Clone a Disk

Research Links

To clone a disk in Ubuntu, the most common methods involve booting from a Live USB and using tools like dd (block-level copy) for a direct clone or Clonezilla / Gnome Disks for a more user-friendly, partition-aware process, ensuring the target disk is equal or larger, and being extremely careful with device names (/dev/sda, /dev/sdb) to avoid data loss. 

Yes, you can easily clone from one external disk to another in Ubuntu using command-line tools like dd or rsync, or dedicated graphical tools like Clonezilla, ensuring you identify source/target drives correctly to avoid data loss, often by booting from a Live USB for system drives. Always double-check drive identifiers and consider post-clone steps like updating UUIDs if you plan to use both drives simultaneously or move the cloned drive to a new system. 

Local Artificial Intelligence AI Search On a Website

Research Links


Here is the step-by-step process for the easiest local setup:

1. Set Up Your Local Environment

  • Install Local (formerly Local by Flywheel): Download and install Local. This software allows you to run a WordPress site on your laptop without any web connection.
  • Import Your Site: Drag and drop your WordPress backup file (.zip from Duplicator, All-in-One Migration, or WP Vivid) onto the Local app to create an offline, local copy. 

2. Implement Local Vector Search

Install a Semantic Search Plugin: Inside your local WordPress dashboard, install a plugin that supports vector embeddings.

  • AI Vector Search (Recommended for Easiest): This plugin allows you to run search locally out of the box ("Lite Mode").
  • WPSOLR: Good for indexing content locally using Docker containers.
  • Vectorize Content: Go to the plugin’s settings and click "Index" or "Re-index." The plugin will convert your post content into vectors (embeddings) and store them in your local MySQL database. 

3. (Optional) Enhance with Local LLM (True Local AI)

To make it "totally local" (meaning no OpenAI API), you can connect the plugin to a local model runner:

  • Ollama: Install Ollama on your machine to run open-source models like Llama 3 or Mistral locally.
  • Connect Vector Search: Configure the AI Vector Search plugin to use Ollama for generating embeddings instead of an API. 

Summary of Tools

  • Environment: Local (LocalWP).
  • Plugin: AI Vector Search (Semantic).
  • Search Engine: Local MySQL or Dockerized Weaviate/Solr. 

This setup ensures that all your data stays on your machine, no external API calls are made, and your search functionality remains active without internet access.