SlideShare a Scribd company logo
 LOXODATA
@l_avrot
DE-MYSTIFYING
CONTRIBUTING TO
POSTGRESQL
PGCON OTTAWA
2018-05-31
Lætitia AVROT
Loxodata
 LOXODATA
@l_avrot
WHO
Lætitia Avrot
PostgreSQL consultant and teacher
DBA PostgreSQL for more than 10 years
(and also Oracle and SQL Server)
@l_avrot
 LOXODATA
@l_avrot
LOXODATA
Company built on 3 essential pillars
PostgreSQL DevOps Cloud
 LOXODATA
@l_avrot
WHAT
Contributing to PostgreSQL
The PostgreSQL community
The PostgreSQL projects and tools
The story of my patch
How you can help
 LOXODATA
@l_avrot
THE COMMUNITY
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
The core team
5 members
Independant
Act as project managers
 LOXODATA
@l_avrot
Committers
More or less 15 members
Have git push permissions
Responsible for code quality
 LOXODATA
@l_avrot
Developpers
C code
Need to comply with
Need to comment (a lot)
style guide
 LOXODATA
@l_avrot
Reviewers
No need to be a dev
But technical background needed
If you don't understand it, others won't
 LOXODATA
@l_avrot
Translators
No need to be a dev
Software messages
Documentation
Others (press releases...)
 LOXODATA
@l_avrot
Advocacy
Promote PostgreSQL use
Share informations about PostgreSQL
Regional press contacts
 LOXODATA
@l_avrot
Associations
Small to large groups of users
National or international
 LOXODATA
@l_avrot
Local user groups
Local (Cities or Countries)
Mostly Meetups
 LOXODATA
@l_avrot
Local User Groups and Meetups
User gathering
Sharing thoughts, use cases, issues...
 LOXODATA
@l_avrot
Users
 LOXODATA
@l_avrot
PROJECTS
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
The road map
1 major release per year
1 minor release per quarter (minimum)
 LOXODATA
@l_avrot
Commitfests
1 month long
When most patches are commited
Needs a commitFest Manager
 LOXODATA
@l_avrot
commitfest.postgresql.org
 LOXODATA
@l_avrot
TOOLS
 LOXODATA
@l_avrot
Websites
 LOXODATA
@l_avrot
Websites
www.postgresql.org
wiki.postgresql.org
www.postgresql.org/docs
planet.postgresql.org
 LOXODATA
@l_avrot
Mailing-lists
Bug submission (use the )
pgsql-novice for newcommers
Special lists for associations and local groups
pgsql-hackers (be carefull, these guys are SO chatty)
form
 LOXODATA
@l_avrot
Habits about mailing-lists
Use
Reply to all
Be respectfull (but who needs that reminder ?)
inline replying
 LOXODATA
@l_avrot
Security issues :
security@postgresql.org
 LOXODATA
@l_avrot
IRC
Live chat with other PostgreSQL users
Don't ask to ask, just ask!
Chanel #postgresql on irc.freenode.net
 LOXODATA
@l_avrot
irc.freenode.net
 LOXODATA
@l_avrot
Twitter
Stay in touch with other PostgreSQL users
Brand new community account : @postgresql
 LOXODATA
@l_avrot
Other ways to stay in touch
Postgres
Postgres
Forums (as )
Slack
hangout
stackexchange
 LOXODATA
@l_avrot
Git
if you don't know git, don't be afraid
git clone
git pull (--rebase)
git diff
Use the PostgreSQL Wiki page
 LOXODATA
@l_avrot
MY FIRST PATCH
 LOXODATA
@l_avrot
What's a patch?
Source : Wikipedia
A patch is a piece of software designed to update a
computer program or its supporting data, to x or
improve it.
 LOXODATA
@l_avrot
My story
Missing section in ALTER TABLE documentation
Discussion with peers
Bug reporting
Patch creation with guru mentors
Patch submission
 LOXODATA
@l_avrot
Missing section in ALTER TABLE synopsys
 LOXODATA
@l_avrot
Creating the patch
PostgreSQL git clone
Copy/Paste missing section from CREATE TABLE to ALTER TABLE
Re-building documentation from source code
Building from source code
Building documentation from source code
 LOXODATA
@l_avrot
Finding where to make your modi cations
Use grep
Ask around!
Think (a little)
 LOXODATA
@l_avrot
Finding what you're looking for in directories
 LOXODATA
@l_avrot
A simple copy/paste
 LOXODATA
@l_avrot
git diff
With context
Use the wiki pageCreating clean patches
Format your git diff output
 LOXODATA
@l_avrot
But sometimes, even the best men don't follow instructions...
 LOXODATA
@l_avrot
git diff without context to the left,
git diff with context to the right
 LOXODATA
@l_avrot
12:27 $ git diff | filterdiff
--format=context > 
../patch/adding_table_constraint_
description_in_ALTER_TABLE_synopsis_v1.patch
 LOXODATA
@l_avrot
My submission
Use the Wiki pageSubmitting a patch
 LOXODATA
@l_avrot
The result
 LOXODATA
@l_avrot
Patch corrected
 LOXODATA
@l_avrot
Commit fest
 LOXODATA
@l_avrot
Oh no!
 LOXODATA
@l_avrot
And another section was missing!
 LOXODATA
@l_avrot
It's ready!
 LOXODATA
@l_avrot
And it's committed!
 LOXODATA
@l_avrot
... Now I can die without regret!
 LOXODATA
@l_avrot
What I learnt
Anyone can help (even me!)
You can ask for help, you will nd answers
It's OK to have multiple refactoring to do (Well, it's quite always the case)
 LOXODATA
@l_avrot
What next ?
Correcting some spelling errors in french translation
Studying the code
Observing revewing in January Commit fest
Proposed conf talks (and got accepted each time for now)
 LOXODATA
@l_avrot
HOW YOU CAN HELP
 LOXODATA
@l_avrot
Simple contributor
uses PostgreSQL
shares your experience
answers other users' questions
 LOXODATA
@l_avrot
Great Contributor
Creates/helps organizing user group/Meetup
Creates/helps organizing event
Invests time/money in PostgreSQL Associations
 LOXODATA
@l_avrot
Super Contributor
Reports bugs
Creates patches
Reviews patches
 LOXODATA
@l_avrot
CONCLUSION
 LOXODATA
@l_avrot
It's all about you
You're already a level 1 contributor
So, next step ?
 LOXODATA
@l_avrot
 LOXODATA
@l_avrot
Please join us!
 LOXODATA
@l_avrot
QUESTIONS ?
Special thanks to Dimitri, Greg, Vik, Robert and Alvaro for your patience and
time
Thanks to Frits Ahlefeldt, Freepik, Grzm, Alvaro Herrera, Pixabay and
Xkcd.com for illustrations and photos

More Related Content

Similar to De-mystifying contributing to PostgreSQL

De-mystifying contributing to PostgreSQL
De-mystifying contributing to PostgreSQLDe-mystifying contributing to PostgreSQL
De-mystifying contributing to PostgreSQL
Lætitia Avrot
 
Why are DBAs so grumpy all the time ?
Why are DBAs so grumpy all the time ?Why are DBAs so grumpy all the time ?
Why are DBAs so grumpy all the time ?
Lætitia Avrot
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
 
Javascript API based developments for improving your Alfresco experience
Javascript API based developments for improving your Alfresco experienceJavascript API based developments for improving your Alfresco experience
Javascript API based developments for improving your Alfresco experience
zylk net
 
Javascript API based customizations for improving your Alfresco experience
Javascript API based customizations for improving your Alfresco experienceJavascript API based customizations for improving your Alfresco experience
Javascript API based customizations for improving your Alfresco experience
Cesar Capillas
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
Andrii Soldatenko
 
Spl in the wild - zendcon2012
Spl in the wild - zendcon2012Spl in the wild - zendcon2012
Spl in the wild - zendcon2012
Elizabeth Smith
 
Using spl tools in your code
Using spl tools in your codeUsing spl tools in your code
Using spl tools in your code
Elizabeth Smith
 
Introduction to Git for developers
Introduction to Git for developersIntroduction to Git for developers
Introduction to Git for developers
Dmitry Guyvoronsky
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty Framework
OpenRestyCon
 
Become An OpenStack TripleO ATC - Easy As ABC
Become An OpenStack TripleO ATC - Easy As ABCBecome An OpenStack TripleO ATC - Easy As ABC
Become An OpenStack TripleO ATC - Easy As ABC
K Rain Leander
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
Red Hat Developers
 
Best practices tekx
Best practices tekxBest practices tekx
Best practices tekx
Lorna Mitchell
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The Future
Tracy Lee
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + Angular
Tracy Lee
 
10 things you're doing wrong in Talend
10 things you're doing wrong in Talend10 things you're doing wrong in Talend
10 things you're doing wrong in Talend
Datalytyx
 
10 things you're doing wrong in Talend
10 things you're doing wrong in Talend10 things you're doing wrong in Talend
10 things you're doing wrong in Talend
Matthew Schroeder
 
Kubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely togetherKubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely together
Edward Wilde
 
Spl in the wild
Spl in the wildSpl in the wild
Spl in the wild
Elizabeth Smith
 
Contributing to Apache Spark 3
Contributing to Apache Spark 3Contributing to Apache Spark 3
Contributing to Apache Spark 3
Holden Karau
 

Similar to De-mystifying contributing to PostgreSQL (20)

De-mystifying contributing to PostgreSQL
De-mystifying contributing to PostgreSQLDe-mystifying contributing to PostgreSQL
De-mystifying contributing to PostgreSQL
 
Why are DBAs so grumpy all the time ?
Why are DBAs so grumpy all the time ?Why are DBAs so grumpy all the time ?
Why are DBAs so grumpy all the time ?
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Javascript API based developments for improving your Alfresco experience
Javascript API based developments for improving your Alfresco experienceJavascript API based developments for improving your Alfresco experience
Javascript API based developments for improving your Alfresco experience
 
Javascript API based customizations for improving your Alfresco experience
Javascript API based customizations for improving your Alfresco experienceJavascript API based customizations for improving your Alfresco experience
Javascript API based customizations for improving your Alfresco experience
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
 
Spl in the wild - zendcon2012
Spl in the wild - zendcon2012Spl in the wild - zendcon2012
Spl in the wild - zendcon2012
 
Using spl tools in your code
Using spl tools in your codeUsing spl tools in your code
Using spl tools in your code
 
Introduction to Git for developers
Introduction to Git for developersIntroduction to Git for developers
Introduction to Git for developers
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty Framework
 
Become An OpenStack TripleO ATC - Easy As ABC
Become An OpenStack TripleO ATC - Easy As ABCBecome An OpenStack TripleO ATC - Easy As ABC
Become An OpenStack TripleO ATC - Easy As ABC
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
 
Best practices tekx
Best practices tekxBest practices tekx
Best practices tekx
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The Future
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + Angular
 
10 things you're doing wrong in Talend
10 things you're doing wrong in Talend10 things you're doing wrong in Talend
10 things you're doing wrong in Talend
 
10 things you're doing wrong in Talend
10 things you're doing wrong in Talend10 things you're doing wrong in Talend
10 things you're doing wrong in Talend
 
Kubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely togetherKubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely together
 
Spl in the wild
Spl in the wildSpl in the wild
Spl in the wild
 
Contributing to Apache Spark 3
Contributing to Apache Spark 3Contributing to Apache Spark 3
Contributing to Apache Spark 3
 

Recently uploaded

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 

Recently uploaded (20)

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 

De-mystifying contributing to PostgreSQL