Difference between pages "Intro to GitHub (Activity)" and "Intro to FOSS Project Anatomy (Activity)"

From TeachingOpenSource
(Difference between pages)
(assessment created)
 
 
Line 1: Line 1:
== Preparation ==
 
=== Preparation: ===


{| border="1"
{| border="1"
|-  
|-  
|'''Title''' ||  
|'''Description''' || Introduce participant to structure, processes and development tools used in FOSS projects.
Introduction to Github
|-
|'''Overview''' ||
Learner will get started with Git and Github by working on a remote repository shared by other workshop learners. How to fork, edit, and push with Git.
|-
|-
|'''Prerequisite Knowledge''' || A rudimentary understanding of command-line usage would be helpful, but not required.
|'''Source''' ||
|-
|-
|'''Estimated Time to Completion''' || 30-60 minutes
|'''Prerequisite Knowledge''' || None
|-
|-
|'''Learning Objectives''' ||Upon completion, you will be able to
|'''Estimated Time to Completion''' || 60 minutes
* Install Git.
* Configure Git.
* Fork a GitHub repository.
* Make changes to a repository.
* Commit changes to a GitHub repository.
* Issue pull requests to an upstream repository.
|-
|-
|'''Materials/Environment''' ||  
|'''Learning Objectives''' ||
* Access to Internet/Web and web browser
|-
|-
|'''Additional Information''' ||  
|'''Materials/Environment''' || Access to Internet/Web and web browser.
* Git website: http://git-scm.com
* Repository location: https://github.com/foss2serve/git-activity/
|-
|-
|'''Rights''' || Licensed CC BY-SA (?)
|'''Additional Information''' || [http://producingoss.com/en/index.html | Producing Open Source Software] by Karl Fogel
|-
|-
|'''Turn In''' || Your information added to a shared repository.
|'''Rights''' || ?
|}
|}


=== Background: ===
FOSS projects have a distinct culture and set of tools that support project development. The form of the culture and the specific tools vary somewhat across projects, but there is significant commonality such that many FOSS developers migrate easily among FOSS projects.


=== Background ===
Now that you have an understanding of the communication tools used in FOSS environments, this activity will provide a high-level understanding of some of the culture and development tools that you will use when participating in a FOSS project. The goal of this activity is not to provide depth in any one tool or aspect of culture, but to provide a high-level view of what a typical FOSS project looks like.


For the impatient, you may skip down to the [Directions] section and get started. If you would prefer an overview of Git first, there are some great introductory videos on Git's site: http://git-scm.com/ . Namely:
=== Directions: ===
BLAH BLAH


* Git Basics: What is Version Control?
=== Working Material ===
** If you are new to version control, or just want to gain a deeper understanding of it, this is 6 minutes of your life well spent.
** [http://git-scm.com/video/what-is-version-control Watch the video]


* Git Basics: What is Git?
*Stoney
** This 8 minute video gives you a quick overview of git, why it exists, who it serves, what it can do, and explains some of its advantages.
*Peter
**[http://git-scm.com/video/what-is-git Watch the video]
*Darci


* Git Basics: Get Going with Git
*TO THE ACTIVITY DEVELOPER
** This 4.5 minute video gives you an overview of installing and configuring git, as well as how to set up your first git repository.  You could try to follow along and attempt each step, but I recommend just observing for now and appreciating the simplicity of setup.  Later you'll complete a tutorial that will have you perform these same steps.
*A directed walkthrough into a specific project. Participants answer questions engaging with terminology.
** [http://git-scm.com/video/get-going Watch the video]


* Git Basics: Quick Wins with Git
*TO-DO LIST
** Still not convinced?  Need more reasons to use Git?  Whether you are gearing up for a water cooler debate about version control systems, or you just want to get a better understanding of the Git philosophy and the features that implement those philosophies, this 5 minute delivers.
*Pick project: Peter
** [http://git-scm.com/video/quick-wins Watch the video]
*Gather links
*Draft walkthrough


*Candidate Projects
**OpenMRS
**Ushahidi
**Sahana
**Mifos
**Sugar (one-laptop-per-child)
**HFOSS Project list:  http://xcitegroup.org/softhum/doku.php?id=g:hfoss_and_oss_projects
**https://developer.mozilla.org/en-US/docs/Introduction
**https://developer.mozilla.org/en-US/docs/Developer_Guide


=== Directions ===
*Topics
**What is a forge?
**Not all open source projects exist in a forge.
**The status of a project may be anywhere in the planning to mature stages.
**Regarding community - What major roles/teams exist within the project?
**releases: find version number system for project.
**code repository policies:
***e.g. http://nvie.com/posts/a-successful-git-branching-model/
**packaging
**upstream (no artifact)
**downstream (no artifact)
**trackers: find the tracker
**tickets: look at some tickets
**roadmap, etc.: find the roadmap. How are releases managed? How


# Complete http://try.github.com.
*Reference materials
# Log into GitHub.
**First couple of chapters in "Productively Lost" ? http://teachingopensource.org/index.php/Textbook_Release_0.8
# Fork [https://github.com/foss2serve/git-activity this repository].
**Mel has a good overview of some parts in "Roadmap Merge" activity here:http://mchua.fedorapeople.org/posse/POSSE-booklet.pdf
# In your forked copy, add your information to rollcall.md.
**http://en.wikibooks.org/wiki/Open_Source
# Issue a pull request back to [https://github.com/foss2serve/git-activity this repository].




=== Deliverables: ===
The teacher, who is in charge of the [https://github.com/foss2serve/git-activity upstream repository], will get the pull request. A proper pull request, with a relevant commit comment and edited file are expected.


=== Peter's Silly Attempt ===


=== Assessment: ===
*Pick a project: Lighttpd. http://www.lighttpd.net/
{| border="1"
**Why? Small enough to get a handle on rather quickly (especially since they have a semi-documented plugin system **http://redmine.lighttpd.net/projects/lighttpd/wiki/HowToWriteALighttpdPlugin so you can build a small piece before building a big piece), important enough since used on popular websites.
|-
*Tracker/Tickets: http://redmine.lighttpd.net/projects/lighttpd/issues
|'''Criteria''' ||'''Level 1 (fail)'''||'''Level 2 (pass)'''||'''Level 3 (good)'''||'''Level 4 (exceptional)'''
**tracks both bugs and features
|-
**ticket status from new to feedback to actual patches
|Pull Request || No request received ||  ||  || Pull request received
**locates most issues in modules of architecture
|-
*Roadmap: http://redmine.lighttpd.net/projects/lighttpd/roadmap
|Commit comment || No commit comment || Commit comment is there but not relevant || Commit comment is relevant but lengthy  || Commit comment is relevant and concise
**outlines which issues are going to be fixed in which release of the project
|-
**stratifies issues into what's going into the next release and what's going to be addressed (a lot) later
|Edited file || No or wrong file edited ||  ||  || rollcall.md file edited and personal information added
**release numbering is 1.4.concrete for next release, 1.4.x for issues that's not too far off and may lead to smaller architectural changes (but might never get fixed if things go badly), 1.5.x for their next architectural vision which will overhaul the entire project
|-
*Upstream/Downstream: ?
|}
**uses svn/bzr?
**general definition: upstream is where THE source for the project lives, what will get released; downstream is where YOU work and try to fix things; patches go from downstream to upstream, not sure how in lighty yet
*Releases: http://blog.lighttpd.net/ and http://redmine.lighttpd.net/projects/lighttpd/wiki/Releases
**announcements are here but where the plan is I don't know
**two tracks: release candidates vs. stable releases; candidates are testing fixed issues among a wider group of people, not recommended for stable deployments
*Code? http://redmine.lighttpd.net/projects/lighttpd/repository
*IRC: irc://irc.freenode.net/lighttpd
*Community: http://redmine.lighttpd.net/projects/lighttpd/boards
**prefers IRC and forums
**has mailing lists as well http://redmine.lighttpd.net/projects/lighttpd/wiki/MailingLists
 
== The Sugar Labs Project (http://sugarlabs.org/)==


=== Comments: ===
Read the information found [http://sugarlabs.org/index.php?template=page&page=contributors here] to get an overview of the goals of the project and the expectations of contributors.
What should the instructor know before using this activity?


What are some likely difficulties that an instructor may encounter using this activity?
== Community ==
In the first paragraph, they indicate the the community is organized into teams. Follow [http://wiki.sugarlabs.org/go/Category:Team this link] to the teams page. You will note that there are a wide variety of teams, each with a distinct responsibility. Follow the 'Contacts' link (found in the green option bar) for each of the following teams and summarize the information you find there on your faculty wiki page. For example, are there any commonalities? Is there something distinct for each type of team?
* Activity Team
* Development Team
* Documentation Team


=== Tracker/Tickets ===
The Sugar Labs bug tracker can be found [http://bugs.sugarlabs.org/ here]. On your wiki page indicate the types/categories of tickets listed on this page.


*Major Players: http://git.sugarlabs.org/teams  http://www.sugarlabs.org/index.php?template=page&page=contributors_teams
*Forge/Repository: http://git.sugarlabs.org/sugar-base
*Release cycle / version numbers
*Upstream/Downstream: diagram with explenation
*Communication:
**IRC: http://meeting.sugarlabs.org/  &  http://chat.sugarlabs.org/
**Mailing lists: http://lists.sugarlabs.org/
**Blog: http://planet.sugarlabs.org/
**Wiki: http://wiki.sugarlabs.org/go/Welcome_to_the_Sugar_Labs_wiki
*Roadmap: ???
*Repository strategy: https://wiki.ushahidi.com/display/WIKI/Our+Git+Repository


=== Darci's Excellent Attempt ===
* Project: Sahana Eden - http://eden.sahanafoundation.org/wiki
* Tracker/Tickets: http://eden.sahanafoundation.org/report
* Major Players: http://eden.sahanafoundation.org/wiki/WikiStart#WanttoContributetoSahanaEden
* Forge/Repository:  https://github.com/flavour/eden/fork_select
* Release cycle / version numbers:
*Communication: #sahana-eden Main Sahana Eden Channel;


--------------------
This work is licensed under a
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]


[[File:CC_license.png]]


[[Category: Foss2serve]]
[[Category: Learning_Activity]]
[[Category: Learning_Activity]]
[[Category:Communication_and_Tools]]

Revision as of 22:38, 20 April 2013

Preparation:

Description Introduce participant to structure, processes and development tools used in FOSS projects.
Source
Prerequisite Knowledge None
Estimated Time to Completion 60 minutes
Learning Objectives
Materials/Environment Access to Internet/Web and web browser.
Additional Information Producing Open Source Software] by Karl Fogel
Rights ?

Background:

FOSS projects have a distinct culture and set of tools that support project development. The form of the culture and the specific tools vary somewhat across projects, but there is significant commonality such that many FOSS developers migrate easily among FOSS projects.

Now that you have an understanding of the communication tools used in FOSS environments, this activity will provide a high-level understanding of some of the culture and development tools that you will use when participating in a FOSS project. The goal of this activity is not to provide depth in any one tool or aspect of culture, but to provide a high-level view of what a typical FOSS project looks like.

Directions:

BLAH BLAH

Working Material

  • Stoney
  • Peter
  • Darci
  • TO THE ACTIVITY DEVELOPER
  • A directed walkthrough into a specific project. Participants answer questions engaging with terminology.
  • TO-DO LIST
  • Pick project: Peter
  • Gather links
  • Draft walkthrough
  • Topics
    • What is a forge?
    • Not all open source projects exist in a forge.
    • The status of a project may be anywhere in the planning to mature stages.
    • Regarding community - What major roles/teams exist within the project?
    • releases: find version number system for project.
    • code repository policies:
    • packaging
    • upstream (no artifact)
    • downstream (no artifact)
    • trackers: find the tracker
    • tickets: look at some tickets
    • roadmap, etc.: find the roadmap. How are releases managed? How


Peter's Silly Attempt

The Sugar Labs Project (http://sugarlabs.org/)

Read the information found here to get an overview of the goals of the project and the expectations of contributors.

Community

In the first paragraph, they indicate the the community is organized into teams. Follow this link to the teams page. You will note that there are a wide variety of teams, each with a distinct responsibility. Follow the 'Contacts' link (found in the green option bar) for each of the following teams and summarize the information you find there on your faculty wiki page. For example, are there any commonalities? Is there something distinct for each type of team?

  • Activity Team
  • Development Team
  • Documentation Team

Tracker/Tickets

The Sugar Labs bug tracker can be found here. On your wiki page indicate the types/categories of tickets listed on this page.

Darci's Excellent Attempt