Let The Contribution Begin
SeongJae Park <sj38.park@gmail.com>
Great To Meet You
SeongJae Park <sj38.park@gmail.com>
Great To Meet You
SeongJae Park <sj38.park@gmail.com>
Newbie hacker
Great To Meet You
SeongJae Park <sj38.park@gmail.com>
Newbie hacker
Contributing to some F/OSS for fun
This Talk Is...
This Talk Is...
For Newbie, By Newbie, Of Newbie
image src: http://1.bp.blogspot.com/_i0kiD-6jeeI/TRq1fzwZh8I/AAAAAAAAAGw/...
This Talk Is...
For Newbie, By Newbie, Of Newbie
About F/OSS & Contribution(What, Why, How)
image src: http://www.mrmc-too...
This Talk Is...
For Newbie, By Newbie, Of Newbie
About F/OSS & Contribution(What, Why, How)
Practice: Linux & AOSP
image s...
There Are Two Kinds Of S/W In This World
image src: http://4.bp.blogspot.com/-
U3u_nNgfrqE/Upzam3E5I7I/AAAAAAAAxAE/2WMA0teCYr4/s1600/ira+de+Dios+ateismo+religion+j...
Two Kinds Of Software
Villains Made It Proprietary
image src: http://upload.wikimedia.org/wikipedia/commons/a/a2/Steve_Job...
Two Kinds Of Software
Heroes Thought It Must Be Free / Open Source
image src: http://foro.ubuntu-guia.com/file/n3879119/rm...
There Are Two Kinds Of S/W In This World
Free / Open Source Software
Proprietary Software
image src: http://upload.wikimed...
Contribution
Translation
Contribution
Translation
Bug Fix
Contribution
Translation
Bug Fix
Feature Implementation
Contribution
Translation
Bug Fix
Feature Implementation
Use
Contribution
Translation
Bug Fix
Feature Implementation
Use
In This Talk, Only Code Contribution
Why Contribution
Why Contribution
Honor
image src: http://www.mailandfemail.com/wp-content/uploads/2011/06/Medal-of-honor.jpg
Why Contribution
Honor
Career
Why Contribution
Honor
Career
Training
image src: http://1.bp.blogspot.com/-yzBPR57Pg2M/T_VmgM976VI/AAAAAAAABz0/Rgj-co8__a...
Why Contribution
Honor
Career
Training
Upstream Development
image src: http://dustinkirkland.files.wordpress.com/2009/07/u...
Why Contribution
Honor
Career
Training
Upstream Development
To Change The World
image src: http://media.focusonthefamily.c...
Why Contribution
Honor
Career
Training
Upstream Development
To Change The World
Because We Can
image src: http://www.blogt...
Why Contribution
Honor
Career
Training
Upstream Development
To Change The World
Because We Can
...Need More?
General Contribution Process
General Contribution Process
Get Source Code
General Contribution Process
Get Source Code
Make a Goal
General Contribution Process
Get Source Code
Modify Source Code
(Make Patch)
Make a Goal
General Contribution Process
Get Source Code
Modify Source Code
(Make Patch)
Send Patch
Make a Goal
General Contribution Process
Get Source Code
Modify Source Code
(Make Patch)
Send Patch
Get Review
Make a Goal
General Contribution Process
Get Source Code
Modify Source Code
(Make Patch)
Send Patch
Get Review
Approved?
No
Make a Goal
General Contribution Process
Get Source Code
Modify Source Code
(Make Patch)
Send Patch
Get Review
Approved?
Yes
No
Make a...
Keep In Mind
Keep In Mind
Coding Style
image src: http://www.emacswiki.org/pics/static/TabsSpacesBoth.png
Keep In Mind
Coding Style
You Are Just A Newbie Here
Keep In Mind
Coding Style
You Are Just A Newbie Here
Start From Jab
image src: http://imalbum.aufeminin.com/album/D2007082...
Keep In Mind
Coding Style
You Are Just A Newbie Here
Start From Jab
Commit Log Style
Keep In Mind - Commit Log Style
Summarized title on First Line
aio: v3: fix kioctx not being freed after cancellation at e...
Keep In Mind - Commit Log Style
Summarized title on First Line
Just n on Second Line
aio: v3: fix kioctx not being freed a...
Keep In Mind - Commit Log Style
Summarized title on First Line
Just n on Second Line
Detailed log after 3rd Line
aio: v3: ...
Keep In Mind
Coding Style
You Are Just A Newbie Here
Start From Jab
Commit Log Style
Practice: Linux
One Of Famous, Successful F/OSS Project
Practice: Linux
One Of Famous, Successful F/OSS Project
Documentation/HOWTO
Documentation/development-process
Linux - Get Source Code
So many Source Trees at git.kernel.org
image src: https://twimg0-a.akamaihd.net/profile_images/179...
Linux - Get Source Code
So many Source Trees at git.kernel.org
Use The linux-next Source Tree
Source Tree For Next Release
Linux - Get Source Code
So many Source Trees at git.kernel.org
Use The linux-next Source Tree
Source Tree For Next Release...
Linux - Get Source Code
So many Source Trees at git.kernel.org
Use The linux-next Source Tree
Source Tree For Next Release...
Linux - Make a Goal
Find Your Task
Linux - Make a Goal
Find Your Task
Coding Style Can Be A Good Start Point
Linux - Make a Goal
Find Your Task
Coding Style Can Be A Good Start Point
$ ./scripts/checkpatch.pl --help
Linux - Version Control
Usual Life Of File
FileA ver 0 FileB ver 0
Linux - Version Control
Usual Life Of File
FileA ver 0 FileB ver 1
Linux - Version Control
Usual Life Of File
FileB ver 1 FileA ver 1
Linux - Version Control
Usual Life Of File
FileB ver 2FileA ver 1
Linux - Version Control
Usual Life Of File
FileB ver 2FileA ver 1
Linux - Version Control
Usual Life Of File
$ ls
foo.c
foo_20140111.c
foo_final.c
foo_realfinal.c
foo_planb.c
foo_finalfina...
Linux - Version Control
Usual Life Of File
$ ls
foo.c
foo_20140111.c
foo_final.c
foo_realfinal.c
foo_planb.c
foo_finalfina...
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0
commit 1
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0
commit 1
./
../
FileA
FileB
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0
commit 1
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0
commit 1
master
branch
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0 FileB ver 1
commit 1
master
branch
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0 FileB ver 1
commit 1 commit 2
master
branch
Linux - Version Control
Life Of File Under git
FileA ver 0 FileB ver 0 FileB ver 1
commit 1 commit 2
master
branch
Linux - Version Control
Life Of File Under git
FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1 FileB ver 2
commit 1 commit ...
Linux - Version Control
Topic Branch
FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1
commit 1 commit 2 commit 3
master
bran...
Linux - Version Control
Topic Branch
FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1 FileB ver 2
commit 1 commit 2 commit 3...
Linux - Version Control
Upstream
Topic Branch: First time, Looks Needless
Linux - Version Control
Upstream
Topic Branch: First time, Looks Needless
Linux - Version Control
Upstream
Topic Branch: First time, Looks Needless
Linux - Version Control
Upstream
Local Repository
Topic Branch: First time, Looks Needless
clone!
Linux - Version Control
Upstream
Local Repository
Topic Branch: First time, Looks Needless
Linux - Version Control
Upstream
Local Repository
Topic Branch: First time, Looks Needless
Pull me!
Linux - Version Control
Upstream
Local Repository
Topic Branch: First time, Looks Needless
Pull me!
Thanks :)
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Linux - Version Control
Upstream
Local Repository
Topic Branch: What If Time Passes
Pull me!
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Pull me!
Conflict Occurred.
Why should...
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Pull me!
Also, merging you
manually wi...
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Pull me!
Also, merging you
manually wi...
Linux - Version Control
Topic Branch: What If Time Passes
Upstream
Local Repository
Pull me!
Also, merging you
manually wi...
Linux - Version Control
Topic Branch: Again.
Upstream
Local Repository
Linux - Version Control
Topic Branch: Get latest code while your
change resides in topic branch safely
Upstream
Local Repo...
Linux - Version Control
Topic Branch: Ensure The Branch Can Be
Merged Cleanly
Upstream
Local Repository
Linux - Version Control
Topic Branch: Ensure The Branch Can Be
Merged Cleanly
Upstream
Local Repository
Pull me!
Thanks! :)
Linux - Version Control
● Golden Rule
○ Patch Should Be Made From Latest Source Code
$ git remote update
$ git merge upstr...
Linux - Make a Patch
Topic Branch
Edit Code As You Prefer
image src: http://secretgeek.net/image/real-programmers-code-in-...
Linux - Make a Patch
Topic Branch
Edit Code As You Prefer
Commit using -s option
Linux - Make a Patch
Topic Branch
Edit Code As You Prefer
Commit using -s option
commit 106edea2fe051df65a1a6231e9ffa2876c...
Linux - Make a Patch
Signed-Off-By Means:
(a) I created this change; or
(b) Based this on a previous work with a
compatibl...
Linux - Make a Patch
Topic Branch
Edit Code As You Prefer
Commit using -s option
$ git format-patch master..HEAD
Linux - Send Patch
$ ./scripts/get_maintainer.pl 
<path to patch file>
Linux - Send Patch
$ ./scripts/get_maintainer.pl 
<path to patch file>
$ sudo apt-get install git-email
Linux - Send Patch
$ ./scripts/get_maintainer.pl 
<path to patch file>
$ sudo apt-get install git-email
$ git config sende...
Linux - Send Patch
$ ./scripts/get_maintainer.pl 
<path to patch file>
$ sudo apt-get install git-email
$ git config sende...
Linux - Get Review
Just E-Mail
Linux - Get Review
Just E-Mail
Be Gentle Citizen
Linux - Get Review
Just E-Mail
Be Gentle Citizen
Should Turn Off Rich-UX
Linux - Get Merged Notification Mail
This is a note to let you know that I've
just added the patch titled
staging: csr: Re...
Practice: AOSP
Android Open Source Project
Practice: AOSP
Android Open Source Project
World's most closed Open Source Software
Practice: AOSP
Android Open Source Project
World's most closed Open Source Software
Development Source Tree Is Not Open
AOSP: World's Most Closed OSS
From
community
Google internal
source treeAOSP
From
Googler
Release
AOSP is an OSS Stack
AOSP: Tools AOSP Uses
repo: Manages Multiple Project AOSP Use
AOSP: Tools AOSP Uses
repo: Manages Multiple Project AOSP Use
gerrit: Web Based UI AOSP Review System
AOSP: Contribution Process
Get Source Code
Agree Contributor
Agreement
Make Goal
Write Patch
Send Patch Merged / Abandoned...
AOSP: Agree Contributor Agreement
https://android-review.googlesource.com/#/
AOSP: Agree Contributor Agreement
AOSP: Agree Contributor Agreement
AOSP: Agree Contributor Agreement
AOSP: Agree Contributor Agreement
AOSP: Agree Contributor Agreement
AOSP: Get Source Code
$ repo init -u 
https://android.googlesource.com/platform/manifest
$ repo sync
AOSP: Make Goal
Bug Report Page
http://code.google.com/p/android/issues/list
Discussion Group
https://groups.google.com/fo...
AOSP: Make Patch
Topic Branch
$ repo start <branch_name> <project path>
AOSP - Make Patch
Topic Branch
$ repo start <branch_name> <project path>
Coding Style Guideline
http://s.android.com/sourc...
AOSP - Make Patch
Topic Branch
$ repo start <branch_name> <project path>
Coding Style Guideline
http://s.android.com/sourc...
AOSP - Send Patch
$ repo upload
AOSP - Get Review
AOSP - Get Review
Need Verification and Approval
AOSP - Get Review
See git log to select Appropriate Reviewer
AOSP - Upload New Patchset
Reviewer Want Modified Patch?
$ git commit --amend
$ repo upload
Summary
Summary
Get Source Code
Summary
Get Source Code
Make Goal
Summary
Get Source Code
Make Goal
Make Patch
Summary
Get Source Code
Make Goal
Make Patch
Send Patch
Summary
Get Source Code
Make Goal
Make Patch
Send Patch
Get Review
LET IT GO
The Code Never Bothered You Anyway
This work by SeongJae Park is licensed under the
Creative Commons Attribution-ShareAlike 3.0 Unported
License. To view a c...
Upcoming SlideShare
Loading in...5
×

Let the contribution begin

295

Published on

Describe how to contribute to open source projects.
Provide example process using two hot open source project, linux and AOSP(Android Open Source Project)

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
295
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Let the contribution begin"

  1. 1. Let The Contribution Begin SeongJae Park <sj38.park@gmail.com>
  2. 2. Great To Meet You SeongJae Park <sj38.park@gmail.com>
  3. 3. Great To Meet You SeongJae Park <sj38.park@gmail.com> Newbie hacker
  4. 4. Great To Meet You SeongJae Park <sj38.park@gmail.com> Newbie hacker Contributing to some F/OSS for fun
  5. 5. This Talk Is...
  6. 6. This Talk Is... For Newbie, By Newbie, Of Newbie image src: http://1.bp.blogspot.com/_i0kiD-6jeeI/TRq1fzwZh8I/AAAAAAAAAGw/2ggLbFod4II/s1600/newbie.png
  7. 7. This Talk Is... For Newbie, By Newbie, Of Newbie About F/OSS & Contribution(What, Why, How) image src: http://www.mrmc-tool.org/images/contribute.jpg
  8. 8. This Talk Is... For Newbie, By Newbie, Of Newbie About F/OSS & Contribution(What, Why, How) Practice: Linux & AOSP image src: http://www.bitdirect.nl/wp-content/uploads/2012/08/android_awesome.jpg, http://www.sitevip. net/wallpapers/Computers/Linux/Linux-2.jpg
  9. 9. There Are Two Kinds Of S/W In This World
  10. 10. image src: http://4.bp.blogspot.com/- U3u_nNgfrqE/Upzam3E5I7I/AAAAAAAAxAE/2WMA0teCYr4/s1600/ira+de+Dios+ateismo+religion+jesus+biblia+testamento+odio+furor+col era+rabia+evangelios+castigos+desolacion.jpg Two Kinds Of Software At the Beginning, There was Software
  11. 11. Two Kinds Of Software Villains Made It Proprietary image src: http://upload.wikimedia.org/wikipedia/commons/a/a2/Steve_Jobs_and_Bill_Gates_(522695099).jpg
  12. 12. Two Kinds Of Software Heroes Thought It Must Be Free / Open Source image src: http://foro.ubuntu-guia.com/file/n3879119/rms-linus.jpg
  13. 13. There Are Two Kinds Of S/W In This World Free / Open Source Software Proprietary Software image src: http://upload.wikimedia.org/wikipedia/commons/a/a2/Steve_Jobs_and_Bill_Gates_(522695099).jpg
  14. 14. Contribution Translation
  15. 15. Contribution Translation Bug Fix
  16. 16. Contribution Translation Bug Fix Feature Implementation
  17. 17. Contribution Translation Bug Fix Feature Implementation Use
  18. 18. Contribution Translation Bug Fix Feature Implementation Use In This Talk, Only Code Contribution
  19. 19. Why Contribution
  20. 20. Why Contribution Honor image src: http://www.mailandfemail.com/wp-content/uploads/2011/06/Medal-of-honor.jpg
  21. 21. Why Contribution Honor Career
  22. 22. Why Contribution Honor Career Training image src: http://1.bp.blogspot.com/-yzBPR57Pg2M/T_VmgM976VI/AAAAAAAABz0/Rgj-co8__aU/s1600/Maggie-million-dollar-baby-18619084-720-480.jpg
  23. 23. Why Contribution Honor Career Training Upstream Development image src: http://dustinkirkland.files.wordpress.com/2009/07/upstream.jpg
  24. 24. Why Contribution Honor Career Training Upstream Development To Change The World image src: http://media.focusonthefamily.com/blogmedia/images/jim-daly/changetheworld.jpg
  25. 25. Why Contribution Honor Career Training Upstream Development To Change The World Because We Can image src: http://www.blogtap.net/wp-content/uploads/2010/02/obama-yes-we-can.jpg
  26. 26. Why Contribution Honor Career Training Upstream Development To Change The World Because We Can ...Need More?
  27. 27. General Contribution Process
  28. 28. General Contribution Process Get Source Code
  29. 29. General Contribution Process Get Source Code Make a Goal
  30. 30. General Contribution Process Get Source Code Modify Source Code (Make Patch) Make a Goal
  31. 31. General Contribution Process Get Source Code Modify Source Code (Make Patch) Send Patch Make a Goal
  32. 32. General Contribution Process Get Source Code Modify Source Code (Make Patch) Send Patch Get Review Make a Goal
  33. 33. General Contribution Process Get Source Code Modify Source Code (Make Patch) Send Patch Get Review Approved? No Make a Goal
  34. 34. General Contribution Process Get Source Code Modify Source Code (Make Patch) Send Patch Get Review Approved? Yes No Make a Goal
  35. 35. Keep In Mind
  36. 36. Keep In Mind Coding Style image src: http://www.emacswiki.org/pics/static/TabsSpacesBoth.png
  37. 37. Keep In Mind Coding Style You Are Just A Newbie Here
  38. 38. Keep In Mind Coding Style You Are Just A Newbie Here Start From Jab image src: http://imalbum.aufeminin.com/album/D20070820/326879_GVBMZUNW3XLLR1G7O4RLQN6HXPCKKK_kick-boxing- cat_H171540_L.jpg
  39. 39. Keep In Mind Coding Style You Are Just A Newbie Here Start From Jab Commit Log Style
  40. 40. Keep In Mind - Commit Log Style Summarized title on First Line aio: v3: fix kioctx not being freed after cancellation at exit time v3 corrects a typo in v2 of this patch. The wrong version of the patch was copied over and misspelled ctx in the first hunk. A known good tree with this patch is at git://git.kvack.org/~bcrl/linux-next-20130213.git-v3 . Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
  41. 41. Keep In Mind - Commit Log Style Summarized title on First Line Just n on Second Line aio: v3: fix kioctx not being freed after cancellation at exit time v3 corrects a typo in v2 of this patch. The wrong version of the patch was copied over and misspelled ctx in the first hunk. A known good tree with this patch is at git://git.kvack.org/~bcrl/linux-next-20130213.git-v3 . Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
  42. 42. Keep In Mind - Commit Log Style Summarized title on First Line Just n on Second Line Detailed log after 3rd Line aio: v3: fix kioctx not being freed after cancellation at exit time v3 corrects a typo in v2 of this patch. The wrong version of the patch was copied over and misspelled ctx in the first hunk. A known good tree with this patch is at git://git.kvack.org/~bcrl/linux-next-20130213.git-v3 . Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
  43. 43. Keep In Mind Coding Style You Are Just A Newbie Here Start From Jab Commit Log Style
  44. 44. Practice: Linux One Of Famous, Successful F/OSS Project
  45. 45. Practice: Linux One Of Famous, Successful F/OSS Project Documentation/HOWTO Documentation/development-process
  46. 46. Linux - Get Source Code So many Source Trees at git.kernel.org image src: https://twimg0-a.akamaihd.net/profile_images/1794549696/SourceTree_newlogo.png
  47. 47. Linux - Get Source Code So many Source Trees at git.kernel.org Use The linux-next Source Tree Source Tree For Next Release
  48. 48. Linux - Get Source Code So many Source Trees at git.kernel.org Use The linux-next Source Tree Source Tree For Next Release Stephen Rothwell Manages
  49. 49. Linux - Get Source Code So many Source Trees at git.kernel.org Use The linux-next Source Tree Source Tree For Next Release Stephen Rothwell Manages $ git clone git://git.kernel. org/pub/scm/linux/kernel/git/next/linux- next.git
  50. 50. Linux - Make a Goal Find Your Task
  51. 51. Linux - Make a Goal Find Your Task Coding Style Can Be A Good Start Point
  52. 52. Linux - Make a Goal Find Your Task Coding Style Can Be A Good Start Point $ ./scripts/checkpatch.pl --help
  53. 53. Linux - Version Control Usual Life Of File FileA ver 0 FileB ver 0
  54. 54. Linux - Version Control Usual Life Of File FileA ver 0 FileB ver 1
  55. 55. Linux - Version Control Usual Life Of File FileB ver 1 FileA ver 1
  56. 56. Linux - Version Control Usual Life Of File FileB ver 2FileA ver 1
  57. 57. Linux - Version Control Usual Life Of File FileB ver 2FileA ver 1
  58. 58. Linux - Version Control Usual Life Of File $ ls foo.c foo_20140111.c foo_final.c foo_realfinal.c foo_planb.c foo_finalfinal.c
  59. 59. Linux - Version Control Usual Life Of File $ ls foo.c foo_20140111.c foo_final.c foo_realfinal.c foo_planb.c foo_finalfinal.c
  60. 60. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0
  61. 61. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 commit 1
  62. 62. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 commit 1 ./ ../ FileA FileB
  63. 63. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 commit 1
  64. 64. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 commit 1 master branch
  65. 65. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 FileB ver 1 commit 1 master branch
  66. 66. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 FileB ver 1 commit 1 commit 2 master branch
  67. 67. Linux - Version Control Life Of File Under git FileA ver 0 FileB ver 0 FileB ver 1 commit 1 commit 2 master branch
  68. 68. Linux - Version Control Life Of File Under git FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1 FileB ver 2 commit 1 commit 2 commit 3 master branch
  69. 69. Linux - Version Control Topic Branch FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1 commit 1 commit 2 commit 3 master branch topic branch FileB ver 2
  70. 70. Linux - Version Control Topic Branch FileA ver 0 FileA ver 1FileB ver 0 FileB ver 1 FileB ver 2 commit 1 commit 2 commit 3 master branch FileA ver 2 commit 4 topic branch
  71. 71. Linux - Version Control Upstream Topic Branch: First time, Looks Needless
  72. 72. Linux - Version Control Upstream Topic Branch: First time, Looks Needless
  73. 73. Linux - Version Control Upstream Topic Branch: First time, Looks Needless
  74. 74. Linux - Version Control Upstream Local Repository Topic Branch: First time, Looks Needless clone!
  75. 75. Linux - Version Control Upstream Local Repository Topic Branch: First time, Looks Needless
  76. 76. Linux - Version Control Upstream Local Repository Topic Branch: First time, Looks Needless Pull me!
  77. 77. Linux - Version Control Upstream Local Repository Topic Branch: First time, Looks Needless Pull me! Thanks :)
  78. 78. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository
  79. 79. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository
  80. 80. Linux - Version Control Upstream Local Repository Topic Branch: What If Time Passes Pull me!
  81. 81. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository Pull me! Conflict Occurred. Why should I merge your change manually? :p
  82. 82. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository Pull me! Also, merging you manually will make history looks ugly
  83. 83. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository Pull me! Also, merging you manually will make history looks ugly If Upstream merge the change manually
  84. 84. Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository Pull me! Also, merging you manually will make history looks ugly If nobody use topic branch
  85. 85. Linux - Version Control Topic Branch: Again. Upstream Local Repository
  86. 86. Linux - Version Control Topic Branch: Get latest code while your change resides in topic branch safely Upstream Local Repository
  87. 87. Linux - Version Control Topic Branch: Ensure The Branch Can Be Merged Cleanly Upstream Local Repository
  88. 88. Linux - Version Control Topic Branch: Ensure The Branch Can Be Merged Cleanly Upstream Local Repository Pull me! Thanks! :)
  89. 89. Linux - Version Control ● Golden Rule ○ Patch Should Be Made From Latest Source Code $ git remote update $ git merge upstream/master ○ Your Change Should Live Inside Topic Branch $ git checkout -b <fix_the_foo>
  90. 90. Linux - Make a Patch Topic Branch Edit Code As You Prefer image src: http://secretgeek.net/image/real-programmers-code-in-binary.jpg
  91. 91. Linux - Make a Patch Topic Branch Edit Code As You Prefer Commit using -s option
  92. 92. Linux - Make a Patch Topic Branch Edit Code As You Prefer Commit using -s option commit 106edea2fe051df65a1a6231e9ffa2876cc391cc Author: Stephen Rothwell <sfr@canb.auug.org.au> Date: Fri Mar 1 15:52:01 2013 +1100 Add linux-next specific files for 20130301 Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
  93. 93. Linux - Make a Patch Signed-Off-By Means: (a) I created this change; or (b) Based this on a previous work with a compatible license; or (c) Provided to me by (a), (b), or (c) and not modified (d) This contribution is public.
  94. 94. Linux - Make a Patch Topic Branch Edit Code As You Prefer Commit using -s option $ git format-patch master..HEAD
  95. 95. Linux - Send Patch $ ./scripts/get_maintainer.pl <path to patch file>
  96. 96. Linux - Send Patch $ ./scripts/get_maintainer.pl <path to patch file> $ sudo apt-get install git-email
  97. 97. Linux - Send Patch $ ./scripts/get_maintainer.pl <path to patch file> $ sudo apt-get install git-email $ git config sendemail.smtpserver smtp.gmail.com $ git config sendemail.smtpserverport 587 $ git config sendemail.smtpencryption tls $ git config sendemail.smtpuser <your-email-address>
  98. 98. Linux - Send Patch $ ./scripts/get_maintainer.pl <path to patch file> $ sudo apt-get install git-email $ git config sendemail.smtpserver smtp.gmail.com $ git config sendemail.smtpserverport 587 $ git config sendemail.smtpencryption tls $ git config sendemail.smtpuser <your-email-address> $ git send-email --to <reviewer mail address> <path to patch file>
  99. 99. Linux - Get Review Just E-Mail
  100. 100. Linux - Get Review Just E-Mail Be Gentle Citizen
  101. 101. Linux - Get Review Just E-Mail Be Gentle Citizen Should Turn Off Rich-UX
  102. 102. Linux - Get Merged Notification Mail This is a note to let you know that I've just added the patch titled staging: csr: Remove struct CsrEvent to my staging git tree which can be found at git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git in the staging-next branch. The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.) The patch will also be merged in the next major kernel release during the merge window. If you have any questions about this process, please let me know.
  103. 103. Practice: AOSP Android Open Source Project
  104. 104. Practice: AOSP Android Open Source Project World's most closed Open Source Software
  105. 105. Practice: AOSP Android Open Source Project World's most closed Open Source Software Development Source Tree Is Not Open
  106. 106. AOSP: World's Most Closed OSS From community Google internal source treeAOSP From Googler Release
  107. 107. AOSP is an OSS Stack
  108. 108. AOSP: Tools AOSP Uses repo: Manages Multiple Project AOSP Use
  109. 109. AOSP: Tools AOSP Uses repo: Manages Multiple Project AOSP Use gerrit: Web Based UI AOSP Review System
  110. 110. AOSP: Contribution Process Get Source Code Agree Contributor Agreement Make Goal Write Patch Send Patch Merged / Abandoned Commented Get Review / Approval
  111. 111. AOSP: Agree Contributor Agreement https://android-review.googlesource.com/#/
  112. 112. AOSP: Agree Contributor Agreement
  113. 113. AOSP: Agree Contributor Agreement
  114. 114. AOSP: Agree Contributor Agreement
  115. 115. AOSP: Agree Contributor Agreement
  116. 116. AOSP: Agree Contributor Agreement
  117. 117. AOSP: Get Source Code $ repo init -u https://android.googlesource.com/platform/manifest $ repo sync
  118. 118. AOSP: Make Goal Bug Report Page http://code.google.com/p/android/issues/list Discussion Group https://groups.google.com/forum/?fromgroups#! forum/android-contrib
  119. 119. AOSP: Make Patch Topic Branch $ repo start <branch_name> <project path>
  120. 120. AOSP - Make Patch Topic Branch $ repo start <branch_name> <project path> Coding Style Guideline http://s.android.com/source/code-style.html
  121. 121. AOSP - Make Patch Topic Branch $ repo start <branch_name> <project path> Coding Style Guideline http://s.android.com/source/code-style.html $ git add -A $ git commit -s
  122. 122. AOSP - Send Patch $ repo upload
  123. 123. AOSP - Get Review
  124. 124. AOSP - Get Review Need Verification and Approval
  125. 125. AOSP - Get Review See git log to select Appropriate Reviewer
  126. 126. AOSP - Upload New Patchset Reviewer Want Modified Patch? $ git commit --amend $ repo upload
  127. 127. Summary
  128. 128. Summary Get Source Code
  129. 129. Summary Get Source Code Make Goal
  130. 130. Summary Get Source Code Make Goal Make Patch
  131. 131. Summary Get Source Code Make Goal Make Patch Send Patch
  132. 132. Summary Get Source Code Make Goal Make Patch Send Patch Get Review
  133. 133. LET IT GO The Code Never Bothered You Anyway
  134. 134. This work by SeongJae Park is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http: //creativecommons.org/licenses/by-sa/3.0/.

×