$30 off During Our Annual Pro Sale. View Details »

How to Contribute to an Open Source Project Like Postgres | Claire Giordano | PGConf NYC 2022

How to Contribute to an Open Source Project Like Postgres | Claire Giordano | PGConf NYC 2022

At PG Conf NYC 2022, Claire Giordano of the Citus and Postgres team at Microsoft presented this talk to shine a light on the different ways can you contribute to the PostgreSQL open source project. From patches to docs to translations to advocacy to demos—as well as sharing what you’ve learned as a Postgres user story—there are many avenues to contribute. And just like sailboat racing—in which every single person in the crew influences the final score, no matter their role—all these different types of contributions to Postgres are valuable.

This talk explores the different ways to contribute to Postgres, with tips on how and where to get started, too. If you are new to Postgres and are trying to figure out how to participate, this talk is for you.

Claire Giordano

September 22, 2022
Tweet

More Decks by Claire Giordano

Other Decks in Technology

Transcript

  1. @clairegiordano
    Claire Giordano
    @clairegiordano • @citusdata • @AzureDBPostgres
    HOW TO CONTRIBUTE TO
    AN OPEN SOURCE PROJECT
    LIKE POSTGRES?

    View Slide

  2. @clairegiordano
    You use
    Postgres
    Who is this Postgres talk for?

    View Slide

  3. @clairegiordano
    You use
    Postgres
    Who is this Postgres talk for?
    New job in a
    Postgres
    company!

    View Slide

  4. @clairegiordano
    You use
    Postgres
    Who is this Postgres talk for?
    New job in a
    Postgres
    company!
    Job search,
    looking for a
    “side gig”

    View Slide

  5. @clairegiordano
    You use
    Postgres
    Who is this Postgres talk for?
    New job in a
    Postgres
    company!
    Job search,
    looking for a
    “side gig”
    You have a PG
    problem to
    solve, some kind
    of “itch”

    View Slide

  6. @clairegiordano
    You use
    Postgres
    Who is this Postgres talk for?
    New job in a
    Postgres
    company!
    Job search,
    looking for a
    “side gig”
    You have a PG
    problem to
    solve, some kind
    of “itch”
    You find
    databases
    interesting,
    want to hack on
    Postgres to
    learn

    View Slide

  7. @clairegiordano
    Once Upon A Time...
    5 years ago, I was in
    the “new job in a
    Postgres company”
    group

    View Slide

  8. @clairegiordano
    @clairegiordano
    A bit about me

    View Slide

  9. @clairegiordano
    Before diving in, things about Postgres culture
    Code of conduct !!
    postgresql.org/about
    /policies/coc/
    Mailing list culture
    postgresql.org/list/
    pgsql-hackers
    pgsql-general
    pgsql-docs
    pgsql-performance
    pgsql-bugs
    pgsql-novice

    View Slide

  10. @clairegiordano
    Also: “Mailing List etiquette” is a thing
    Mailing list etiquette is a thing
    Be respectful, avoid personal attacks
    Remove confidentiality notices (all emails are public*)
    Reply-all
    No HTML-enriched email
    Bottom post and inline-reply
    Take extra time to communicate clearly
    Source: wiki.postgresql.org/wiki/Mailing_Lists

    View Slide

  11. @clairegiordano
    Ways to Contribute to Postgres—in today’s talk
    11. Translations
    12. Update docs
    13. Contribute code
    Code
    6. Doc feedback
    7. Report bugs
    8. User Test new releases
    9. Performance testing
    10. Patch review
    Feedback is Gold
    1. User stories
    2. Video Demos
    3. Promote
    4. Meetups
    5. Answer questions &
    share your experience
    Sharing is Caring
    @clairegiordano

    View Slide

  12. @clairegiordano
    Just like racing
    sailboats
    All these different ways of
    contributing to Postgres add value
    Source: Livestream of Rolex Big Boats Racing Series, Sep 2021
    (my son was on the crew!)

    View Slide

  13. @clairegiordano
    Josh Berkus gave a similar talk in ~2013
    Source: Josh Berkus on GitHub: https://jberkus.github.io/pdf_presos/50_ways.pdf

    View Slide

  14. @clairegiordano
    This is how Josh drew ”Contribution Pie” in 2013

    View Slide

  15. @clairegiordano
    Ways to Contribute to Postgres—in today’s talk
    11. Translations
    12. Update docs
    13. Contribute code
    Code
    6. Doc feedback
    7. Report bugs
    8. User Test new releases
    9. Performance testing
    10. Patch review
    Feedback is Gold
    1. User stories
    2. Video Demos
    3. Promote
    4. Meetups
    5. Answer questions &
    share your experience
    Sharing is Caring
    @clairegiordano

    View Slide

  16. @clairegiordano
    Tell your user stories
    • Blog posts
    • Talks
    • Podcast interviews
    • Twitter threads
    • Official “case studies"
    1

    View Slide

  17. @clairegiordano
    TIPS for telling user stories
    • Blog posts
    • Talks
    • Podcast interviews
    • Twitter threads
    • Official “case studies”
    1. Headlines
    2. Scannability
    3. Diagrams
    4. Tables
    5. Bullets
    6. Code blocks
    7. Planet Postgres
    REMEMBER:
    1

    View Slide

  18. @clairegiordano
    Interview your users & tell their stories
    Example: Pouria
    Hadjibagheri of UKHSA
    co-authored this on
    implementation of UK
    COVID-19 dashboard
    ~80.2 K views
    Source: aka.ms/blog-ukcovid19-dashboard-citus
    1

    View Slide

  19. @clairegiordano
    2
    Use Video to demo how
    you use Postgres
    Some people learn better via
    video
    Source: aka.ms/how-citus-distributes-postgres

    View Slide

  20. @clairegiordano
    2
    Good video metadata
    will help your video get
    discovered
    • titles should be compelling
    • frontload w/ most important
    words (YouTube truncates titles
    @ 70 chars)
    Thumbnail
    Description
    3 hashtags
    Bookmarks
    Links
    Chapters
    Title

    View Slide

  21. @clairegiordano
    3
    Promoting reaches more ppl, grows ecosystem

    View Slide

  22. @clairegiordano
    So many PG things to
    signal boost
    your learnings,
    user stories,
    meetups,
    talks attended,
    TIL, QOTD, OH,
    how-to,
    new releases
    3

    View Slide

  23. @clairegiordano
    Where to promote &
    share?
    Twitter
    Slack
    LinkedIn
    Reddit
    Discord
    IRC
    3

    View Slide

  24. @clairegiordano
    24
    Source: @PostgreSQLNL, @OptimaDataBV
    z
    Run, host, & support local meetups
    4

    View Slide

  25. @clairegiordano
    5
    Answer questions &
    share your experience
    PostgreSQL Slack
    IRC
    Stack Overflow #postgresql
    Mailing Lists: share your real-world
    user experience: “yeah that works”

    View Slide

  26. @clairegiordano
    Ways to Contribute to Postgres—in today’s talk
    11. Translations
    12. Update docs
    13. Contribute code
    Code
    6. Doc feedback
    7. Report bugs
    8. User Test new releases
    9. Performance testing
    10. Patch review
    Feedback is Gold
    1. User stories
    2. Video Demos
    3. Promote
    4. Meetups
    5. Answer questions &
    share your experience
    Sharing is Caring
    @clairegiordano

    View Slide

  27. @clairegiordano
    Docs feedback is
    a gift too!
    Clarify
    Fix ambiguities
    Help new people understand
    6
    @clairegiordano
    Source: postgresql.org

    View Slide

  28. @clairegiordano
    “Submit correction” link
    @ bottom of each docs
    page takes you here
    6
    Source: postgresql.org

    View Slide

  29. @clairegiordano
    7
    Report bugs with
    Postgres
    When you find a bug with Postgres
    we want to hear about it.”

    “ Your bug reports play an important
    part in making PostgreSQL more
    reliable.”
    Source: postgresql.org

    View Slide

  30. @clairegiordano
    7
    Source: postgresql.org
    WHERE to report bugs
    1. Mailing list, or
    2. Bug report web-form here:
    postgresql.org/account/submitbug/
    3. Unless it’s a security
    issue!

    View Slide

  31. @clairegiordano
    7
    Security issues are
    special

    View Slide

  32. @clairegiordano
    User testing
    your own applications
    new PG Beta, RC releases
    new features
    –––also, tell the PG community
    when things work
    8
    Imaginary email....
    To: pgsql-hackers
    Lists: pgsql-hackers
    Just tested our
    application FOOBAR with
    the beta 4 release
    candidate for PG 15 and
    wanted to let y’all that it
    worked!

    View Slide

  33. @clairegiordano
    Performance
    Regression
    Measuring
    performance on
    new releases of
    Postgres is super
    appreciated
    9

    View Slide

  34. @clairegiordano
    Patch Review
    as part of a “Commitfest”
    Commitfest =
    “A periodic break in PostgreSQL
    development that focuses on review
    and committing rather than on new
    development.”
    10
    Source: commitfest.postgresql.org

    View Slide

  35. @clairegiordano
    Different types of
    Patch Review
    Usability
    Feature
    Performance
    Code Review
    Architecture (Design) Review
    10
    Source: commitfest.postgresql.org

    View Slide

  36. @clairegiordano
    Ways to Help with Patch Review
    from one of Melanie Plageman’s PUG talks
    10

    View Slide

  37. @clairegiordano
    Ways to Contribute to Postgres—in today’s talk
    11. Translations
    12. Update docs
    13. Contribute code
    Code
    6. Doc feedback
    7. Report bugs
    8. User Test new releases
    9. Performance testing
    10. Patch review
    Feedback is Gold
    1. User stories
    2. Video Demos
    3. Promote
    4. Meetups
    5. Answer questions &
    share your experience
    Sharing is Caring
    @clairegiordano

    View Slide

  38. @clairegiordano
    Help with message
    translations
    Mailing list: pgsql-translators
    More info: babel.postgresql.org
    Instructions in Postgres docs:
    “Native Language support”
    11

    View Slide

  39. @clairegiordano
    Translations really
    need help!
    Especially Polish, Brazilian
    Portuguese, & Korean
    Without maintenance these
    translations will go away L
    11

    View Slide

  40. @clairegiordano
    • pgsql-docs@
    • /docs top level directory
    • SGML/XML, Docbook
    • Lætitia Avrot’s talk from 2018:
    “De-mystifying contributing
    to Postgres”
    www.postgresql.eu/events/pgdayparis2018/sch
    edule/session/1704-de-mystifying-contributing-
    to-postgresql/
    12
    Update Docs

    View Slide

  41. @clairegiordano
    Contribute code
    13
    LOTS of places to
    contribute—not just to core.
    Cycles to get patch review &
    contribute to Postgres core
    are really, really, really long.
    Be prepared & don’t get
    discouraged

    View Slide

  42. @clairegiordano
    z
    Also at PGConf NYC, on Fri @ 10:50am EDT
    13
    James Coleman, Braintree Payments

    View Slide

  43. @clairegiordano
    Lots of drivers
    JDBC
    ODBC
    Python drivers e.g. psycopg
    Go driver
    ...
    13

    View Slide

  44. @clairegiordano
    Contrib modules,
    ecosystem,
    & extensions
    13
    pg_buffercache
    pg_prewarm
    pg_stat_statements
    pg_hint_plan
    PgBouncer
    citus!
    ...

    View Slide

  45. @clairegiordano
    So many ways to contribute to Postgres
    11. Translations
    12. Update docs
    13. Contribute code
    Code
    6. Doc feedback
    7. Report bugs
    8. User Test new releases
    9. Performance testing
    10. Patch review
    Feedback is Gold
    1. User stories
    2. Video Demos
    3. Promote
    4. Meetups
    5. Answer questions &
    share your experience
    Sharing is Caring
    @clairegiordano

    View Slide

  46. @clairegiordano
    Get your socks if you
    asked a question!

    View Slide

  47. @clairegiordano
    Thanks & credits & inspiration go to
    • Josh Berkus
    • Samay Sharma
    • Thomas Munro
    • Rob Treat
    • Melanie Plageman
    • James Coleman
    • Lætitia Avrot
    • Isaac Alves
    • Selena Deckelmann’s great wiki post:
    “So you want to be a developer”

    View Slide

  48. @clairegiordano
    Thank you
    @citusdata | @AzureDBPostgres
    @clairegiordano
    github.com/citusdata/citus

    View Slide