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

ODP
What is new in PHP 5.5 - HuyenNT
PDF
Compass VS Less
PPTX
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
PDF
Nuxt.js - Introduction
PPTX
ODP
ansible why ?
PDF
Deploying Rails Applications with Capistrano
PDF
MySQL for Beginners - part 1
What is new in PHP 5.5 - HuyenNT
Compass VS Less
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
Nuxt.js - Introduction
ansible why ?
Deploying Rails Applications with Capistrano
MySQL for Beginners - part 1

What's hot (20)

PDF
Ansible Intro - June 2015 / Ansible Barcelona User Group
PDF
Getting Started with Couchbase Ruby
PPT
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
PDF
Webpack
ODP
Ensemble oscon 2011
PDF
Webpack: your final module bundler
PDF
Ansible
KEY
Rails + Sencha = Netzke
PPTX
N:1 Replication meets MHA
PDF
Installing & Setting Up WordPress
PDF
PPTX
WordPress + NGINX Best Practices with EasyEngine
PDF
PDF
AnsibleFest 2014 - Role Tips and Tricks
ODP
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
PDF
Getting Started with Ansible
PDF
Using Backbone.js with Drupal 7 and 8
PDF
Ansible - Hands on Training
PPTX
Drupal, varnish, esi - Toulouse November 2
PDF
Lessons Learned at Wakoopa
Ansible Intro - June 2015 / Ansible Barcelona User Group
Getting Started with Couchbase Ruby
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Webpack
Ensemble oscon 2011
Webpack: your final module bundler
Ansible
Rails + Sencha = Netzke
N:1 Replication meets MHA
Installing & Setting Up WordPress
WordPress + NGINX Best Practices with EasyEngine
AnsibleFest 2014 - Role Tips and Tricks
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Getting Started with Ansible
Using Backbone.js with Drupal 7 and 8
Ansible - Hands on Training
Drupal, varnish, esi - Toulouse November 2
Lessons Learned at Wakoopa
Ad

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

PPTX
Azure from scratch part 4
PDF
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
PPTX
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
PPTX
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
PDF
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
PDF
SULTHAN's PHP, MySQL & wordpress
PDF
MySQL Shell for Database Engineers
PDF
MySQL on Docker and Kubernetes
PDF
Word press, the automated way
PDF
Cloud-Native Builds & Deployments in Bitbucket Pipelines
PPT
Mysql ppt
PPT
Drupal @ MediaCamp Athens
ODP
Itb session v_memcached
PDF
Dependencies Managers in C/C++. Using stdcpp 2014
PDF
Acquia BLT for the Win, or How to speed up the project setup, development an...
PPT
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
PDF
Writing & Sharing Great Modules - Puppet Camp Boston
PDF
Porting Rails Apps to High Availability Systems
PPTX
Bugzilla Installation Process
Azure from scratch part 4
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
Powering Microservices with Docker, Kubernetes, Kafka, and MongoDB
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
SULTHAN's PHP, MySQL & wordpress
MySQL Shell for Database Engineers
MySQL on Docker and Kubernetes
Word press, the automated way
Cloud-Native Builds & Deployments in Bitbucket Pipelines
Mysql ppt
Drupal @ MediaCamp Athens
Itb session v_memcached
Dependencies Managers in C/C++. Using stdcpp 2014
Acquia BLT for the Win, or How to speed up the project setup, development an...
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
Writing & Sharing Great Modules - Puppet Camp Boston
Porting Rails Apps to High Availability Systems
Bugzilla Installation Process
Ad

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Electronic commerce courselecture one. Pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Network Security Unit 5.pdf for BCA BBA.
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Programs and apps: productivity, graphics, security and other tools
Big Data Technologies - Introduction.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
Electronic commerce courselecture one. Pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Programs and apps: productivity, graphics, security and other tools

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:your_password@myuniv.mysql.com 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