THAVA  ALAGU Staff Engineer,  Database Group, Sun Microsystems,  Bangalore [email_address] http://blogs.sun.com/thava/ Jul...
<ul><li>Welcome ! </li></ul>
AGENDA  :  CONTRIBUTING  <ul><li>Why  ?  </li></ul><ul><li>How  ? </li></ul><ul><li>Getting Started </li></ul><ul><li>Reso...
WHY CONTRIBUTE ? <ul><li>Learn ! </li></ul><ul><li>Get Famous! </li></ul><ul><li>Land the job you want! </li></ul><ul><li>...
ARCHITECTURE OVERVIEW
HOW TO CONTRIBUTE ? <ul><li>Community Contribution Program </li></ul><ul><ul><li>http://forge.mysql.com/wiki/Community_Con...
COMMUNITY CONTRIBUTION PROGRAM <ul><li>Pickup Open Worklogs </li></ul><ul><ul><li>http://forge.mysql.com/wiki/ComContribut...
COMMUNITY CONTRIBUTION  PROGRAM…  (CONTD) <ul><li>Sign Contributor License Agreement online </li></ul><ul><li>Submit patch...
QUALITY CONTRIBUTION PROGRAM <ul><li>Bug Reports, Test Cases, Code Patches </li></ul><ul><li>50 Points - Basic Contributor...
FOR STUDENTS:    GOOGLE SUMMER OF CODE <ul><ul><li>http://forge.mysql.com/wiki/SummerOfCode2008Ideas </li></ul></ul>
CODING GUIDELINES : <ul><li>http://forge.mysql.com/wiki/MySQL_Internals_Coding_Guidelines </li></ul><ul><li>No Tabs </li><...
ARCHITECTURE OVERVIEW
REFERENCE MANUAL … <ul><li>Excellent Online Reference Manual : </li></ul><ul><li>http://dev.mysql.com/doc/refman/6.0/en/in...
GETTING STARTED … <ul><li>Bazaar – Version Control System </li></ul><ul><ul><li>http://bazaar-vcs.org/ </li></ul></ul><ul>...
BAZAAR … <ul><li>Distributed Version Control System </li></ul><ul><li>Backed by Canonical Ltd, the Ubuntu Linux Company </...
BUILDING MYSQL SOURCE … <ul><li>Checkout Source : </li></ul><ul><ul><li>bzr branch lp:mysql-server/6.0 </li></ul></ul><ul>...
MAILING LISTS … <ul><li>http://lists.mysql.com </li></ul><ul><li>internals   - For dev questions </li></ul><ul><li>announc...
MYSQL UNIVERSITY <ul><li>http://forge.mysql.com/wiki/MySQL_University </li></ul><ul><li>Every Thursday at 15:00 CET, 7:30 ...
IRC – INTERNET RELAY CHAT <ul><li>http://forge.mysql.com/wiki/IRC </li></ul><ul><li>IRC – server:  irc.freenode.net , chan...
MYSQL INTERNALS <ul><li>Checkout this link at forge.mysql.com : </li></ul><ul><ul><li>http://forge.mysql.com/wiki/MySQL_In...
SOURCE CODE CROSS  REFERENCE <ul><li>Cscope </li></ul><ul><li>Doxygen </li></ul><ul><li>Opengrok </li></ul><ul><li>Lxr </l...
CSCOPE <ul><li>C symbol: mysql_insert  </li></ul><ul><li>File  Function  Line  </li></ul><ul><li>0  sql_insert.cc  <global...
MYSQL WITH NETBEANS  <ul><li>Import Source  </li></ul><ul><li>Code Assistant : </li></ul><ul><ul><li>Specify Include Direc...
RUNNING DEBUGGER WITH MYSQL… <ul><li>Command Line gdb/dbx for best control </li></ul><ul><li>How to Run MySQL With Debugge...
MORE RESOURCES … <ul><li>MySQL Forge:  Resources for community : </li></ul><ul><ul><li>http://forge.mysql.com </li></ul></...
THAVA ALAGU Blog:  http://blogs.sun.com/thava/ [email_address] Twitter: thavamuni July 2008 Q & A
Upcoming SlideShare
Loading in …5
×

How to Contribute Code to MySQL?

3,170
-1

Published on

Describes steps involved about how to contribute code to MySQL and getting started.
-thava
http://blogs.sun.com/thava

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,170
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

How to Contribute Code to MySQL?

  1. 1. THAVA ALAGU Staff Engineer, Database Group, Sun Microsystems, Bangalore [email_address] http://blogs.sun.com/thava/ July 2008 HOW TO CONTRIBUTE CODE TO MYSQL ?
  2. 2. <ul><li>Welcome ! </li></ul>
  3. 3. AGENDA : CONTRIBUTING <ul><li>Why ? </li></ul><ul><li>How ? </li></ul><ul><li>Getting Started </li></ul><ul><li>Resources </li></ul>
  4. 4. WHY CONTRIBUTE ? <ul><li>Learn ! </li></ul><ul><li>Get Famous! </li></ul><ul><li>Land the job you want! </li></ul><ul><li>Get Rich! </li></ul><ul><li>Feel Good! </li></ul><ul><li>Have Fun! </li></ul>
  5. 5. ARCHITECTURE OVERVIEW
  6. 6. HOW TO CONTRIBUTE ? <ul><li>Community Contribution Program </li></ul><ul><ul><li>http://forge.mysql.com/wiki/Community_Contributions </li></ul></ul><ul><li>Quality Contribution Program </li></ul><ul><ul><li>http://dev.mysql.com/programs/qualitycontribution.html </li></ul></ul>
  7. 7. COMMUNITY CONTRIBUTION PROGRAM <ul><li>Pickup Open Worklogs </li></ul><ul><ul><li>http://forge.mysql.com/wiki/ComContribution_Worklog </li></ul></ul><ul><li>Pickup Open Bugs </li></ul><ul><ul><li>http://forge.mysql.com/wiki/ComContribution_Bugs </li></ul></ul><ul><li>Send e-mail to [email_address] </li></ul><ul><li>Get MySQL Mentor assigned for the task </li></ul><ul><li>Subscribe to [email_address] </li></ul><ul><li>Subscribe to [email_address] </li></ul>
  8. 8. COMMUNITY CONTRIBUTION PROGRAM… (CONTD) <ul><li>Sign Contributor License Agreement online </li></ul><ul><li>Submit patch to [email_address] </li></ul><ul><li>Included in next community preview </li></ul><ul><li>Regression Bugs => Assigned Free for you! </li></ul><ul><li>Everything is good … </li></ul><ul><li>Included in server version </li></ul>
  9. 9. QUALITY CONTRIBUTION PROGRAM <ul><li>Bug Reports, Test Cases, Code Patches </li></ul><ul><li>50 Points - Basic Contributors. Enterprise Basic </li></ul><ul><li>200 Points - Enterprise Silver </li></ul><ul><li>500 Points - Enterprise Gold </li></ul><ul><li>1000 Points - Enterprise Platinum </li></ul><ul><li>What is Enterprise Edition ? </li></ul><ul><li>http://www.mysql.com/products/which-edition.html </li></ul>
  10. 10. FOR STUDENTS: GOOGLE SUMMER OF CODE <ul><ul><li>http://forge.mysql.com/wiki/SummerOfCode2008Ideas </li></ul></ul>
  11. 11. CODING GUIDELINES : <ul><li>http://forge.mysql.com/wiki/MySQL_Internals_Coding_Guidelines </li></ul><ul><li>No Tabs </li></ul><ul><li>No Carriage Returns </li></ul><ul><li>Use 2 spaces for indentation </li></ul><ul><li>Etc. </li></ul>
  12. 12.
  13. 13. ARCHITECTURE OVERVIEW
  14. 14. REFERENCE MANUAL … <ul><li>Excellent Online Reference Manual : </li></ul><ul><li>http://dev.mysql.com/doc/refman/6.0/en/index.html </li></ul><ul><li>Annotated with User Comments ! </li></ul>
  15. 15. GETTING STARTED … <ul><li>Bazaar – Version Control System </li></ul><ul><ul><li>http://bazaar-vcs.org/ </li></ul></ul><ul><li>Why Bazaar ? </li></ul><ul><li>cvs, svn, hg, git, bazaar ! </li></ul>
  16. 16. BAZAAR … <ul><li>Distributed Version Control System </li></ul><ul><li>Backed by Canonical Ltd, the Ubuntu Linux Company </li></ul><ul><li>MySQL hosted at : </li></ul><ul><ul><li>https://launchpad.net/mysql-server </li></ul></ul><ul><li>Getting Started with Bazaar for MySQL : </li></ul><ul><li>http://dev.mysql.com/tech-resources/articles/getting-started-with-bazaar-for-mysql.html </li></ul><ul><li>Submitting Patch: </li></ul><ul><ul><li>bzr diff > mybug.patch [ changes not yet committed ] </li></ul></ul><ul><ul><li>Send to: [email_address] </li></ul></ul>
  17. 17. BUILDING MYSQL SOURCE … <ul><li>Checkout Source : </li></ul><ul><ul><li>bzr branch lp:mysql-server/6.0 </li></ul></ul><ul><li>Follow Instructions in Reference Manual: </li></ul><ul><li>http://dev.mysql.com/doc/refman/5.1/en/installing-source.html </li></ul><ul><ul><li>./BUILD/compile-pentium-debug --prefix=~/mysql6/install </li></ul></ul><ul><ul><li>make install </li></ul></ul><ul><ul><li>make test </li></ul></ul>
  18. 18. MAILING LISTS … <ul><li>http://lists.mysql.com </li></ul><ul><li>internals - For dev questions </li></ul><ul><li>announce – Low traffic, announcements only </li></ul><ul><li>mysql </li></ul><ul><li>bugs </li></ul><ul><li>gui-tools – Administrator and Query browser </li></ul><ul><li>java – JDBC Drivers, MySQL Connector/J </li></ul><ul><li>benchmarks </li></ul><ul><li>cluster </li></ul><ul><li>myodbc, dotnet, perl, plusplus, win32, packagers </li></ul>
  19. 19. MYSQL UNIVERSITY <ul><li>http://forge.mysql.com/wiki/MySQL_University </li></ul><ul><li>Every Thursday at 15:00 CET, 7:30 PM IST, </li></ul><ul><ul><li>1 hr session </li></ul></ul><ul><li>Recorded Sessions Available Online </li></ul><ul><li>Web – MySQL_University#Upcoming_Sessions </li></ul><ul><li>IRC – server: irc.freenode.net , channel: #mysql-university </li></ul><ul><li>Voice stream – http://your_nickname:your_password@myuniv.mysql.com </li></ul><ul><li>Semester Break now – Classes to Resume from Sep 4th </li></ul>
  20. 20. IRC – INTERNET RELAY CHAT <ul><li>http://forge.mysql.com/wiki/IRC </li></ul><ul><li>IRC – server: irc.freenode.net , channels </li></ul><ul><ul><li>#mysql , #mysql-dev, #workbench </li></ul></ul><ul><li>Xchat - popular IRC Client </li></ul><ul><li>Web access for IRC using Public Free Servers: </li></ul><ul><ul><li>E.g. http://mibbit.com </li></ul></ul>
  21. 21. MYSQL INTERNALS <ul><li>Checkout this link at forge.mysql.com : </li></ul><ul><ul><li>http://forge.mysql.com/wiki/MySQL_Internals </li></ul></ul><ul><li>MySQL Internals – Book By Sasha Pachev </li></ul>
  22. 22. SOURCE CODE CROSS REFERENCE <ul><li>Cscope </li></ul><ul><li>Doxygen </li></ul><ul><li>Opengrok </li></ul><ul><li>Lxr </li></ul>
  23. 23. CSCOPE <ul><li>C symbol: mysql_insert </li></ul><ul><li>File Function Line </li></ul><ul><li>0 sql_insert.cc <global> 552 bool mysql_insert(THD *thd, </li></ul><ul><li>Find this C symbol: </li></ul><ul><li>Find this global definition: mysql_insert </li></ul><ul><li>Find functions called by this function: </li></ul><ul><li>Find functions calling this function: </li></ul><ul><li>Find this text string: </li></ul><ul><li>Change this text string: </li></ul><ul><li>Find this egrep pattern: </li></ul><ul><li>Find this file: </li></ul><ul><li>Find files #including this file: </li></ul><ul><li>Find all function definitions: </li></ul><ul><li>Find all symbol assignments: </li></ul>cscope -buq -I. -Iinclude -Isql -Imysys ... -i ./cscope.files cscope -d
  24. 24. MYSQL WITH NETBEANS <ul><li>Import Source </li></ul><ul><li>Code Assistant : </li></ul><ul><ul><li>Specify Include Directories, CFLAGS </li></ul></ul><ul><li>Complete IDE – Integrated Editing, Debugging </li></ul><ul><li>Uses Gdb or Dbx </li></ul>
  25. 25. RUNNING DEBUGGER WITH MYSQL… <ul><li>Command Line gdb/dbx for best control </li></ul><ul><li>How to Run MySQL With Debugger : </li></ul><ul><li>http://forge.mysql.com/wiki/How_to_Run_MySQL_With_a_Debugger </li></ul><ul><li>Are you Solaris truss fan ? On linux, use : </li></ul><ul><ul><li>strace -e trace=file progname # Trace syscalls </li></ul></ul><ul><ul><li>ltrace -e funcname -l libname progname # Trace lib </li></ul></ul>
  26. 26. MORE RESOURCES … <ul><li>MySQL Forge: Resources for community : </li></ul><ul><ul><li>http://forge.mysql.com </li></ul></ul><ul><li>MySQL Forums: </li></ul><ul><ul><li>http://forums.mysql.com </li></ul></ul><ul><ul><li>Lots of groups including various topics like migration, all connectors, workbench, individual storage engines, etc. </li></ul></ul><ul><ul><li>Lot more forums than mailing lists </li></ul></ul><ul><li>Planet MySQL – Blog aggregator </li></ul><ul><ul><li>http://planetmysql.org </li></ul></ul><ul><li>Developer Zone: Developer Articles, etc. </li></ul><ul><ul><li>http://dev.mysql.com </li></ul></ul>
  27. 27. THAVA ALAGU Blog: http://blogs.sun.com/thava/ [email_address] Twitter: thavamuni July 2008 Q & A
  1. A particular slide catching your eye?

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

×