• Save
Let the contribution begin
Upcoming SlideShare
Loading in...5
×
 

Let the contribution begin

on

  • 390 views

Describe how to contribute to open source projects.

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

Statistics

Views

Total Views
390
Views on SlideShare
387
Embed Views
3

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Let the contribution begin Let the contribution begin Presentation Transcript

  • 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/2ggLbFod4II/s1600/newbie.png
  • 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
  • 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
  • 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+jesus+biblia+testamento+odio+furor+col era+rabia+evangelios+castigos+desolacion.jpg Two Kinds Of Software At the Beginning, There was Software
  • 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
  • Two Kinds Of Software Heroes Thought It Must Be Free / Open Source image src: http://foro.ubuntu-guia.com/file/n3879119/rms-linus.jpg
  • 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
  • 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__aU/s1600/Maggie-million-dollar-baby-18619084-720-480.jpg
  • Why Contribution Honor Career Training Upstream Development image src: http://dustinkirkland.files.wordpress.com/2009/07/upstream.jpg
  • Why Contribution Honor Career Training Upstream Development To Change The World image src: http://media.focusonthefamily.com/blogmedia/images/jim-daly/changetheworld.jpg
  • 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
  • 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 Goal
  • 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/D20070820/326879_GVBMZUNW3XLLR1G7O4RLQN6HXPCKKK_kick-boxing- cat_H171540_L.jpg
  • 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 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>
  • 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>
  • 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>
  • 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/1794549696/SourceTree_newlogo.png
  • 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 Stephen Rothwell Manages
  • 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
  • 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_finalfinal.c
  • 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
  • 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 2 commit 3 master branch
  • 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
  • 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
  • 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 I merge your change manually? :p
  • Linux - Version Control Topic Branch: What If Time Passes Upstream Local Repository Pull me! Also, merging you manually will make history looks ugly
  • 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
  • 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
  • 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 Repository
  • 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 upstream/master ○ Your Change Should Live Inside Topic Branch $ git checkout -b <fix_the_foo>
  • Linux - Make a Patch Topic Branch Edit Code As You Prefer image src: http://secretgeek.net/image/real-programmers-code-in-binary.jpg
  • 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 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>
  • 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.
  • 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 sendemail.smtpserver smtp.gmail.com $ git config sendemail.smtpserverport 587 $ git config sendemail.smtpencryption tls $ git config sendemail.smtpuser <your-email-address>
  • 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>
  • 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: 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.
  • 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 Commented Get Review / Approval
  • 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/forum/?fromgroups#! forum/android-contrib
  • 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/source/code-style.html
  • 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
  • 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 copy of this license, visit http: //creativecommons.org/licenses/by-sa/3.0/.