FOSS Field Trip (Activity)
Line 22: | Line 22: | ||
A FOSS project has a set of files (including source code, documentation, etc), usually organized into folders. | A FOSS project has a set of files (including source code, documentation, etc), usually organized into folders. | ||
Most FOSS projects keep the complete history of every file, to know what changes were made, by who, and when. | Most FOSS projects keep the complete history of every file, to know what changes were made, by who, and when. | ||
− | The set of files and their history is | + | The set of files and their history is a '''repository''', or a '''repo''' for short. |
+ | |||
Most FOSS projects also use web-based collaborative tools to develop and share code and documentation, | Most FOSS projects also use web-based collaborative tools to develop and share code and documentation, | ||
track who does what, and discuss questions, problems, and suggestions. | track who does what, and discuss questions, problems, and suggestions. | ||
− | A software platform with these tools is | + | A software platform with these tools is a '''forge'''. |
Some forges support ''one'' FOSS project (usually a ''large'' project), | Some forges support ''one'' FOSS project (usually a ''large'' project), | ||
and other forges host ''many'' independent FOSS projects. | and other forges host ''many'' independent FOSS projects. | ||
Well known forges include [https://github.com GitHub], [https://sourceforge.net SourceForge], and [https://bitbucket.org Bitbucket]. | Well known forges include [https://github.com GitHub], [https://sourceforge.net SourceForge], and [https://bitbucket.org Bitbucket]. | ||
− | Note that '''forge''' | + | Note that the software used by such sites is also called a '''forge'''; |
for example, [https://gitlab.com GitLab], [https://redmine.org RedMine], and [https://trac.edgewall.org Trac] | for example, [https://gitlab.com GitLab], [https://redmine.org RedMine], and [https://trac.edgewall.org Trac] | ||
are FOSS forges that anyone can install and modify, unlike [https://github.com GitHub]. | are FOSS forges that anyone can install and modify, unlike [https://github.com GitHub]. | ||
+ | This activity also uses '''OpenHub''' (formerly '''Ohloh'''), | ||
+ | which is ''not'' a forge, but mines data from forges to analyze project activity. | ||
=== Directions === | === Directions === | ||
− | POSSE Attendees: | + | * ''POSSE Attendees'': Post your answers on your foss2serve wiki page. |
+ | * ''Students'': Ask your instructor how to report your answers. | ||
==== Part 1 - GitHub ==== | ==== Part 1 - GitHub ==== | ||
In Part 1 you will search '''GitHub''' for projects. Do the following: | In Part 1 you will search '''GitHub''' for projects. Do the following: | ||
− | # | + | # Open a new browser tab and go to: https://github.com |
− | # | + | # Find the search box near the top of the page, type "education", and press enter or click on the search icon. |
− | ## How many ''repositories'' are found? {{Answer|~25,000 (as of 2019-01)}} | + | ## How many ''repositories'' are found for "education"? {{Answer|~25,000 (as of 2019-01)}} |
− | ## How many of these repos use the JavaScript language? (Hint: | + | ## How many of these repos use the JavaScript language? (Hint: Find a summary table.) {{Answer|~3000 (as of 2019-01)}} |
## In the first page of results, which repo was updated ''most'' recently? Which was updated ''least'' recently? {{Answer|Answers will vary, and may range from a few hours ago to several years ago.}} | ## In the first page of results, which repo was updated ''most'' recently? Which was updated ''least'' recently? {{Answer|Answers will vary, and may range from a few hours ago to several years ago.}} | ||
# Many repos are small and inactive. To see the most active repos, find the ''Sort'' menu and sort by ''most stars''. | # Many repos are small and inactive. To see the most active repos, find the ''Sort'' menu and sort by ''most stars''. | ||
− | ## Which ''education'' | + | ## Which ''education'' repo has the most stars? How many? {{Answer|freeCodeCamp with ~300k (as of 2019-01)}} |
− | # Click on this repo to see its overview page. Scroll down past the list of files to see a description. | + | # Click on this repo to see its overview page. Scroll down past the list of files to see a project description. |
− | # In GitHub, each reported problem or suggestion is an '''issue''', | + | # In GitHub, each reported problem or suggestion is an '''issue''', the code and documentation to fix an issue is a '''pull request''', and a pull request that is accepted and added to a repo is a '''commit'''. Each issue and pull request is either ''open'' (in progress) or ''closed'' (done). (You will learn more about all of this later.) |
− | ## At the top of the overview page, click on the ''Issues'' tab | + | ## At the top of the overview page, click on the ''Issues'' tab. You should see a list. How many issues are ''open''? ''closed''? {{Answer|~350 and ~13k for freeCodeCamp (as of 2019-01)}} |
− | ## Click on the ''Pull requests'' tab | + | ## Click on the ''Pull requests'' tab. You should see a list. How many pull requests are ''open''? ''closed''? {{Answer|~5000 and ~16k for freeCodeCamp (as of 2019-01)}} |
− | ## Click on the ''Insights'' tab. What | + | ## Click on the ''Insights'' tab. What do you see? {{Answer|Bargraphs of issues, pull requests, and commits this week.}} |
− | ## Within ''Insights'', go to the left menu and click on ''Commits''. What | + | ## Within ''Insights'', go to the left menu and click on ''Commits''. What do you see? {{Answer|A bargraph showing the number of commits each week for the last year.}} |
− | # Go back to the main GitHub page | + | # Go back to the main GitHub page. |
− | ## How many repos are found? | + | ## Search for "humanitarian" projects. How many repos are found? {{Answer|~350 (as of 2019-01)}} |
− | ## Find ''HTBox/crisischeckin''. When was the last update? | + | ## Find ''HTBox/crisischeckin''. How many stars does it have? What language(s) does it use? When was the last update? {{Answer|~200 stars, C#, date will vary (as of 2019-01)}} |
− | # Search for | + | ## Search for "disaster management" projects, or a term that interests you. How many repos are found? {{Answer|Varies}} |
− | + | ||
− | Keep | + | Keep the GitHub browser tab open as you move on to Part 2. |
==== Part 2 - OpenHub ==== | ==== Part 2 - OpenHub ==== | ||
In Part 2, you will search '''OpenHub''' for projects. Do the following: | In Part 2, you will search '''OpenHub''' for projects. Do the following: | ||
− | # | + | # Open a new browser tab and go to: https://www.openhub.net |
# In the search box, type "education". | # In the search box, type "education". | ||
− | ## The listing shows the number of ''pages'', not the number of ''projects''. By default, each page shows 10 projects. How many ''projects'' were found? | + | ## The listing shows the number of ''pages'', not the number of ''projects''. By default, each page shows 10 projects. How many ''projects'' were found? {{Answer|}} |
− | ## Click on ''KDE Education'' (near the top of the list), and then click on ''Code Locations'' (on the right side | + | ## Click on ''KDE Education'' (near the top of the list), and then click on ''Code Locations'' (on the right side). Are any of the repo locations on GitHub? {{Answer|}} |
− | + | ## Go back to ''KDE Education'', and click on ''Similar Projects'' (below ''Code Locations''). How many similar projects are listed? {{Answer|}} | |
− | ## Go back to ''KDE Education'', and click on ''Similar Projects'' (below ''Code Locations''). How many similar projects are listed? | + | ## Scroll down. What info does OpenHub provide about each similar project? {{Answer|}} |
− | ## Scroll down. What info does OpenHub provide about each similar project? | + | |
# Search for both "humanitarian" and "disaster management". | # Search for both "humanitarian" and "disaster management". | ||
− | ## How many projects did each search return? | + | ## How many projects did each search return? {{Answer|}} |
− | ## Some projects show 'Activity Not Available'. Click on the pyramid icon and read the info provided. Why | + | ## Some projects show 'Activity Not Available'. Click on the pyramid icon and read the info provided. Why is 'activity not available'? |
# Click on ''Organizations'' (near the top of the page). | # Click on ''Organizations'' (near the top of the page). | ||
## What info is shown? | ## What info is shown? | ||
Line 86: | Line 88: | ||
=== Deliverables === | === Deliverables === | ||
− | POSSE: Please post the answers to these questions on your foss2serve user wiki page. | + | * ''POSSE Attendees'': Please post the answers to these questions on your foss2serve user wiki page. |
− | + | * ''Students'': Wiki posting describing your explorations of GitHub and OpenHub. | |
− | Students: Wiki posting describing your explorations of GitHub and OpenHub. | + | |
= Notes for Instructors = | = Notes for Instructors = |
Revision as of 19:34, 20 January 2019
Title |
FOSS Field Trip - Browsing for FOSS Projects |
---|---|
Overview |
Learners will explore the breadth of available FOSS projects as well as differences between GitHub and OpenHub. |
Prerequisites |
None. |
Learning Objectives |
After successfully completing this activity, the learner should be able to:
|
Process Skills Practiced |
|
Background
FOSS predates the web, but the web is now essential for most FOSS projects. People locate and access FOSS projects on the web, and FOSS communities collaborate on the web. A FOSS project has a set of files (including source code, documentation, etc), usually organized into folders. Most FOSS projects keep the complete history of every file, to know what changes were made, by who, and when. The set of files and their history is a repository, or a repo for short.
Most FOSS projects also use web-based collaborative tools to develop and share code and documentation, track who does what, and discuss questions, problems, and suggestions. A software platform with these tools is a forge. Some forges support one FOSS project (usually a large project), and other forges host many independent FOSS projects. Well known forges include GitHub, SourceForge, and Bitbucket. Note that the software used by such sites is also called a forge; for example, GitLab, RedMine, and Trac are FOSS forges that anyone can install and modify, unlike GitHub.
This activity also uses OpenHub (formerly Ohloh), which is not a forge, but mines data from forges to analyze project activity.
Directions
- POSSE Attendees: Post your answers on your foss2serve wiki page.
- Students: Ask your instructor how to report your answers.
Part 1 - GitHub
In Part 1 you will search GitHub for projects. Do the following:
- Open a new browser tab and go to: https://github.com
- Find the search box near the top of the page, type "education", and press enter or click on the search icon.
- How many repositories are found for "education"?
- How many of these repos use the JavaScript language? (Hint: Find a summary table.)
- In the first page of results, which repo was updated most recently? Which was updated least recently?
- Many repos are small and inactive. To see the most active repos, find the Sort menu and sort by most stars.
- Which education repo has the most stars? How many?
- Click on this repo to see its overview page. Scroll down past the list of files to see a project description.
- In GitHub, each reported problem or suggestion is an issue, the code and documentation to fix an issue is a pull request, and a pull request that is accepted and added to a repo is a commit. Each issue and pull request is either open (in progress) or closed (done). (You will learn more about all of this later.)
- At the top of the overview page, click on the Issues tab. You should see a list. How many issues are open? closed?
- Click on the Pull requests tab. You should see a list. How many pull requests are open? closed?
- Click on the Insights tab. What do you see?
- Within Insights, go to the left menu and click on Commits. What do you see?
- Go back to the main GitHub page.
- Search for "humanitarian" projects. How many repos are found?
- Find HTBox/crisischeckin. How many stars does it have? What language(s) does it use? When was the last update?
- Search for "disaster management" projects, or a term that interests you. How many repos are found?
Keep the GitHub browser tab open as you move on to Part 2.
Part 2 - OpenHub
In Part 2, you will search OpenHub for projects. Do the following:
- Open a new browser tab and go to: https://www.openhub.net
- In the search box, type "education".
- The listing shows the number of pages, not the number of projects. By default, each page shows 10 projects. How many projects were found?
- Click on KDE Education (near the top of the list), and then click on Code Locations (on the right side). Are any of the repo locations on GitHub?
- Go back to KDE Education, and click on Similar Projects (below Code Locations). How many similar projects are listed?
- Scroll down. What info does OpenHub provide about each similar project?
- Search for both "humanitarian" and "disaster management".
- How many projects did each search return?
- Some projects show 'Activity Not Available'. Click on the pyramid icon and read the info provided. Why is 'activity not available'?
- Click on Organizations (near the top of the page).
- What info is shown?
- Search for "OpenMRS".
- When was the last commit for OpenMRS Core?
- Go back to GitHub and search for OpenMRS Core.
- When was the last commit?
- Why do you think these sites have different info?
- What are some benefits & drawbacks of searching for a project in both GitHub & OpenHub?
Deliverables
- POSSE Attendees: Please post the answers to these questions on your foss2serve user wiki page.
- Students: Wiki posting describing your explorations of GitHub and OpenHub.
Notes for Instructors
The remaining sections of this document are intended for the instructor. They are not part of the learning activity that would be given to students.
Assessment
- How will the activity be graded?
- How will learning will be measured?
- Include sample assessment questions/rubrics.
Criteria | Level 1 (fail) | Level 2 (pass) | Level 3 (good) | Level 4 (exceptional) |
---|---|---|---|---|
The purpose of the project | ||||
Why the project is open source |
Comments
- What should the instructor know before using this activity?
- What are some likely difficulties that an instructor may encounter using this activity?
Variants and Adaptations:
POGIL-style combined FOSS Field Trip and Project Evaluation used by Chris Murphy in his FOSS Course, UPenn, Murphy.
ACM BoK Area & Unit(s) |
|
---|---|
ACM BoK Topic(s) |
|
Difficulty | |
Estimated Time to Complete |
30-60 minutes |
Environment / Materials |
Access to Internet/Web and web browser. |
Author(s) | |
Source | |
License |
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License |
Suggestions for Open Source Community
Suggestions for an open source community member who is working in conjunction with the instructor.