preparing for student participation in hfoss projects – foss tools and techniques darci burdge –...

51
Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – [email protected] Lori Postner – [email protected] Heidi J. C. Ellis - [email protected] Gregory W. Hislop – [email protected] Michelle Purcell - Drexel Stoney Jackson – WNE Sean Goggins – University of Missouri

Upload: cordelia-oconnor

Post on 29-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Preparing for Student Participation in HFOSS Projects –

FOSS Tools and TechniquesDarci Burdge – [email protected] Postner – [email protected]

Heidi J. C. Ellis - [email protected] W. Hislop – [email protected]

Michelle Purcell - Drexel

Stoney Jackson – WNE

Sean Goggins – University of Missouri

Page 2: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

1. Set Up

Foss2serve.orgTeachingOpenSource.org

http://titanpad.com/ccsce2013

2

Page 3: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

2. Overview of FOSS and HFOSS

3

Page 4: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

4

Free Software Definition

• Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software.

• Four freedoms– To run the program, for any purpose– To study the program works, and change it– To redistribute copies– To distribute copies of your modified versions

Page 5: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

5

Legal Mechanisms

• How do you implement FOSS within the legal system?– FOSS is not Public Domain

• Copyleft – Use copyright to control the material– Share the rights via license

• “making a program (or other work) free, and requiring all modified and extended versions of the program to be free as well.”

• Implementation: GNU General Public License ©

Page 6: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

FOSS Today

What has resulted from all this noise about FOSS?

Page 7: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

7

FOSS Today

Page 8: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

8

FOSS Today

Many credible products; some market leaders

Page 9: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

9

Control

• Misconception of FOSS as “Free contribution by anyone”– NOT!– This would be chaos

• Need for control creates a hierarchy– Version control enables and enforces– Committers– Contributors– Others

Page 10: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

10

Control and Community

• “Contributor Mountain”– Client/customer

• Use in isolation

– Seeker • Connects to community for answers on using

– Collaborator• Contributes bug reports, feature requests, …

– Contributor • Moves project forward• Relied on by the community

Page 11: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Community

• Clients and developers as part of a spectrum– Not “us” vs. “them”

• Assumption that people can move from passive “user” to active participant– Even without technical skills

• See: “Why we won’t call you a ‘user’.”– http://www.kitware.com/blog/home/post/263

Page 12: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

12

Community

• Openness to new participants– Especially if you approach the project reasonably

• Advancement via accomplishment– Fairly direct meritocracy

• Check and balance– Control of commit authority

• Real point of control for moving the product

– Ability to fork• Limits autocratic power

Page 13: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Communication

• More is generally better• Multiple channels

– Highly distributed participation• Less elaborate; more immediate• Rollback mechanisms available (e.g., in a wiki)

– Synchronous and asynchronous– Low and high bandwidth

• Explicit provision for lurkers– Replaces hallway conversations and discussion in the break

room– Allows for serendipity and learning by osmosis

Page 14: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

What is HFOSS?

• FOSS created to provide social benefit– Disaster recovery– Medical records– Economic development– Education – And more!

• Extra potential to catch student interest!– And provide education on professional impact and

responsibility14

Page 15: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

3. IRC Activity

15

Page 16: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

What is IRC?

• Internet Relay Chat is an essential tool used by open source software developers.

• It allows the community to communicate 24/7 regardless of their geographic location.

• It is like Instant Messaging with a group.

16

Page 17: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Interacting on IRC

• ‘Talking’ is not a requirement. • You learn a great deal by ‘listening’.• It is not necessary to identify yourself or

to say hi, you can simply 'lurk'. • Feel free to ask questions – you don’t

need to ask first if you can ask a question.

17

Page 18: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Starting an IRC client

• ChatZilla – Firefox add-on– is a multi-platform add-on that will work on

Windows, Linux and Mac OS X

• Other options include:– Windows: HydraIRC (http://www.hydrairc.com/)– Linux: Konversation (http://konversation.kde.org/)– Mac OS X: Colloquy (http://colloquy.info/)

18

Page 19: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Installing ChatZilla

• To install the ChatZilla add-on– Click Tools from the main menu – Choose Add-ons– The Get Add-ons tab should be selected– Type ChatZilla in the search box found in the

upper, right corner. – Click the install button to the right of the ChatZilla

add-on. – Restart Firefox.

19

Page 20: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Connecting to foss2serve

• Connect to the server via the command: /server irc.freenode.net

• Join the foss2serve channel via the command: /join #foss2serve

20

Page 21: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Useful Commands

• /me – indicates an action message – will appear in italics in ChatZilla

• /nick – changes your nickname• /quit – disconnects from the server• /away – sets message indicating you are

not active on IRC at the moment• http://www.ircbeginner.com/ircinfo/ircc-commands.html andhttp://www.greenday.net/chat/commands.html

21

Page 22: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Meetbot

• Assists in running meetings and taking notes.

• Admin can:– #startmeeting– #endmeeting– #topic– #agreed

• https://wiki.debian.org/MeetBot22

Page 23: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Meetbot

• Everyone can use:– #info– #link– #action

• https://wiki.debian.org/MeetBot

23

Page 24: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

IRC Activity

• Using the list of nicks in the foss2serve IRC, introduce yourself with your name, institution and if you have using HFOSS in the classroom.

• Use the #info tag when you begin to make the transcript easier to track.

24

Page 25: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

4. Issue Tracker Activity

25

Page 26: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

What is Bug Tracking?

"with enough eyes, all bugs are shallow." Eric Raymond (Cathedral and Bazaar)

One of the core tenets of FOSS Reporting bugs is one easy way to get

started Fixing bugs is another way to get started

in FOSS

26

Page 27: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

What is a Bug Tracker?

• Software to keep track of bugs, issues, and enhancements

• Also form of communication in FOSS communities

• Keeps a database of bugs including time/date, reporter, nature of bug, etc.

• Keeps track of bug lifecycle from creation through resolution

27

Page 28: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

How Bug Tracking is Used

• Logs bugs and feature requests• Provides overview of development

requests– Prioritized list of items – sort of roadmap

• Records lifecycle of requests– Including requirement, design decisions, etc.

28

Page 29: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Bug Tracker Activity

• http://foss2serve.org/index.php/Bug_Tracker_Activity-MouseTrap

29

Page 30: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

5. Version Control Activity

30

Page 31: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 1

31

• Bob and Alice are working on a paper together

• They both want to edit simultaneously• What should they do?

Page 32: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 2

32

• Options:1. Take turns

• Means one has to wait for the other

2. Work on own version • Means they have to merge the two versions• Complicated• Lots of opportunity for error

Page 33: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 3

33

• Version Control AKA Source Code Control AKA Revision Control

• Put copy of file on server• Bob and Alice get their own working copy

Page 34: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 4

34

• Bob can commit changes to repository• Alice can then update local copy• But what if Bob and Alice both change

same part of document??

Page 35: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 5

35

• Bob’s changes allowed to stand as he got there first

• Alice’s changes marked • Alice responsible for resolving conflict

Page 36: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 6

• Alice can:– Accept Bob’s changes– Replace with own work– Combine Bob’s and own work

• Once conflict is fixed, Alice can commit

36

Page 37: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Version Control - 7

• Advantages– Difficult to accidentally overwrite someone else’s

changes– No arguments of which copy is the “right” copy.

• The master copy is!

– Everything committed via version control is saved• New versions are saved on top of old versions• Can go back to any version• Lets you see who worked on any

particular version

37

Page 38: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

38

Version Control Features - 1• Backup and Restore– Files saved as they are edited– Can jump to any point in time

• Synchronization– Lets developers be current with most recent

version• Short-term undo– Can throw away local changes and go back to last

“good” version• Long-term undo– Can jump back to any previous version

Page 39: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

39

Version Control Features - 2• Track Changes– Supports communication about motivation for

change, author, etc.– Stored in the repository, NOT the source code file

• Track Ownership– Helpful for giving credit

• Sandboxing– Can make changes in a temporary copy and

commit only when ready• Branching and merging– Major sandbox changes

Page 40: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

MouseTrap Git Repo

• https://git.gnome.org/browse/mousetrap/

• How many branches are there?• What is the most recent branch?• What is the history of gnome3-wip?

40

Page 41: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Git Activity

• https://github.com/foss2serve/git-activity– Form groups of 2-3– Let us know before updating

• Walk through commit of Bug 708796 - Bonobo and ORBit deprecation/removal

41

Page 42: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

6. Wrap Up

Want to join us??POSSE

42

Page 43: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Questions?• Links:

– Foss2serve – http://foss2serve.org– Teaching Open Source –

http://teachingopensource.org– http://HFOSS.org– Producing Open Source Software -

http://producingoss.com/– The Cathedral and The Bazaar

http://catb.org/~esr/writings/homesteading/– http://OpenSouce.com– http://openhatch.org

Page 44: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Licensed Under Creative Commons

• Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)• Users of this material are able remix, tweak, and

build upon this work even for commercial purposes, as long as they credit the contributors and license their new creations under the identical terms. All new works based on this material will carry the same license, so any derivatives will also allow commercial use.

• http://creativecommons.org/licenses/by-sa/3.0/

44

Page 45: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

App A. Getting Started

45

Page 46: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting Started Step 1: Getting Organized - 1

• Project evaluation activities should help you identify possible HFOSS projects.

• Cursory examination for:

46

Project Wiki/Page Committers

Mailing list(s) Bug Tracking

Roadmap Source Code Control

Documentation Releases

IRC

Page 47: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting Started Step 1: Getting Organized - 2

• Think about kinds of deliverables for students.

• Find Roadmap/bug tracker and identify possible contributions. – See if you can trace the process of one or more

bug fixes or enhancements

47

Page 48: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting StartedStep 2: Lurking

• Join mailing list(s) and observe for several weeks.– Read logs for several months or year back– Who are the major community members and

what are their roles?

• Join IRC and lurk.• Identify meeting times and lurk in

meetings.– What are the areas of interest to the community?

48

Page 49: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting StartedStep 3: Introducing Yourself - 1

• Introduce yourself and your motivation for joining the group.

• Identify what you (and students) can contribute to the project.– Not details, but generalities (e.g., work on

documentation)

• Describe the student body that you’ll be introducing to the community.

49

Page 50: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting StartedStep 3: Introducing Yourself - 2

• Identify what you are looking for from the community.– Project ideas?– Contact for particular aspect (e.g., documentation)

• Remember, goal is to facilitate student entrance into the community, not “find a project”.

50

Page 51: Preparing for Student Participation in HFOSS Projects – FOSS Tools and Techniques Darci Burdge – darci.burdge@ncc.edu Lori Postner – lori.postner@ncc.edu

Getting StartedStep 4: Finding Things To Do – 1

• Identify a small task that you can accomplish. – Identify the committer and commit process for the

task

• Let the community know what you’re working on.

• Accomplish the task and get it committed!

51