the hitchhikers' guide to free and open source software development (compcon 2013)
DESCRIPTION
There is only one serious course about Free and Open Source Software Development delivered in Australia annually, the postgraduate level COMP8440 at ANU. Moreover the course is delivered by Andrew "Tridge" Tridgell who authored the seminal open source projects samba and the rsync algorithm. During this course he discusses his wealth of experience and trains then assesses students on contributing to the open source community. This talk will be conveying as much of this week-long course as is possible in the time available, as seen through the eyes of a graduating student who was always keen about open source yet who hadn't made their first pull-requests until during this course. Now, more than a year later, the presenter is actively involved in several open source projects and will be talking about some of the characteristics of the open source community today and describing in specific detail about how to become involved. The presenter will discuss the highs, the lows, the awkwardness and unique sense of connection and achievement that can only be fulfilled by contributing to open source. Elena Williams is a python/django web developer now working in Perth. She graduated from Master ITS program from CECS ANU in 2012. She's taught Django/Python, been involved with the Django, Python and Linux communities around Australia and organised the Python user group in Canberra whilst studying at ANU. She presented about open source participation at PyConAU 2012. She is also enthusiastic about teaching programming to non-programmers, kitesurfing, snowboarding, endurance navigation sports; is an active hacker/maker and was only called a Douglas Adams "tragic" by the Canberra Times once.TRANSCRIPT
![Page 1: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/1.jpg)
THE HITCHHIKER'S GUIDE TO
FREE AND OPEN SOURCE
SOFTWARE DEVELOPMENT
![Page 2: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/2.jpg)
![Page 3: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/3.jpg)
@elequ or elena
![Page 4: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/4.jpg)
INTERESTINGTIMES
~ stream-lined communication~ broad acceptance of technology
Golden age
![Page 5: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/5.jpg)
WHY?“DO” OPEN SOURCE
Who here
![Page 6: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/6.jpg)
YOU
![Page 7: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/7.jpg)
PUBLIC CODE PRESENCE IS ATTRACTIVE TO
POTENTIALEMPLOYERS
support companies can hire what they see …Hardware vendors have a big market for FOSS devs so that foss will work on their devices.
![Page 8: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/8.jpg)
Bitbucket
CloudForge
CodePlex
GitHub
Gitorious
Google Code
Launchpad
SourceForge
PUBLIC CODE PRESENCE IS THE BEST CV EVA
![Page 9: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/9.jpg)
github.com
bitbucket.org
![Page 10: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/10.jpg)
![Page 11: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/11.jpg)
![Page 12: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/12.jpg)
WHY?“DO” OPEN SOURCE
OPPORTUNITY
if you want to be good
![Page 13: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/13.jpg)
WHY?“DO” OPEN SOURCE
OPPORTUNITY
People
Projects
best people that there are ...
![Page 14: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/14.jpg)
WHO“DOES” OPEN SOURCE
![Page 15: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/15.jpg)
WHO“DOES” OPEN SOURCE
INVOLVEMENT
Creator
Contributor
User
![Page 16: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/16.jpg)
WHO“DOES” OPEN SOURCE
INVOLVEMENT
Creator
Contributor
User
USAGE
Personal
Professional/Corporate
![Page 17: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/17.jpg)
WHO“DOES” OPEN SOURCE
INVOLVEMENT
Creator
Contributor
User
USAGE
Personal
Professional/Corporate
Hobby
![Page 18: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/18.jpg)
WHO“DOES” OPEN SOURCE
INVOLVEMENT
Creator
Contributor
User
USAGE
Personal
Professional/Corporate
Hobby
Resource
![Page 19: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/19.jpg)
WHY?“DO” OPEN SOURCE
Open source provides a unique opportunity
for the trifecta of purpose, mastery
and autonomy.
![Page 20: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/20.jpg)
WHY?“DO” OPEN SOURCE
Learning
Socialising
Minions
Glory!
World Domination
![Page 21: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/21.jpg)
WHY?“DO” OPEN SOURCE
SOCIAL
Working with others
Working with people better than you
Exposure to other styles
Get exposure for your project
![Page 22: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/22.jpg)
WHY?“DO” OPEN SOURCE
EDUCATION
Opportunity to learn from others
Learn to avoid pitfalls/gotchas
Fast intro to common patterns
It’s exhausting
![Page 23: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/23.jpg)
WHY?“DO” OPEN SOURCE
SKILL UP
Try out new ideas.
Try out new technology.
Try out development, unstable versions.
Do things you don’t do “during the day”.
It’s exhausting
![Page 24: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/24.jpg)
WHY?“DO” OPEN SOURCE
ETHICS/VALUES
Political Reasons
Altruism
Democracy/Meritocracy
![Page 25: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/25.jpg)
WHY?“DO” OPEN SOURCE
BUSINESS
Best Solution Available
Makes Sense for the Project
![Page 26: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/26.jpg)
WHY?BUSINESS REASONS
• Security
• Quality
• Customisability
• Freedom
• Flexibility
• Interoperability
• Auditability
• Support Options
• Cost
• Try-Before-You-Buy
![Page 27: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/27.jpg)
QUALITY
“If you have enough eyeballs all bugs
are shallow.”
Linus’ Law(actually pre-dates him)
![Page 28: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/28.jpg)
CHOICE AND TRUST
No need to trust software vendor.
Choice to fix yourself.
Right to fork if disagree.
Can contribute.
It’s healthy to question your own work!It’s healthy to freely collaborate!
PRACTICAL terms
![Page 29: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/29.jpg)
WHAT IS “OPEN SOURCE”
ANYWAY?
![Page 30: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/30.jpg)
FREEDOM
![Page 31: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/31.jpg)
FREEDOMFree as in “Beer”
![Page 32: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/32.jpg)
![Page 33: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/33.jpg)
FREEDOMFree as in “Speech”or as in “Thought”
![Page 34: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/34.jpg)
PROGRESS
![Page 35: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/35.jpg)
community that emphasises the individual over the “organisation”vs. company presents a facade
![Page 36: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/36.jpg)
![Page 37: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/37.jpg)
IN THE BEGINNING... was the
Command Line
![Page 38: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/38.jpg)
![Page 39: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/39.jpg)
IN THE BEGINNING... was the
Command Line
![Page 40: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/40.jpg)
IN THE BEGINNING... was the
incident at MIT Artificial Intelligence Labswith the printer drivers in about 1971
![Page 41: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/41.jpg)
![Page 42: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/42.jpg)
![Page 43: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/43.jpg)
![Page 44: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/44.jpg)
[COOKING]
![Page 45: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/45.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
![Page 46: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/46.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
Sell
Share
![Page 47: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/47.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
![Page 48: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/48.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
(Bill Gates) ..
(Richard Stallman)
![Page 49: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/49.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
![Page 50: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/50.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
Corporations
Hackers
![Page 51: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/51.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
rights individual
higher purposeprogress of technology
![Page 52: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/52.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
Protect Owner
Protect Freedom
rights individual
higher purposeprogress of technology
![Page 53: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/53.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
These rules hadn’t been made upIn wasn’t obvious
![Page 54: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/54.jpg)
SOFTWARE SHOULD BE ...
Completely PRIVATE
v.
Completely FREE
Product
Individual
These rules hadn’t been made upIn wasn’t obvious
![Page 55: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/55.jpg)
SOFTWARE SHOULD BE ...
... THE AUTHOR DECIDES
![Page 56: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/56.jpg)
COPYRIGHT
![Page 57: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/57.jpg)
AUTOMATICALLY GRANTS AUTHOR EXCLUSIVELY RIGHT TO:
To produce copies or reproductions to sell or distribute.
Create derivative works.
To perform or display the work publicly;
To transmit, import or export the work.
This is the essence of why licenses matter.
![Page 58: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/58.jpg)
AUTOMATICALLY GRANTS AUTHOR EXCLUSIVELY RIGHT TO:
To produce copies or reproductions to sell or distribute.
Create derivative works.
To perform or display the work publicly;
To transmit, import or export the work.
NO ONE ELSE CAN DO THESE THINGS WITHOUT THE AUTHOR’S PERMISSION
This is the essence of why licenses matter.
![Page 59: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/59.jpg)
AUTOMATICALLY GRANTS AUTHOR EXCLUSIVELY RIGHT TO:
To produce copies or reproductions to sell or distribute.
Create derivative works.
To perform or display the work publicly;
To transmit, import or export the work.
NO ONE ELSE CAN DO THESE THINGS WITHOUT THE AUTHOR’S PERMISSION
If they do, the author can sue.
This is the essence of why licenses matter.
![Page 60: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/60.jpg)
COPYLEFT
![Page 61: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/61.jpg)
ORIGINAL SOFTWAREFREEDOMS (~1976)
* The freedom to run the program, for any purpose.
* The freedom to study how the program works, and adapt it to your needs.
* The freedom to redistribute.
* The freedom to improve the program, and release your improvements (and modified versions in general)
Access to the source code is a precondition.(obviously)
![Page 62: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/62.jpg)
![Page 63: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/63.jpg)
OPEN SOURCE DEFINITION
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
Things that are explicitly stated.
![Page 64: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/64.jpg)
OPEN SOURCE DEFINITION
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
~ as in beer -- no royalties or fees
Things that are explicitly stated.
![Page 65: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/65.jpg)
OPEN SOURCE DEFINITION
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
~ as in beer -- no royalties or fees
~ not obfuscated or require preprocessor, translator, etc
Things that are explicitly stated.
![Page 66: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/66.jpg)
OPEN SOURCE DEFINITION
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
~ as in beer -- no royalties or fees
~ not obfuscated or require preprocessor, translator, etc
~ can be remixed
Things that are explicitly stated.
![Page 67: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/67.jpg)
OPEN SOURCE DEFINITION
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
~ as in beer -- no royalties or fees
~ not obfuscated or require preprocessor, translator, etc
~ can be remixed
~ rename your version
Things that are explicitly stated.
![Page 68: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/68.jpg)
OPEN SOURCE DEFINITION
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software10. License Must Be Technology-Neutral
Need to be specified because they’ve been challenged
![Page 69: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/69.jpg)
OPEN SOURCE DEFINITION
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software10. License Must Be Technology-Neutral
~ eg. commercial use or “values” (genetic research)
Need to be specified because they’ve been challenged
![Page 70: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/70.jpg)
OPEN SOURCE DEFINITION
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software10. License Must Be Technology-Neutral
~ eg. commercial use or “values” (genetic research)
~ applies to next person down, but not next after that
Need to be specified because they’ve been challenged
![Page 71: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/71.jpg)
OPEN SOURCE DEFINITION
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software10. License Must Be Technology-Neutral
~ eg. commercial use or “values” (genetic research)
~ applies to next person down, but not next after that
... except if being repackaged and redistributed
Need to be specified because they’ve been challenged
![Page 72: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/72.jpg)
OPEN SOURCE DEFINITION
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software10. License Must Be Technology-Neutral
~ eg. commercial use or “values” (genetic research)
~ applies to next person down, but not next after that
... except if being repackaged and redistributed
~ platform or “style of interface”
Need to be specified because they’ve been challenged
![Page 73: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/73.jpg)
PROPRIETARY OPEN SOURCE?
CAN: give away source and accepted changes
(for free as in beer)
CANNOT: use the term “Open Source”
as it’s trademarked
![Page 74: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/74.jpg)
PROPRIETARY OPEN SOURCE?
For your own sake be aware of where you’re directing your efforts.
![Page 75: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/75.jpg)
LIABILITY
Giving away for free (as in beer) does not exemptfrom being sued.
“This program comes with ABSOLUTELY NO WARRANTY”
lifesavinglanding aircraft
![Page 76: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/76.jpg)
OPEN SOURCE PHILOSOPHISING
Traditional FOSS projects have strong technical focus
and tend to avoid philosophy.
There are dedicated channels for talking about FOSS philosophy and principles.
In more modern projects there is a resurgence in interest if you learn some background.
Aaron Schwartz
![Page 77: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/77.jpg)
FREE AND OPEN SOURCE
SOFTWARE PROJECTS
![Page 78: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/78.jpg)
![Page 79: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/79.jpg)
![Page 80: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/80.jpg)
![Page 81: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/81.jpg)
ACTUALLY LOOKS LIKE THIS:
![Page 82: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/82.jpg)
ACTUALLY LOOKS LIKE THIS:Mailing Lists
![Page 83: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/83.jpg)
ACTUALLY LOOKS LIKE THIS:Mailing Lists IRC
![Page 84: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/84.jpg)
Bug/Issue Tracking
![Page 85: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/85.jpg)
AND THIS ...Bug/Issue Tracking
![Page 86: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/86.jpg)
BUT SRSLY ...
Completely PRIVATE
Product
v.
INDIVIDUALCompletely FREE
community that emphasises the individual over the companyvs. company presents a facade
![Page 87: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/87.jpg)
One of most important messages of this talk!Beautiful bouquet that is humanity
![Page 88: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/88.jpg)
EVERY
PROJECT
is
DIFFERENT
One of most important messages of this talk!Beautiful bouquet that is humanity
![Page 89: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/89.jpg)
COMMUNITY CULTURE IS NOT SCIENCE
You can not independently derive this stuff. ... and no one expects you to.
Do your research and listen.
Follow the precedent.
![Page 90: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/90.jpg)
PROJECT TECHNICAL SPECIFICS
![Page 91: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/91.jpg)
PROJECT TECHNICAL SPECS
How: responsive, receptive and welcoming
will vary dramatically
![Page 92: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/92.jpg)
• Technology
PROJECT VARIABLES
Andrew Tridgell says: spend a couple of weekends or whatever
![Page 93: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/93.jpg)
• Technology
PROJECT VARIABLES
• What’s its scope?
• What’s its profile?
• How big is it?
• How old is it?
• Where in its lifecycle it is?
• How active is it?
Andrew Tridgell says: spend a couple of weekends or whatever
![Page 94: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/94.jpg)
• Technology
PROJECT VARIABLES
• Who?
• How well organised is it?
• How is it structured?
• How are decisions made?
• How does it communicate?
• What’s its scope?
• What’s its profile?
• How big is it?
• How old is it?
• Where in its lifecycle it is?
• How active is it?
Andrew Tridgell says: spend a couple of weekends or whatever
![Page 95: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/95.jpg)
PROJECT VARIABLES
TECHNOLOGY
Technical Depth
[many possible dimensions]
you know what? scratch that, I’m actually going to come back to this later.
![Page 96: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/96.jpg)
PROJECT VARIABLES
What’s its scope?
[Linux Kernel .. .. some niche script]
What’s its profile?
[Python .. .. some widget]
![Page 97: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/97.jpg)
PROJECT VARIABLES
How old is it?
FOSS Projects are hard to kill.
Where in its lifecycle it is?
[Alpha .. .. Established]
Where in its story arc it is?
[Surging .. Stable .. Dying]
samba died twicedead cat bounce
![Page 98: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/98.jpg)
PROJECT VARIABLES
How big is the codebase?
How big is the program/application?
[Twitter .. .. ]
Sometime big codebase on small application is a good thing.
![Page 99: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/99.jpg)
PROJECT VARIABLES
How big is the community?
What kind of people are in the community?
[technical, organisational, social, experimental ...]
![Page 100: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/100.jpg)
PROJECT VARIABLES
CATHEDRAL
![Page 101: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/101.jpg)
PROJECT VARIABLES
CATHEDRAL BAZAARv.
![Page 102: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/102.jpg)
![Page 103: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/103.jpg)
PROJECT VARIABLES
How active is it?
[17K emails/month .. .. couple of patches/year]
Faster moving is less tolerant.Bigger can be more tolerant.
![Page 104: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/104.jpg)
WELCOMING COMMITTEE
Projects might have someone whose role is to guide new people.
Apache have a whole system.
The project leader might give youall the time in the world for a brand new project.
There will probably be nothing at all.
this week, we found a big in plug in made a patchit was pushed and released in about 15 minutes
![Page 105: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/105.jpg)
PROJECT VARIABLES
SUMMARY
You will have completely different experiences
depending on the project.
![Page 106: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/106.jpg)
PROJECT VARIABLES
SUMMARY
Have a basic idea of the nature of the project
before diving in.
It’ll grease the rails,make it easy for yourself.
![Page 107: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/107.jpg)
PROJECTGOVERNANCE
(PEOPLE)
![Page 108: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/108.jpg)
DECISIONS NEED TO BE MADE
Design
Legal/License
Development Environments and Tools
Triaging(dealing with incoming)
Someone has to make them.
![Page 109: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/109.jpg)
PROJECT GOVERNANCE
Formal
v.
Informal
Organisational Structure(gotta have one)
OK so honestly very few projects have formal structureMost projects are informal
If you have an organisation ... even if it’s rubbish
![Page 110: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/110.jpg)
PROJECT GOVERNANCE
FormalConstitution
Office holders, Board or Steering committeeAnnual election
(Debian; Gnome)
Not-for-profit “Software Foundation”(Apache SF, Python SF, Django SF)
Usually happens when big enough to involve money and lawyers.
Office holders, “official” membershipcommon pattern
![Page 111: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/111.jpg)
PROJECT GOVERNANCE
Serious v. Not (silly)
Vast majority of projects are side-projects.
Generally side-projects are less serious but not necessarily.
Is someone basing their career on it?
![Page 112: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/112.jpg)
ROLES
There is usually identifiable author or leader.
Is there an identifiable team?
What roles are there?What roles aren’t there?
![Page 113: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/113.jpg)
ROLES
BDFL
Benevolent Dictator/s For LifeMore commonly used in this era.
Usually original author/s.Though there are exceptions.
Dictates final decisions, arbitrage and ends disputes.
Project leader for so long
![Page 114: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/114.jpg)
ROLES
Release Manager
PackagingPass tests
Right documentationRight internationalisation (i18n)
No “release blocking” bugsRelease announcement.
Project leader for so long
![Page 115: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/115.jpg)
ROLES
System Admin (servers, etc)
Website
Artwork
Licenses
Answering Questions
Newb wrangling (we were all newbs once, we’re all newbs about most things ever, it’s just a phase)
Karen/Russ, django users
![Page 116: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/116.jpg)
GETTING INVOLVED
How many people use version control regularly/proficiently?
101 stuff ... most of are self-taught in most areas, worth glossing over.
![Page 117: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/117.jpg)
START SMALL
A lot of people’s FOSS careersstart with a
one character patch.
(particularly to big, old, established projects)
You don’t have to “prove” your mad-coding-skillzor change the world in your first commit,
moreover you certainly shouldn’t.
If you know everything else I’m going to talk about here, but still aren’t involved:
Particularly to big, old, established projects
Goes against our instinct
![Page 118: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/118.jpg)
START SMALL
Projects hate:
Big, unexplained patchesfrom people unknown to the community.
Not impressive.Big old projects may dismiss out-of-hand.
“dropping bombs”“drive by shootings”
Even if it’s good code -- it’s just not done that way.It’s got to be consumable by the project.
![Page 119: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/119.jpg)
START SMALL
Break up your feature in to
patches.
should do this anyway.
![Page 120: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/120.jpg)
VERSION CONTROL
AKA SOURCE CONTROLMANAGEMENT (SCM)
How many regularly use version control?Don’t want to bore to tears.
![Page 121: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/121.jpg)
VERSION CONTROL BASICS
Assume:THERE IS NO UNDO BUTTON
Everything you commit is on the public record. Forever.
Commit with care.
Do NOT be reckless.
![Page 122: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/122.jpg)
WHAT IS VERSION CONTROL?
Writing code is easy, constructing programs is hard.
Many people working on same codebase is hard.
Solution: take small, logical, incremental steps.
in the form of ...
![Page 123: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/123.jpg)
ALWAYS SMALL
Always take the time to break up your patch into the
smallest, logical unit.
Easier to understand for everyone (committer, future-you).
Easier to revert.
Rule of thumb: what you may need to revert.
![Page 124: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/124.jpg)
DIFF/PATCH
![Page 125: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/125.jpg)
DIFF/PATCH
The tiny step is called a: patch
Small, logical, incremental steps.
Official terms: diff and patch.These were the original tools that were used.
Atomic unit of code development.
Patch originally written by Larry Wall
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 126: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/126.jpg)
DIFF/PATCH
Put code changes into standardised format.
Standard is: “unified format” (or “unidiff” or “-u”)
$ diff -u ...
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 127: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/127.jpg)
DIFF/PATCH
![Page 128: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/128.jpg)
DIFF/PATCH
![Page 129: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/129.jpg)
UNIDIFF
wikipedians may be familiar
![Page 130: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/130.jpg)
UNIDIFF
A PATCH! any unidiff scm will be able to “APPLY” thisyou can write these by hand if you wantcan be reversed (or “reverted”)some examples without original source
![Page 131: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/131.jpg)
DIFF/PATCH
![Page 132: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/132.jpg)
DIFF/PATCH
![Page 133: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/133.jpg)
UNIDIFF
![Page 134: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/134.jpg)
![Page 135: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/135.jpg)
DIFF/PATCH
Congratulations! You have a patch file!
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 136: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/136.jpg)
The patch/s are then “sent*” to the project. *what this means varies.
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 137: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/137.jpg)
COMMITTING/INTEGRATING
Code change is then committed or integrated
in to a version of project.
Though it’s normal for patches to be rejected.
Your patch might directly conflict with someone else’s work.this is known as a merge-conflict
and usually needs human arbitrage to fix.
![Page 138: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/138.jpg)
... sent* to the project ...
![Page 139: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/139.jpg)
SEND/MERGE/COMMIT/PUSH/PULL-REQUEST
This is where projects become so divergentown research needs to be done to on this process.A lot of project use multiple integration methods.
... sent* to the project ...
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 140: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/140.jpg)
PATCH SUBMISSION:LINUX KERNEL EXAMPLE
Very strong rules.
Very clear guidelines.
https://www.kernel.org/doc/Documentation/SubmittingPatches
5,000 word piece of documentationwhich is strongly adhered to.
![Page 141: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/141.jpg)
PATCH SUBMISSION:LINUX KERNEL EXAMPLE
Patches to Linux Kernel are submitted by email.
They get a lot of email:
lkml.org/lkml/2013/
20-25 emails an hour, depending where in the world
![Page 142: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/142.jpg)
![Page 143: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/143.jpg)
![Page 144: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/144.jpg)
![Page 145: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/145.jpg)
SOURCE CODEMANAGEMENT
(SCM)SYSTEMS
![Page 146: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/146.jpg)
WHAT IS SOURCE CODE MANAGEMENT (SCM)?
![Page 147: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/147.jpg)
WHAT IS SOURCE CODE MANAGEMENT (SCM)?
Where is your MASTER codebase repository?
![Page 148: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/148.jpg)
WHAT IS SOURCE CODE MANAGEMENT (SCM)?
Where is your MASTER codebase repository?
Early version control system:
CENTRALISED SERVER
![Page 149: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/149.jpg)
CENTRALISED VERSION CONTROL
![Page 150: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/150.jpg)
CENTRALISED VERSION CONTROL
FIRST GENERATION SCM
+ Provides development history- Manages files individually- Only one person editing at a time- No merge capability
eg, SCCS (1972), RCS (1982 free and more evolved)
rcs 1982
![Page 151: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/151.jpg)
CENTRALISEDVERSION CONTROL
CVS (CONCURRENT VERSIONS SYSTEM)
+ Parallel development+ Merge & conflict resolution (based on diff/patch)- Poor rename and directory support- Poor branch merging- Most operations require contacting centralised server
Dominated FOSS 1991 to 2005.Use can still be found.
1990
![Page 152: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/152.jpg)
CENTRALISED VERSION CONTROL
SUBVERSION (SVN)
+ ‘CVS done right’+ Project-wide revisions- Each developer has ‘checkout’- Most meta-data is only stored on central server- Committing require contacting central server
Very commonly used before new generation.Still commonly used.
![Page 153: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/153.jpg)
WHAT IS SOURCE CODE MANAGEMENT (SCM)?
Where is your MASTER codebase repository?
![Page 154: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/154.jpg)
WHAT IS SOURCE CODE MANAGEMENT (SCM)?
Where is your MASTER codebase repository?
Since early 2000s
DISTRIBUTED
Everyone gets a ‘clone’: + entire codebase
+ entire revision history
![Page 155: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/155.jpg)
CENTRALISED VERSION CONTROL
![Page 156: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/156.jpg)
CENTRALISED VERSION CONTROL
![Page 157: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/157.jpg)
DISTRIBUTED VERSION CONTROL
![Page 158: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/158.jpg)
![Page 159: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/159.jpg)
DISTRIBUTED VERSION CONTROL
BAZAAR (BZ)
MERCURIAL (HG)
DARCS
MONOTONE (peer-to-peer)
GIT
Since great Distributed Version Control wars of ~2005
started in the 90s, blew out ’02-05 when linux switched to not GIT (bitkeeper)
![Page 160: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/160.jpg)
Currently has a lot of support and momentum.
People say it’s complicated.
TAKE CARE MENTALLY VISUALISING STATE OF CODE
necessarily complicated!
install git
![Page 161: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/161.jpg)
WHAT IS A GIT REPOSITORY?
Any file tree with the special /.git directory
~ delete and ceases to be~ can put anywhere and it will try and figure out
![Page 162: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/162.jpg)
WHAT FILES ARE IN A GIT REPOSITORY?
Explicitly add and rm files to/from repository
can put in any dir, but won’t know until you tell it.
![Page 163: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/163.jpg)
WHAT FILES ARE IN A GIT REPOSITORY?
Explicitly add and rm files to/from repository
Be specific:
$ git add hello.txt
Or general:
$ git add .
can put in any dir, but won’t know until you tell it.
![Page 164: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/164.jpg)
WHAT FILES ARE IN A GIT REPOSITORY?
You can explicitly tell git to ignore the existence of certain files listing files to be ignored in:
.gitignore
This can be per directory.
Gotcha: .gitignore won’t work on files you’ve already added.
![Page 165: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/165.jpg)
GIT CLONE
~ all revision history~ entire working codebase
![Page 166: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/166.jpg)
GIT CLONEFind an open source repository.
~ all revision history~ entire working codebase
![Page 167: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/167.jpg)
GIT CLONEFind an open source repository.
$ git clone https://github.com/jquery/jquery.git
~ all revision history~ entire working codebase
![Page 168: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/168.jpg)
GIT CLONEFind an open source repository.
$ git clone https://github.com/jquery/jquery.git
~ all revision history~ entire working codebase
![Page 169: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/169.jpg)
GIT CLONEFind an open source repository.
$ git clone https://github.com/jquery/jquery.git
~ all revision history~ entire working codebase
![Page 170: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/170.jpg)
GIT CLONEFind an open source repository.
$ git clone https://github.com/jquery/jquery.git
~ all revision history~ entire working codebase
![Page 171: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/171.jpg)
The the code is yours. All yours.
GIT CLONEFind an open source repository.
$ git clone https://github.com/jquery/jquery.git
~ all revision history~ entire working codebase
![Page 172: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/172.jpg)
MAKE CHANGESFORK
If you’re going to make changes then fork the project.
Only make changes to your own tree.
Forking used to be an anathema.
![Page 173: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/173.jpg)
MAKE CHANGESBRANCH
Create branch:$ git branch mydevbranch
Use branch:$ git checkout mydevbranch
![Page 174: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/174.jpg)
MAKE CHANGESGENERATE PATCHES
So you’ve changed the code.On your own fork.
On a development branch.
You need patches.
![Page 175: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/175.jpg)
WHAT’S GOING ON IN AGIT REPOSITORY?
$ git status
Will recognise file changes.
Automatically translate to patches/hunks.
![Page 176: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/176.jpg)
WHAT’S GOING ON IN AGIT REPOSITORY?
$ git status
Recommended GUI tools
Linux: gitg
others: SourceTree
![Page 177: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/177.jpg)
git-scm.com/downloads/guis
![Page 178: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/178.jpg)
GIT WORKFLOW
1. Make code changes. Study your newly created patches/hunks.(debug, debug, check, check, proof, proof)
![Page 179: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/179.jpg)
GIT WORKFLOW
1. Make code changes. Study your newly created patches/hunks.(debug, debug, check, check, proof, proof)
2. “Stage” patches/hunks(using $ git add or GUI tool)
![Page 180: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/180.jpg)
GIT WORKFLOW
“Stage” patches(using $ git add or GUI tool)
![Page 181: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/181.jpg)
GIT WORKFLOW
1. Make code changes. Study your newly created patches/hunks.(debug, debug, check, check, proof, proof)
2. “Stage” patches/hunks(using $ git add or GUI tool)
3. “Commit” staged changes to the repository.
![Page 182: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/182.jpg)
GIT WORKFLOW
1. Make code changes. Study your newly created patches/hunks.(debug, debug, check, check, proof, proof)
2. “Stage” patches/hunks(using $ git add or GUI tool)
3. “Commit” staged changes to the repository.(using $ git commit -m “handy mandatory message”)
![Page 183: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/183.jpg)
“Commit” staged changes
![Page 184: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/184.jpg)
“Commit” staged changes
![Page 185: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/185.jpg)
VERSION CONTROL BASICS
Assume:THERE IS NO UNDO BUTTON
Everything you commit is on the public record. Forever.
Commit with care.
Do NOT be reckless.
![Page 186: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/186.jpg)
VERSION CONTROL BASICS
Rule #0: Assume everything you commit is
FINAL and FOREVER
Rule #1: NEVER commit your PASSWORDS
or any other sensitive or personal settings or information.
![Page 187: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/187.jpg)
VERSION CONTROL BASICS
Rule #: Don’t commit buggy code.
Way to burn trust and respect.
Rule #: Atomic changes. That is: SMALL, logical changes.Break up feature in to a bunch of smaller patches.
Drive-by patches are universally despised.
whole weekend
![Page 188: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/188.jpg)
VERSION CONTROL BASICS
Rule #: Explain yourself.
Be terse, clear and explain why change is necessary.
Rule #: The committer’s time is probably more valuable than yours.
Being fewer of them it’s probably true.
![Page 189: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/189.jpg)
COMMITTING
Congratulations! You have a commit.
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 190: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/190.jpg)
PUSHING
Atomic unit of code development.
Tapes, TAR in the beginning, actually learning SCM takes years
![Page 191: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/191.jpg)
![Page 192: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/192.jpg)
Got it? you make a change, you ask the main project to “pull” it in to their project
![Page 193: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/193.jpg)
COMMITS/PULL REQUESTS
![Page 194: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/194.jpg)
COMMITS/PULL REQUESTS
Committed patches may then be “pulled” in to a version of project.
![Page 195: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/195.jpg)
COMMITS/PULL REQUESTS
Committed patches may then be “pulled” in to a version of project.
They usually don’t do this automatically.
![Page 196: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/196.jpg)
COMMITS/PULL REQUESTS
Committed patches may then be “pulled” in to a version of project.
They usually don’t do this automatically.
You ask the “upstream” to accept your commit using a pull-request
![Page 197: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/197.jpg)
COMMITS/PULL REQUESTS
Committed patches may then be “pulled” in to a version of project.
They usually don’t do this automatically.
You ask the “upstream” to accept your commit using a pull-request
pull-requests are regularly not accepted.(it’s not personal).
![Page 198: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/198.jpg)
![Page 199: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/199.jpg)
![Page 200: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/200.jpg)
CONTRIBUTING
“STYLE”
Learn the “style” of the existing project.Phrasing, structure, etc.
There will probably be rules. Follow them. eg: PEP8
If in doubt: copyDon’t make up a new style, you’ll look like a fool -- ASK!
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 201: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/201.jpg)
CONTRIBUTING
COMMUNICATE
Shallow and Often
.
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 202: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/202.jpg)
CONTRIBUTING
COMMUNICATE
Don’t be out on a limb!
.
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 203: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/203.jpg)
SAYTHANK YOU
Occasionally send an email or make a post saying:
“Thanks!”
No matter how big or famous a project,there’s usually more criticism than thanks.
It’s nice to be grateful :)
![Page 204: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/204.jpg)
AN EXISTING PROJECT
![Page 205: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/205.jpg)
DON’ T ASK ME
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 206: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/206.jpg)
How (Not) To Build An OSS Community
* Hello* Enjoying PyCon? Food Coma?* Talk about something near & dear: community
Thanks.Questions?
@daniellindsleyhttps://github.com/toastdriven
github.com/kennethreitzQuestions?
Growing Open Source Seeds
Kenneth Reitz
Running an open source project
![Page 207: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/207.jpg)
ORBE ON YOUR WAY
BE CORDIAL
![Page 208: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/208.jpg)
OPEN SOURCINGA PROJECT
“cookiecutter” projects on github.
Detailed blog posts.
![Page 209: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/209.jpg)
EXISTING PROJECTS
Do you actually want help?
“My Precious”Let others in.
Consider the benefits of help! All the things you no longer have to think about.
![Page 210: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/210.jpg)
EXISTING PROJECTS
Think about what needs to be done.
Write a post about how other people can do.If you want help, be specific.
Explain exactly what and how. Write a list.
Make tasks and issues.
![Page 211: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/211.jpg)
EXISTING PROJECTS
INSTALLATION and DEPENDENCIES
For the love of humanity ...
Ensure it’s possible to compile/install!
er, documentation?Write it down as you’re doing it.
![Page 212: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/212.jpg)
EXISTING PROJECTS
TEST DATA
For the love of humanity ...
Give us something to play with!
JSON, XML, Sqlite3, scripts ... anything ...
![Page 213: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/213.jpg)
GOOD LEADERSHIP
Don’t REJECT or REVERT without an explanation.
Contact the contributor before you do it.
Don’t let them find out publicly first.
It’s gutting to have something rejected, but there’s usuallya good reason -- explain it! It makes it OK.
![Page 214: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/214.jpg)
EXISTING PROJECTS
COMMUNICATE
95% of human problems ... are caused by and
can be solved by ...
![Page 215: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/215.jpg)
EXISTING PROJECTS
COMMUNICATE
Shallow and Often
.
![Page 216: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/216.jpg)
EXISTING PROJECTS
COMMUNICATE
Things that seem obvious, often aren’t obvious.
.
![Page 217: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/217.jpg)
EXISTING PROJECTS
COMMUNICATE
... that includes listening.
.
![Page 218: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/218.jpg)
EXISTING PROJECTS
BURNOUT
Take time off.
Ignore everything except security issues.
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 219: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/219.jpg)
EXISTING PROJECTSBE NICE
If someone leaves: Thank, don’t bitch
Don’t bitch about open source project without contacting owners, reporting bug
(random blog post!)
>> if anyone you know does this call them out on it.
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 220: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/220.jpg)
LICENSES
Don’t want to go too deep on licenses.It’s boring as batshitIf you care, you care a lot.
![Page 221: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/221.jpg)
LICENSES
Bad license decisions have long term consequences.
Unfortunately there are no easy answers.
![Page 222: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/222.jpg)
LICENSES
Original samba license:
Copyright (C) Andrew Tridgell 1992.Permission to use, copy and distribute this software is given to anyone who wants to, for NON-PROFIT only. You may not charge for this software or any derivatives of it without first contacting the Author.
![Page 223: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/223.jpg)
LICENSES
OSI lists 63 approved licenses, 9 as 'widely used'
GNU lists 81 free software licenses plus 28 non-free licenses
![Page 224: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/224.jpg)
LICENSESGPL
GNU Public License.
You must keep the software open.
You must give your changes back.
![Page 225: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/225.jpg)
LICENSESGPL V2
pre-GPLv3 (2007)FOSS Licenses were much simpler.
75%+ projects were GPL.
If you liked a company, you would license as LGPL.
Number of other licenses, notably: BSD (Berkely)
LGPL: ● Allows linking with proprietary programs● Also used to avoid inter-project licensing problems
![Page 226: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/226.jpg)
LICENSESGPL V3 (2007)
Written to address:● Internationalisation and clarification of legal language● Stronger patent provisions● Prevention of hardware restrictions (“tivoisation”)● Optional clauses to aid license interoperability● DMCA avoidance (“effective technological measure”)
It is a very good license. Arguably too good.
There has been a trend away from GPL.
It would be impossible for apple to comply with the GPLv3 license requirements on iPad and iPhones unless they license devices' security systems as same.
GPLv3 licensed software will not get in to any app store. full stop.
![Page 227: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/227.jpg)
LICENSESCOMPATIBILITY
Probably not fun.
~15% of all repositories had license files~25% of those have the license only
mentioned in the Readme file
Read more: Armin Ronacher (author of Flask), Late July, 2013
Can tell because people like Apple and Google don’t want a bar of it.
![Page 228: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/228.jpg)
LICENSESPOST-GPL
Interesting TimesMost popular : GPL
Apache Software License 2.0 (ASL2)BSD
(with additional clauses)(do whatever you like, just don’t sue me, even close source)
MIT(do whatever you like, just don’t sue me)
![Page 229: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/229.jpg)
LICENSES
Mongrel: popular ruby web serverZed Shaw
Under one of “please don’t sue me” licenses.Later regretted decision.
Until recently “Twitter” used it (on top of Apache).
![Page 230: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/230.jpg)
LICENSE:ZED SHAW
“Open source to open source, corporation to corporation.
If you do open source, you’re my hero and I support you.
If you’re a corporation, let’s talk business.”
![Page 231: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/231.jpg)
LICENSES
Watch this space.
![Page 232: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/232.jpg)
TOOLS
Learn to use:
Text Editor (pick a good one, learn to use it well)
Source Control Management (SCM)
(eg: git)
These take YEARS to learn!
![Page 233: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/233.jpg)
TOOLS
Learn to use:
Issue tracker
(not as obvious as it seems)
IRC
Mailing-lists
“Design decision needed”/“close” v. “feedback”fields you should and shouldn’t fill in
![Page 234: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/234.jpg)
TOOLS
Learn to use:
Command Line (CLI) (eg: bash)
grep (or ack) and find
Regular Expressions(aka: regex)
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 235: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/235.jpg)
TOOLS
Learn to:
WRITE
(clearly)
Popular markups:
ReST
Markdown
Honestly these 10-odd tools are my day-to-day everything.
![Page 236: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/236.jpg)
Harry Kroto
On feeling stupid:
Everyone does.
Everyone is about most things.
The “best” leverage thisto their advantage
(usually very humble.)
SAYING: I DON’T KNOW
HE ... wasIT’S a CONTINUUM
![Page 237: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/237.jpg)
ASK/LISTEN
Rule of Thumb: stuck for ½ hour.
Go to: IRC, mailing-list
Don’t agonise, spare yourself the pain!
Often: ~ experienced people can see/feel you struggling (but seldom say anything)~ so, in short term you feel like gumby BUT: learn something, might actually look clever~ in medium term: your corpus is building faster
![Page 238: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/238.jpg)
ASK/EXPLAIN
State as simply as possible.
State it up front.
Time is precious: be terse
tersetəәrs/adjective
1. sparing in the use of words; abrupt."a terse statement"
synonyms:brief, short, to the point, concise, succinct, crisp, pithy, incisive,
No fluffy language, no big explanation.BE CORDIALJust get to the core of it.
![Page 239: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/239.jpg)
BEING INVOLVED
Names/code
to
Faces/personalities
![Page 240: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/240.jpg)
TURN UP!
Decisions are made by the people who turn up.
HackerspacesUser GroupsConferences
Congratulations you are already here.Connect and develop.
![Page 241: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/241.jpg)
SET PEOPLE’SEXPECTATIONS
Probably the most valuable thing I’ve learnt in the last 5 years.
![Page 242: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/242.jpg)
CONTRIBUTING
COMMUNICATE
Find the venues to do so.
Mail-listMight be several!
IRCIssue Tracker
Wiki
NOW you have TOOLS to COMMUNICATE and CONTRIBUTE
TOO BIG: RKM learnt in weekend, core within a month or two.But noone on earth doing for linux kernel -- drive by shootings, gotta know you, trust you -- LINUXCON LAST WEEK
![Page 243: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/243.jpg)
BEING INVOLVED
Real world is not uni.
Flexible
FOSS is really flexible.
Young projects can turn on a dime for your idea.
Envisioning and implementing all the fine details is expensive for new projects.
![Page 244: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/244.jpg)
TELL PEOPLE WHAT YOU’RE DOING
For their sake.
Save them from wondering.
![Page 245: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/245.jpg)
DO WHAT YOU SAY YOU’RE GOING TO DO
But, if you can’t
communicate!
FOSS people are spectacularly understanding.
![Page 246: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/246.jpg)
Don’t get disheartened.
All mistakes will eventually be washed clean
by time and entropy.
Communities are very robust.
![Page 247: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/247.jpg)
INTERESTINGTIMES
Stream-lined ability to contribute/communicate.
Culture is changing: tech is becoming mainstream.
Re-learning old lessons.
Not just chicks, it’s older, multicultural.
![Page 248: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/248.jpg)
INTERESTINGTIMES
Stream-lined ability to contribute/communicate.
Culture is changing: tech is becoming mainstream.
Re-learning old lessons.
Demographic imbalance is being addressed.
Not just chicks, it’s older, multicultural.
![Page 249: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/249.jpg)
CHANGINGDEMOGRAPHICS
Difference is a continuum.
Shared culture and technical knowledge.
Skills!
Not just chicks, it’s older, multicultural.
![Page 250: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/250.jpg)
INTERESTINGTIMES
Stream-lined ability to contribute/communicate.
Culture is changing: tech is becoming mainstream.
Re-learning old lessons.
Demographic imbalance is being addressed.
Copyright is being questioned.Patent-wars.
WATCH THIS SPACE
![Page 251: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/251.jpg)
CONCLUSION
There will always be some form of“Open Source”.
People like us will make it happen.
This is the version we’ve currently got and it’s changing.
![Page 252: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/252.jpg)
THANK YOU!
![Page 253: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/253.jpg)
Contributors: Be Cordial
• Keep all interactions with a maintainer as respectful as possible.
• They have likely donated a signi!cant amount of time and energy into their project.
• They don’t owe you a moment of their time.
![Page 254: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/254.jpg)
Maintainers: Be Cordial
• You have the crucial responsibility of being immensely thankful to all contributors.
• They are the lifeblood of your project.
• Ignore non-constructive feedback.
• Some people just take things too seriously.
![Page 255: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/255.jpg)
Maintainers: Be Cordial
• Be careful with the words you chose. Contributors sometimes take what you say very personally.
• Take the opportunity to educate the user.
• This could be their !rst ever interaction with an open source project.
• A little bit of kindness goes a long way.
![Page 256: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/256.jpg)
Sustainability
• Sustainability is one of the biggest challenges of open source.
• Everyone has a limited amount of time.
• It’s easy to become the bottleneck of your own projects.
![Page 257: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/257.jpg)
Just Say No
![Page 258: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/258.jpg)
Learn to Say No
• Saying ‘No’ is extremely di!cult.
• People ask for crazy features. They send seemingly practical pull requests. They are trying to help.
• If you say yes often, your project will be ruined. Tragedy of the Commons.
But it’s HOW YOU SELL IT ...
![Page 259: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/259.jpg)
Don’t make it complicated.
![Page 260: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/260.jpg)
Open source makes the world a better place.
![Page 261: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/261.jpg)
Focused PurposeMove together or be torn apart by momentum.
* Be careful not to turn it into an end-all unless you’re sure it can be* Spin off advanced/specialized functionality as a plugin that builds on top
![Page 262: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/262.jpg)
DocumentationJust because you built it
doesn’t mean they will come.
* Except for rare situations (absolute need or so sexy!), without this, no one will use it* Case in point: It’s why many of you know about Flask but virtually no one knows about Itty* Lack of docs means most people will get frustrated & move on
![Page 263: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/263.jpg)
CommunicationWill make or break you.
* This goes along with focus* People want to know it’s actively developed on, what the future holds, how to get help, how they can help* IRC* Mailing lists* Website* Twitter
![Page 264: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/264.jpg)
Make Contribution EasyIt’s the only way you’ll get any contribution at all.
* GH/BB model of fork & pull req* Define **how** others can contribute* I suck at this one
![Page 265: The Hitchhikers' Guide to Free and Open Source Software Development (CompCon 2013)](https://reader031.vdocuments.us/reader031/viewer/2022013003/557e7f45d8b42acf658b46ea/html5/thumbnails/265.jpg)
ListenGraciously accept both positive &
negative feedback.
* You should consider yourself a success when you acquire haters* Remember there are lots of happy people who are quietly using the software* I’m super-thin-skinned, so I struggle with this one nightly