SlideShare a Scribd company logo
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.
How to Contribute Code to MySQL?
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

More Related Content

What's hot (20)

PDF
Ansible Intro - June 2015 / Ansible Barcelona User Group
Orestes Carracedo
 
PDF
Getting Started with Couchbase Ruby
Sergey Avseyev
 
PPT
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
PDF
Webpack
DataArt
 
ODP
Ensemble oscon 2011
OSCON Byrum
 
PDF
Webpack: your final module bundler
Andrea Giannantonio
 
PDF
Ansible
Vishal Yadav
 
KEY
Rails + Sencha = Netzke
beffa
 
PPTX
N:1 Replication meets MHA
do_aki
 
PDF
Installing & Setting Up WordPress
Gravitational FX
 
PDF
Chef
Adrian Moisey
 
PPTX
WordPress + NGINX Best Practices with EasyEngine
NGINX, Inc.
 
PDF
Chef
Juri Timošin
 
PDF
AnsibleFest 2014 - Role Tips and Tricks
jimi-c
 
ODP
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
aaroncouch
 
PDF
Getting Started with Ansible
Ahmed AbouZaid
 
PDF
Using Backbone.js with Drupal 7 and 8
Ovadiah Myrgorod
 
PDF
Ansible - Hands on Training
Mehmet Ali Aydın
 
PPTX
Drupal, varnish, esi - Toulouse November 2
Marcus Deglos
 
PDF
Lessons Learned at Wakoopa
Menno van der Sman
 
Ansible Intro - June 2015 / Ansible Barcelona User Group
Orestes Carracedo
 
Getting Started with Couchbase Ruby
Sergey Avseyev
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
Webpack
DataArt
 
Ensemble oscon 2011
OSCON Byrum
 
Webpack: your final module bundler
Andrea Giannantonio
 
Ansible
Vishal Yadav
 
Rails + Sencha = Netzke
beffa
 
N:1 Replication meets MHA
do_aki
 
Installing & Setting Up WordPress
Gravitational FX
 
WordPress + NGINX Best Practices with EasyEngine
NGINX, Inc.
 
AnsibleFest 2014 - Role Tips and Tricks
jimi-c
 
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
aaroncouch
 
Getting Started with Ansible
Ahmed AbouZaid
 
Using Backbone.js with Drupal 7 and 8
Ovadiah Myrgorod
 
Ansible - Hands on Training
Mehmet Ali Aydın
 
Drupal, varnish, esi - Toulouse November 2
Marcus Deglos
 
Lessons Learned at Wakoopa
Menno van der Sman
 

Similar to How to Contribute Code to MySQL? (20)

PDF
Mysql
Raghu nath
 
PDF
"Advanced MySQL 5 Tuning" by Michael Monty Widenius @ eLiberatica 2007
eLiberatica
 
PDF
My sql crashcourse_intro_kdl
sqlhjalp
 
PPS
Introduction to Mysql
Tushar Chauhan
 
PDF
MySQL Guide for Beginners
Dainis Graveris
 
PDF
My S Q L Introduction for 1 day training
Ivan Tu
 
PDF
My sql introduction for Bestcom
Ivan Tu
 
PDF
MySQL Reference Manual
webhostingguy
 
PPT
Mysql
guest817344
 
PDF
MySQL Reference Manual
webhostingguy
 
DOC
My sql technical reference manual
Mir Majid
 
PDF
MySQL Backup and Security Best Practices
Lenz Grimmer
 
PDF
20090425mysqlslides 12593434194072-phpapp02
Vinamra Mittal
 
PDF
Mysql In A Nutshell In A Nutshell Oreilly Second Edition Russell Dyer
atchaaslaney
 
PDF
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
aistdah4598
 
PDF
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
dpc
 
PDF
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
kilonboache
 
PPT
Mysql
SHC
 
PPT
Mysqlppt3510
Anuja Lad
 
PPT
Mysqlppt3510
Khan Rahimeen
 
Mysql
Raghu nath
 
"Advanced MySQL 5 Tuning" by Michael Monty Widenius @ eLiberatica 2007
eLiberatica
 
My sql crashcourse_intro_kdl
sqlhjalp
 
Introduction to Mysql
Tushar Chauhan
 
MySQL Guide for Beginners
Dainis Graveris
 
My S Q L Introduction for 1 day training
Ivan Tu
 
My sql introduction for Bestcom
Ivan Tu
 
MySQL Reference Manual
webhostingguy
 
MySQL Reference Manual
webhostingguy
 
My sql technical reference manual
Mir Majid
 
MySQL Backup and Security Best Practices
Lenz Grimmer
 
20090425mysqlslides 12593434194072-phpapp02
Vinamra Mittal
 
Mysql In A Nutshell In A Nutshell Oreilly Second Edition Russell Dyer
atchaaslaney
 
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
aistdah4598
 
DPC2007 MySQL Stored Routines for PHP Developers (Roland Bouman)
dpc
 
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
kilonboache
 
Mysql
SHC
 
Mysqlppt3510
Anuja Lad
 
Mysqlppt3510
Khan Rahimeen
 
Ad

Recently uploaded (20)

PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Ad

How to Contribute Code to MySQL?

  • 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 ?
  • 3. AGENDA : CONTRIBUTING Why ? How ? Getting Started Resources
  • 4. WHY CONTRIBUTE ? Learn ! Get Famous! Land the job you want! Get Rich! Feel Good! Have Fun!
  • 6. HOW TO CONTRIBUTE ? Community Contribution Program http://forge.mysql.com/wiki/Community_Contributions Quality Contribution Program http://dev.mysql.com/programs/qualitycontribution.html
  • 7. 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]
  • 8. 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
  • 9. 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
  • 10. FOR STUDENTS: GOOGLE SUMMER OF CODE http://forge.mysql.com/wiki/SummerOfCode2008Ideas
  • 11. CODING GUIDELINES : http://forge.mysql.com/wiki/MySQL_Internals_Coding_Guidelines No Tabs No Carriage Returns Use 2 spaces for indentation Etc.
  • 14. REFERENCE MANUAL … Excellent Online Reference Manual : http://dev.mysql.com/doc/refman/6.0/en/index.html Annotated with User Comments !
  • 15. GETTING STARTED … Bazaar – Version Control System http://bazaar-vcs.org/ Why Bazaar ? cvs, svn, hg, git, bazaar !
  • 16. 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]
  • 17. 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
  • 18. 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
  • 19. 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:[email protected] Semester Break now – Classes to Resume from Sep 4th
  • 20. 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
  • 21. MYSQL INTERNALS Checkout this link at forge.mysql.com : http://forge.mysql.com/wiki/MySQL_Internals MySQL Internals – Book By Sasha Pachev
  • 22. SOURCE CODE CROSS REFERENCE Cscope Doxygen Opengrok Lxr
  • 23. 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
  • 24. MYSQL WITH NETBEANS Import Source Code Assistant : Specify Include Directories, CFLAGS Complete IDE – Integrated Editing, Debugging Uses Gdb or Dbx
  • 25. 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
  • 26. 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
  • 27. THAVA ALAGU Blog: http://blogs.sun.com/thava/ [email_address] Twitter: thavamuni July 2008 Q & A