0% found this document useful (0 votes)
19 views11 pages

Unit 3

Unit 3 discusses how to discover relevant open-source projects, primarily focusing on platforms like GitHub, GitLab, and Bitbucket. It details methods for finding projects, utilizing GitHub's trending features, and managing issues and pull requests within repositories. The document emphasizes the importance of community engagement and collaboration in open-source development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views11 pages

Unit 3

Unit 3 discusses how to discover relevant open-source projects, primarily focusing on platforms like GitHub, GitLab, and Bitbucket. It details methods for finding projects, utilizing GitHub's trending features, and managing issues and pull requests within repositories. The document emphasizes the importance of community engagement and collaboration in open-source development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Unit 3

Discovering Relevant Projects


Open Source Software (OSS) refers to software that is freely available
for modification and distribution.

Platforms to discover relevant open-source projects :

GitHub

Explore trending repositories and search by technology.

GitLab & Bitbucket

Other repositories hosting open-source projects.

Open Source Initiative (OSI)

Lists approved open-source projects.

Mozilla Open Source Support (MOSS)

Supports various OSS projects.

Red Hat, Apache, Linux Foundation

Hosts various open-source projects.

GitHub
GitHub is the largest open-source platform, hosting millions of
repositories.

How to Discover Projects on GitHub


Trending Repositories

Visit GitHub Trending to find the most active repositories.

Filter by programming language and timeframe (daily, weekly,


monthly).

Explore Section

Navigate to GitHub Explore to find curated lists and topics.

Search by Technology

Unit 3 1
Use https://github.com/search?q=keyword .

Replace keyword with tech stack like Python, AI.

Labels for New Contributors

Use tags like good first issue , help wanted to find beginner-friendly
projects.
How GitHub Trending Works
The Trending page highlights repositories based on :

Stars

More stars indicate higher popularity.

Forks

Projects with many forks show active contributions.

Recent Activity

Updates, commits, and PRs influence ranking.

Programming Language Filters

Filter trending projects by specific languages (Python,


JavaScript, etc.).

Timeframe Filters

Choose daily, weekly, or monthly trends.

How to Use GitHub Trending


Step 1 : Access Trending Repositories

Visit https://github.com/trending .

The default page shows trending repositories across all


languages.

Step 2 : Apply Filters

Filter by Timeframe

Daily → Shows repositories gaining traction quickly.

Weekly → Highlights consistent growth in the last 7 days.

→ Displays repositories with long-term


Monthly

engagement.

Unit 3 2
Filter by Language

Select a specific programming language (Python,


JavaScript, C++. etc.).

Step 3 : Explore Repository Details

Click on a repository to view :

README file

Provides an overview of the project.

Issues & Pull Requests

Checks if it’s beginner-friendly.

Stars & Forks

Higher numbers indicate strong community


engagement.

Step 4 : Identify Good Projects to Contribute

Look for repositories labeled good first issue or help wanted .

Read discussions in the Issues and Discussions sections.

Follow active developers and organizations to track updates.


GitHub Issues
It is a tool that helps developers and teams track tasks, report bugs,
and discuss project-related topics within a repository.

Issues function like discussion threads where collaborators can —

Report Bugs

Notify others about problems in the project.

Request Features

Suggest new functionalities or improvements.

Ask Questions

Seek clarification or assistance.

Organize Tasks

Break down work into manageable parts.

Unit 3 3
Each issue can have a title, description, labels, assignees, and
comments, facilitating organized and transparent collaboration.

They are quick to create, flexible, and can be used in many ways.

They can track bug reports, new features and ideas, and anything
else you need to write down or discuss with your team.

You can also break your work down further by adding sub-issues and
easily browse the full hierarchy of work to be done.

Prerequisites of Issues
To create an issue, you need a repository.

You can use an existing repository that you have write access to,
or you can create a new repository.

The repository must have issues enabled.

Navigating the Issues Page


Open & Closed Issues Tabs

At the top, you’ll find tabs indicating the number of open and
closes issues.

Open issues are active discussions or reports, while closed


issues have been resolved or deemed irrelevant.

Filter & Search Options

You can filter issues by author, label, projects, milestones, and


assignees.

This helps in locating specific issues or categories, such as


bugs or feature requests.

Sorting

Issues can be sorted based on criteria like newest, oldest,


most commented, or recently updated, allowing users to
prioritize or focus on particular discussions.

Understanding Issue Labels


Labels are tags assigned to issues to categorize and highlight
their nature.

Unit 3 4
Common labels include :

bug

Indicates a reported problem or malfunction within the


application.

enhancement

Denotes a suggestion for a new feature or improvement to


existing functionality.

B : Content not loading

Specifies issues where content fails to load as expected.

B : Accessibility

Relates to problems affecting user accessibility.

good first issue

Suggests that this problem is suitable for newcomers to


the project, likely because it is self-contained and not
overly complex.

These labels assist in quickly identifying the nature of an issue


and facilitate efficient triaging and resolution.
Participating in Discussions
Users are encouraged to engage constructively by :

Reporting New Issues

Providing detailed descriptions, steps to reproduce, and


system information.

Commenting on Existing Issues

Sharing experiences, potential solutions, or additional


insights related to the issue.

Following Up

Keeping track of issues you’ve reported or are interested


in to provide additional information or test potential fixes.

Active participation aids in the timely identification and resolution


of problems.

Unit 3 5
Issue Labels in FreeTube
B : text/string

This label is applied to issues related to textual content within


the application.

It encompasses problems like typos, grammatical errors,


incorrect messages, or any discrepancies in the displayed
text.

U : reproduced

This label indicates that the reported issue has been


successfully replicated by someone other than the original
reporter.

Reproducing an issue is a crucial step in the debugging


process, as it confirms the existence of the problem under
specified conditions.

bug

This is a standard label used across many GitHub repositories


to denote an issue that describes an unintended flaw or
problem in the software.

Bugs can range from minor glitches to significant errors


affecting functionality.

How to Create an Issue


Navigate to the Repository

Go to the main page of the project on GitHub.

Access the Issues Tab

Click on the Issues tab located near the top of the page.

New Issue

Click on the New Issue button.

Fill in Details

Provide a clear title and detailed description.

Submit

Unit 3 6
Click Submit new Issue to post it.
Step by Step
Opening a Blank Issues

Create an issue.

Filling in Information

Give the issue a descriptive title. The title should convey at a


glance what the issue is about.

Add a description that explains the purpose of the issue,


including any details that might help resolve the issue.

Adding a Task List

It can be helpful to break large issues into smaller tasks, or to


track multiple related issues in a single larger issue.

Add a task list to your issue by prefacing list items with [ ].

Adding Labels

Add a label to categorize your issue.

Users can filter issues by labels to find all issues that have a
specific label.

You can use the default labels, or you can create a new label.

Adding Milestones

You can add a milestone to track the issue as part of a data


based target.

A milestone will show the progress of the issues as the target


data approaches.

Assigning The Issue

You can assign the issue to a member of your organization.

You can add the issue to an existing project and populate


metadata for the project.

Submitting The Issue

Click Submit New Issue to create your issue.

Communicating

Unit 3 7
Continue the conversation by adding comments to the issue.
Creating an Issue with GitHub CLI
GitHub CLI is an open source tool for using GitHub from your
computer’s command line.

To create an issue :

gh issue create --title "My new Issue" --body "Here are more
details."

You can also specify assignees, labels, milestones, and projects

gh issue create --title "My new Issue" --body "Here are more
details." --assignee @me, monalisa --label "bug,help wanted"
--project onboarding --milestone "learning codebase"

Creating an Issue from a Comment


You can open a new issue from a comment.

Navigate to the comment you would like to open an issue from

In the comment, click ...

Click Reference in New Issue

Use the Repository dropdown menu, and select the repository you
want to open the issue in.

Type a descriptive title and body for the issue.

Click Create Issue

When you’re finished, click Submit New Issue .

Reproducing a Reported Bug


Reproducing means following a specific set of steps to make the
bug appear again.

This helps confirm that the bug exists and allows developers to
understand the issue better.

It helps :

Confirms the Bug Exists

Unit 3 8
Ensures it’s not a one-time glitch.

Helps Identify the Cause

Understanding when and how the bug appears.

Assists in Fixing It

Developers can test solutions by reproducing and


verifying fixes.

Prevents Future Issues

Once reproduced and fixed, similar problems can be


avoided.
GitHub Pull Requests
It is a mechanism that allows developers to contribute to an open-
source project by proposing changed to a repository.

It is widely used in collaborative development to introduce new


features, fix bugs, and enhance code quality.

Why Pull Requests in Open Source


Open-source projects often have multiple contributors.

Contributors do not have direct access to modify the main


repository.

A pull request ensures code review, quality checks, and


discussions before merging changes.

What is a Pull Request (PR)


A pull request is a way to notify others about changes you have
made in a branch and request them to review and merge those
changes into another branch, typically main or develop branch.

A pull request contains :

The branch where changes were made.

The branch where changes should be merged.

A title and description of the changes.

A list of commits in the PR.

A diff view showing what has changed in the files.

Unit 3 9
Review comments and discussions.
Workflow of a PR in Open Source
Fork the Repository

A contributor creates a personal copy of the original


repository to make changes.

Clone the Forked Repository

git clone https://github.com/your-username/project-name.git


cd project-name

Create a New Branch

git checkout -b feature-branch

A separate branch helps in organizing different contributions.

Make Changes & Commit

Modify code, add features, or fix bugs.

git add .
git commit -m "Added new feature"

Push the Changes to the Forked Repo

git push origin feature-branch

Create a Pull Request (PR) on GitHub

Navigate to the original repository on GitHub.

Click on New Pull Request .

Select your feature branch and compare it with the main


repository.

Add a meaningful title and description.

Review Process & Merging

Project maintainers or reviewers check for bugs, coding


standards, and test results.

Unit 3 10
If changes are requires, the contributor updates the PR.

Once approved, the PR is merged.


Fixing an Issue via a Pull Request
Find an Open Issue

Navigate to the Issues tab in a GitHub repository.

Choose an issue labeled Good First Issue or any other relevant


issue.

Read the issue details and comments for guidance.

Follow the PR Workflow

Fork, clone, create a branch, and make the required code


changes.

Reference the issue in your commit message :

git commit -m "Fixed Issue #123: Resolved memory leak"

Push changes and create a PR.

Link the PR to the Issue

In the PR description, reference the issue using keywords :

Fixes #123

This automatically closes the issue when the PR is merged.

Unit 3 11

You might also like