fundamentals of open source development

Download Fundamentals of Open Source Development

If you can't read please download the document

Upload: osu-open-source-lab

Post on 16-May-2015

898 views

Category:

Technology


0 download

DESCRIPTION

Basics of contributing to an open source project - from the first Linux Learners Day at LinuxCon 2011 http://events.linuxfoundation.org/events/linuxcon/student-program

TRANSCRIPT

  • 1. Fundamentals of Open Source Development Leslie Hawthorn, Outreach Manager Jeff Sheltren, Operations Manager August 16, 2011 OSU Picture Greg Keene

2. Introduction 3. What is Open Source? Software that can be freely downloaded, used, modified and redistributed. Generally: Licensed under an OSI-approved license 4. Who Uses Open Source 5. Who Uses Open Source

  • TiVo

6. HD televisions

  • MeeGo

7. Android 8. Mozilla 9. Who Uses Open Source

  • In-flight entertainment
  • Delta

10. Continental 11. United 12. Virgin America 13. Internet Powered by Open Source http://news.netcraft.com/archives/2011/01/12/january-2011-web-server-survey-4.html

  • Apache web server: 58,623,115 servers 57.57% of active servers surveyed

14. Of the top million busiest sites: Over 74% run on open source 15. Step One: Choosing a Project

  • Scratch your own itch

16. Codes of Conduct

  • Ubuntu's is widely referenced and remixed
  • Be considerate, be respectful, be collaborative

Unwritten Codes of Conduct 17. Does this project shareyourvalues? 18. Understanding Project Values

  • We welcome people of any gender identity or expression, race, ethnicity, size, nationality, sexual orientation, ability level, neurotype, religion, culture, subculture, and political opinion. We welcome activists, artists, bloggers, crafters, dilettantes, musicians, photographers, readers, writers, ordinary people, extraordinary people, and everyone in between. We welcome people who want to change the world, people who want to keep in touch with friends, people who want to make great art, and people who just need a break after work. We welcome fans, geeks, nerds, and pixel-stained technopeasant wretches. We welcome Internet beginners who aren't sure what any of those terms refer to.

19. Spend Some Time on the Project Website

  • Start with the About Page

20. Find (or Ask For) Newbie Documentation 21. Developer Documentation

  • Review Style/Coding Guidelines

22. Understand the project's workflow for submitting problem reports and fixes

  • Mailing list vs. bug tracker

http://www.flickr.com/photos/dance_photographer/4962451349/ 23. What's a Patch?

  • A code snippet to update a part of a larger piece of software

24. Typically created using the 'diff' tool, or equivalent tool from within a revision control system http://www.flickr.com/photos/dance_photographer/4962451349/ 25. Mailing Lists Are Critical

  • Browse the archives
  • You can't read everything search!

Determine the key players 26. Asking Questions

  • Write a useful subject line

27. Show you've done your research 28. Wait for an answer 29. What is Top Posting?

  • I really want a pink and yellow pony!! >> What kind of pony would you like?

http://www.flickr.com/photos/enigmatic/4037030223/ 30. Basic Netiquette

  • Choose a Reasonable Handle

31. Don't Use Text Speak 32. Be Formal in Your First Few Posts http://www.flickr.com/photos/4braham/4178258504/ http://www.flickr.com/photos/4braham/4178258504/ 33. Revision Control(a.k.a. source control, version control)

  • Most code is stored in a revision control system

34. Linux uses git, other popular options are Subversion, Bazaar & Mercurial 35. Understand revisions, branches http://www.flickr.com/photos/26546578@N06/4193814990/ 36. Learn to Love IRC IRC = Internet Relay Chat

  • Read Channel Topic

37. Observe Traffic 38. Don't Ask to Ask 39. Wait for an Answer 40. Lurking ++ http://www.flickr.com/photos/minghan/479815487/ 41. Ways to Get Involved

  • File Bugs

42. Write Effective Bug Reports

  • What you were doing

43. What you thought should happen 44. What happened instead 45. Software & hardware specs http://www.flickr.com/photos/jurvetson/482054617/ 46. Ways to Get Involved

  • Check the Issue Tracker for Easy or Beginner Bugs

47. Submit a Patch 48. Ways to Get Involved

  • Triage Bugs

49. Answer Questions in IRC 50. Point People in the Right Direction 51. Ways to Get Involved

  • Offer to Document Information You Get

52. Press Releases and Newsletters 53. Testimonials & Developer / User Interviews 54. Ways to Get Involved

  • Join or Start a Local User Group

55. Offer to Staff a Booth or Table 56. Volunteer to Help at the Next FOSS Conference http://www.flickr.com/photos/richard_jones/3091970504/ 57. Ways to Get Involved

  • Create Training Materials: How To's, Tutorials

58. Bonus Points for Video or In Person Training 59. Give a Talk about Your Project http://www.flickr.com/photos/chicago2016/3277192438/ Anyone who can shareknowledge well is a teacher. 60. Ways to Get Involved

  • Improve FOSS

61. Get Valuable Employment Experience 62. Learn from an Experienced Mentor 63. Become Part of a Vibrant Global Community 64. Get Paid 65. Recap

  • Getting Started Means Being a Good Citizen

66. Jump in Where You Can Do Well 67. Know You Will Make Mistakes 68. Have Fun! http://www.flickr.com/photos/photoprofi/4149216115/ 69. Thank You! Leslie Hawthorn, Outreach Manager Jeff Sheltren, Operations Manager http://osuosl.org [email_address] [email_address] @sheltren and @lhawthorn 70. Resources

  • Producing Open Source Software: http://bit.ly/producingoss
  • This guide for starting a FOSS project provides a good overview for newbies, too.

Guide to GSoC Mentoring: http://bit.ly/gsocmentoring

  • Documentation for Google Summer of Code Mentors that will also be of general use to folks looking to add new contributors.

Student Guide to GsoC: http://bit.ly/gsocstudents

  • Docs for GsoC students that will also be of general use for learning how to contribute to FOSS projects

71. Resources (cont'd.)

  • Mentoring in Open Source Communities: What Works, What Doesn'thttp://bit.ly/mentoringarticle
  • Excellent article interviewing several FOSS developers on their mentoring methodologies.

How to Ask Questions the Smart Way http://bit.ly/smartqs

  • The often cited guide to asking questions effectively in the FOSS world. Not always gentle in tone your mileage may vary.

72. Even More Resources

  • The Free Software Definition http://bit.ly/freesoftwaredef
  • Thedocument for understanding the concept of software being free as in uncensored speech rather than no cost

The Cathedral and the Bazaar 73. http://bit.ly/cathedralbazaar

  • Seminal piece on the early history and fundamental concepts of the Free Software movement

74. TheLastResources Page

  • The Open Source Definitionhttp://bit.ly/osdef
  • Document used by the Open Source Initiative to determine whether or not a particular license can be considered Open Source. Useful for understanding the differences between Free Software and Open Source.

Please suggest additional resources!