How to Contribute Code to MySQL?
Upcoming SlideShare
Loading in...5
×
 

How to Contribute Code to MySQL?

on

  • 4,085 views

Describes steps involved about how to contribute code to MySQL and getting started.

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

Statistics

Views

Total Views
4,085
Views on SlideShare
4,008
Embed Views
77

Actions

Likes
1
Downloads
25
Comments
0

4 Embeds 77

http://blogs.oracle.com 47
http://blogs.sun.com 19
https://blogs.oracle.com 7
https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

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

How to Contribute Code to MySQL? How to Contribute Code to MySQL? Presentation Transcript

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