Fundamentals of Open Source Development


Published on

Basics of contributing to an open source project - from the first Linux Learners Day at LinuxCon 2011

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Operations Manager, OSU Open Source Lab Previously System Administrator at UC Santa Barbara Detour through St. Kitts Involved in open source for around 12 years LH wants to live on a tropical island Previously Google Open Source Programs Office – Summer of Code and Code In Joined OSL in October 2010 Involved in open source for around 5 years
  • LH takes this slide Who uses open source regularly? Those that didn't raise hands: Who uses Facebook? Google? Shops on Amazon? A little bit of history on the OSI – why they exist, approval of licenses
  • LH takes this slide White house – notable for Drupal website; OSU run the same software for their websites Amazon, Yahoo, Google, Facebook all make extensive use of open source to power their infrastructure. Most notably Linux Some of these groups release FOSS
  • Jeff takes this slide.
  • Jeff takes this slide. LH can interject random comment about playing Doom on Virgin America. VA runs modified RedHat kernel.
  • Jeff takes this slide. Netcraft – security and research company has been researching internet trends since 1995 Definitions: - Active sites are those which don't display a generic hosting company landing page – e.g. purchased but unused domain names - Busiest sites are gauged by visits of people who have installed the netcraft toolbar
  • LH takes this slide Explain what scratch your own itch means and where it came from Explain codes of conduct – somewhat like software licenses
  • LH takes this slide. Talk about ways to determine project culture quickly. Choose one that is right for you.
  • LH takes this slide. If it's hard to find information, they might not be ready for newbies.
  • Jeff takes this slide. You can make funny joke about how this photo comes from fashion show recently held in Vancouver.
  • Jeff takes this slide.
  • LH takes this slide. - dev - discuss - announce Read the mailing list info page.
  • LH takes this slide. Explain how it can be not a big deal, but worth noting.
  • Jeff takes this slide.
  • Jeff take this slide.
  • LH takes this slide.
  • Jeff takes this slide.
  • LH takes this slide.
  • LH takes this slide. Define triaging bugs.
  • Jeff takes this slide.
  • LH takes this slide.
  • Jeff takes this slide.
  • LH takes this slide.
  • Jeff takes this slide.
  • Jeff takes this slide, LH takes all the resource slides.
  • Fundamentals of Open Source Development

    1. 1. Fundamentals of Open Source Development Leslie Hawthorn, Outreach Manager Jeff Sheltren, Operations Manager August 16, 2011 OSU Picture © Greg Keene
    2. 2. Introduction
    3. 3. What is Open Source? Software that can be freely downloaded, used, modified and redistributed. Generally: Licensed under an OSI-approved license
    4. 4. Who Uses Open Source
    5. 5. Who Uses Open Source <ul><li>TiVo
    6. 6. HD televisions </li></ul><ul><li>MeeGo
    7. 7. Android
    8. 8. Mozilla </li></ul>
    9. 9. Who Uses Open Source <ul><li>In-flight entertainment </li><ul><li>Delta
    10. 10. Continental
    11. 11. United
    12. 12. Virgin America </li></ul></ul>
    13. 13. Internet – Powered by Open Source <ul><li>Apache web server: 58,623,115 servers 57.57% of active servers surveyed
    14. 14. Of the top million busiest sites: Over 74% run on open source </li></ul>
    15. 15. Step One: Choosing a Project <ul><li>“Scratch your own itch”
    16. 16. Codes of Conduct </li><ul><li>Ubuntu's is widely referenced and remixed </li><ul><li>Be considerate, be respectful, be collaborative </li></ul></ul><li>Unwritten “Codes of Conduct”
    17. 17. Does this project share your values? </li></ul>
    18. 18. Understanding Project Values <ul>“ 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.” </ul>
    19. 19. Spend Some Time on the Project Website <ul><li>Start with the “About” Page
    20. 20. Find (or Ask For) Newbie Documentation </li></ul>
    21. 21. Developer Documentation <ul><li>Review Style/Coding Guidelines
    22. 22. Understand the project's workflow for submitting problem reports and fixes </li><ul><li>Mailing list vs. bug tracker </li></ul></ul>
    23. 23. What's a Patch? <ul><li>A code snippet to update a part of a larger piece of software
    24. 24. Typically created using the 'diff' tool, or equivalent tool from within a revision control system </li></ul>
    25. 25. Mailing Lists Are Critical <ul><li>Browse the archives </li><ul><li>You can't read everything – search! </li></ul><li>Determine the key players
    26. 26. Asking Questions </li><ul><li>Write a useful subject line
    27. 27. Show you've done your research
    28. 28. Wait for an answer </li></ul></ul>
    29. 29. What is Top Posting? <ul>I really want a pink and yellow pony!! >> What kind of pony would you like? </ul>
    30. 30. Basic Netiquette <ul><li>Choose a Reasonable “Handle”
    31. 31. Don't Use Text Speak
    32. 32. Be Formal in Your First Few Posts </li></ul>
    33. 33. Revision Control (a.k.a. source control, version control) <ul><li>Most code is stored in a revision control system
    34. 34. Linux uses git, other popular options are Subversion, Bazaar & Mercurial
    35. 35. Understand revisions, branches </li></ul>
    36. 36. Learn to Love IRC IRC = Internet Relay Chat <ul><li>Read Channel Topic
    37. 37. Observe Traffic
    38. 38. Don't Ask to Ask
    39. 39. Wait for an Answer
    40. 40. Lurking ++ </li></ul>
    41. 41. Ways to Get Involved <ul><li>File Bugs
    42. 42. Write Effective Bug Reports </li><ul><li>What you were doing
    43. 43. What you thought should happen
    44. 44. What happened instead
    45. 45. Software & hardware specs </li></ul></ul>
    46. 46. Ways to Get Involved <ul><li>Check the Issue Tracker for “Easy” or “Beginner” Bugs
    47. 47. Submit a Patch </li></ul>
    48. 48. Ways to Get Involved <ul><li>Triage Bugs
    49. 49. Answer Questions in IRC
    50. 50. Point People in the Right Direction </li></ul>
    51. 51. Ways to Get Involved <ul><li>Offer to Document Information You Get
    52. 52. Press Releases and Newsletters
    53. 53. Testimonials & Developer / User Interviews </li></ul>
    54. 54. Ways to Get Involved <ul><li>Join or Start a Local User Group
    55. 55. Offer to Staff a Booth or Table
    56. 56. Volunteer to Help at the Next FOSS Conference </li></ul>
    57. 57. Ways to Get Involved <ul><li>Create Training Materials: How To's, Tutorials
    58. 58. Bonus Points for Video or In Person Training
    59. 59. Give a Talk about Your Project </li></ul> Anyone who can share knowledge well is a teacher.
    60. 60. Ways to Get Involved <ul><li>Improve FOSS
    61. 61. Get Valuable Employment Experience
    62. 62. Learn from an Experienced Mentor
    63. 63. Become Part of a Vibrant Global Community
    64. 64. Get Paid </li></ul>
    65. 65. Recap <ul><li>Getting Started Means Being a Good Citizen
    66. 66. Jump in Where You Can Do Well
    67. 67. Know You Will Make Mistakes
    68. 68. Have Fun! </li></ul>
    69. 69. Thank You! Leslie Hawthorn, Outreach Manager Jeff Sheltren, Operations Manager [email_address] [email_address] @sheltren and @lhawthorn
    70. 70. Resources <ul><li>Producing Open Source Software: </li><ul><li>This guide for starting a FOSS project provides a good overview for newbies, too. </li></ul><li>Guide to GSoC Mentoring: </li><ul><li>Documentation for Google Summer of Code Mentors that will also be of general use to folks looking to add new contributors. </li></ul><li>Student Guide to GsoC: </li><ul><li>Docs for GsoC students that will also be of general use for learning how to contribute to FOSS projects </li></ul></ul>
    71. 71. Resources (cont'd.) <ul><li>Mentoring in Open Source Communities: What Works, What Doesn't </li><ul><li>Excellent article interviewing several FOSS developers on their mentoring methodologies. </li></ul><li>How to Ask Questions the Smart Way </li><ul><li>The often cited guide to asking questions effectively in the FOSS world. Not always gentle in tone – your mileage may vary. </li></ul></ul>
    72. 72. Even More Resources <ul><li>The Free Software Definition </li><ul><li>The document for understanding the concept of software being free as in uncensored speech rather than no cost </li></ul><li>The Cathedral and the Bazaar
    73. 73. </li><ul><li>Seminal piece on the early history and fundamental concepts of the Free Software movement </li></ul></ul>
    74. 74. The Last Resources Page <ul><li>The Open Source Definition </li><ul><li>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. </li></ul><li>Please suggest additional resources! </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.