DEV Community

Cover image for How to contribute to PostgreSQL beyond code
Floor Drees
Floor Drees

Posted on

How to contribute to PostgreSQL beyond code

Understanding a project's ecosystem is the main barrier to entry. I've had community roles for different projects, like the Passenger app server, a Ruby project, and k6, a load testing tool, which meant navigating the testing community and the JavaScript world. I’ve also spend several years at Microsoft, which, some of their products have a very distinct following / bubbles.

I found the Postgres ecosystem one of the most difficult to grasp. September 4, at PGDay Austria, I did a report out of my scavenger hunt.

I believe that in order for it to keep up with the growing demand as the most popular database according to the Stack Overflow Developer Survey and some recent acquisitions too, Postgres needs to continue to onboard new contributors of a wide variety.

There are plenty of people who want to contribute, but don't know where to start. I think I do, and I tried hard but my information is bound to be incomplete, I very much invite feedback on this post.

For those looking to contributing code to the project, there is quite bit of information available. I’m not saying it’s easy, discourse on the mailing list is a… vibe, but there’s certainly content available and people willing to help, like through mentorship programs. My colleague at EDB, Robert Haas does mentoring, and then there’s Google Summer of Code, other avenues. But that’s not what the talk was about.

Resources from folks who once were at the beginning of journeys too:

Hari Kiran on contributing to the PostgreSQL community

Postgres 18 had 110 unique contributors to the 202 new features. By comparison, Postgres 17 had 105 contributors for 168 features. So, quick math, Postgres 18 has 25% more features and 5% more contributors than last year. Even after nearly 30 years, Postgres continues to grow.

Growth like that doesn’t happen in a vacuum. Many forces are at play here. I want to highlight some of the ways folks have contributed to the growth of the project, without having to touch the source code.

Contributions count

Aside from my work at EDB, I'm a PostgreSQL Code of Conduct Committee member (current Chair), a member of the PostgreSQL Europe Diversity Committee, and an organizer for PGDay Lowlands - the annual PostgreSQL conference in the Netherlands. That and other volunteering in the community made me a recognized PostgreSQL contributor late 2024.

Until recently the only way to get recognized as a Postgres contributor was through code contributions and patches to core. But, as announced at PGConf EU 2024 by Christoph Berg: the Contributors Committee updated their definition to now also include:

  • Authoring, reviewing, testing, and/or commit patches to closely related external projects
  • Governance of the PostgreSQL project or community recognized NPOs
  • Other Community recognized committee participation
  • Organization and execution of community recognized conferences
  • Open Education
  • … and more.

In case you’re already doing something on this list, and you have been doing it for about 2 years consistently, make sure you send an email to contributors@postgresql.org with the request to get your name added to the page. Missing names on the list? You can nominate others too.

Don’t underestimate the power of recognition, you can gift this to someone else. Not everyone is fulfilled by quietly doing stuff in the background forever without as much of a thank-you - actually, I would argue that no-one is fulfilled by that. There are just people who can continue to do things, either because they have a supportive employer, or a supportive partner / a lifestyle that grants them copious amounts of free time. For the ones of us who don’t, a little feeling of being seen goes a long way.

If you haven’t quite got 2 years under your belt: postgres-contrib.org is a community effort that lists all the contributions by the community. That includes: meetups held, links to slides for a presentation that took place that week, names of people that volunteered at a conference, … This initiative pre-dates the change to the definition, now its purpose has changed to serve like a log of activities that can be referenced when nominating yourself or others to be listed on postgresql.org/community/contributors. Want to see stuff added: contact@postgres-contrib.org - please do, because we’re a small team and we don’t have visibility over everything happening!

There’s a draft proposal out for contributor “badges”, that contributors can add this badge to their CV, social profiles, email signatures, etc.

Why is this interesting? Higher visibility of the project as one that values and recognizes people doing work is a great development. Who wouldn't want to be part of a community like that? For folks who have been in open source as long as I've been, know that the experience can be less positive.

In some company cultures this type of recognition for people convinces senior leadership that open source work is work that is valuable and they should invest in. And that certainly is a goof thing. It's a priviledge to be able to be able to spend time on open source. Not many people have that luxury, and an employer sponsoring you spending time on open source during working hours can make all the difference.

Then there are the coins for the folks that contributed to a release: patch authors, committers, reviewers, testers, or reporters of issues. I wondered aloud to my colleague Mark Wong who runs this program whether to broaden the definition of what and who contributes to a release. But: designing the coin is a contribution too (Scarlett Riggs did the design for the PostgreSQL 17 coin), and so is the running of scripts to find all the names of people eligible to receive a coin - work that I believe Peter Eisentraut, another colleague, has been trying to offload.

No-code / low-code contributions

Let’s explore some of the avenues to become a contributor, without touching core.

Other ways to contribute to the main project include:

Alvaro Herrara has been providing Spanish translation of messages in the core Postgres code pretty much solo for 15 years. He tells me: “Why do I keep doing it? Because nobody else does. A couple of years ago I sent a request for translation help for several languages that were going to become abandoned in a release. As a result, one Italian guy showed up, updated that translation just that once, and then again vanished. Nobody else responded, and several languages dropped off the chart.”

He would love to have people help with the message translations. Sounds interesting? The URL is: https://babel.postgresql.org You don't need to ask anyone for permission, just get started.

Alvaro Herrera on contributing to the PostgreSQL community

You could join one of the many NPOs, regional organizations, committees and working groups.

Or even, the Core Team, looking at their responsibilities, the position sounds like something a non-(terribly-)technical person could pick up. Someone with management skills could:

  • Coordinate release activities
  • Act as a conduit for confidential comms
  • Make policy announcements
  • Manage permissions
  • Generally make the tough choices when there's no consensus
  • Rally all the contributors, and committers ("hackers")

Committees:

  • The Code of Conduct Committee receives and investigates all reports regarding a breach of the PostgreSQL Code of Conduct. The Committee has regular nominations, and I'm happy to talk about your potential nomination - reach out!
  • Security Team - The PostgreSQL Security Team presides over the reporting and fixing of vulnerabilities related to PostgreSQL and closely related projects. An email address and members are listed, reach out and offer your help!
  • Sysadmin Team - The PostgreSQL Sysadmin Team (PGInfra) runs all of the postgresql.org infrastructure. This includes a wide variety of public and non-public services.
  • Web Team - Join the Web Team's public mailing list to jump in to the discussion and see where you can add value!
  • The Contributors Committee curates the Contributor Profiles page, I imagine they have a burst of work around the release, and then some nominations trickling in over the course of the year?
  • The Sponsors Committee maintains the Sponsors pages.
  • The Funds Group appoints its own members, which doesn't mean you shouldn't totally reach out and offer help if finance and spreadsheets are your thing. This group consider and fund things like travel, swag, cost of operations, infrastructure (email, web), professional services (video editing, graphics), etc.

Organizations:
PostgreSQL Europe (PGEU) is the European region NPO. They have a board, regular elections, and general members. PGEU offers User Group support, runs and supports events like the big flagship PGConf EU and several "PGDays". They are also responsible for the promotion of Postgres at non-Postgres events like FOSDEM. Committees you could join, depending on your experience and interest:

PostgreSQL United States (PGUS) is the US NPO. They also have a board, regular elections, and general members. Their Committees include:

Slonik Events Canada is the Canadian NPO for the management of PGConf.Dev (former PGCon). The The PostgreSQL Community Association of Canada (PGCA) holds the domain names and trademarks (the name "PostgreSQL", logo, font, etc).

L'association PostgreSQLFr supports activities in France, organizes pgDay France, supports user group meetups, is present at open source events like Open Source Experience. They have a board and members. Then there's the Japan PostgreSQL User Association, and more regional organizations as well...

Look out for calls for volunteers or reach out to the people / address listed on their websites.

Ecosystem contributions

Previously, extension developers were not considered as contributing to the Postgres project. Now, developing and maintaining extensions or otherwise adding value to auxiliary tooling is considered a contribution. Think about all the non-technical contributions you can make to the core project, but then doing that for extensions: create free tutorials, give talks, write docs, design a logo, moderate their forum/Slack/social media, organize events, …

EDB already contributes to Barman, PgAdmin, CloudNativePG, WarehousePG, those I recommend as a starting point to my colleagues, and in fact I started contributing to the CloudNativePG project by publishing on their blog, written release notes, maintain their social media presence, and help with note-taking during their community meetings. It's a great place to start with open source contributions when you can ask a colleague for help - if you’re afraid that asking questions to community members is going to make you look stupid (which it won’t, but I get it!).

Extension developers are getting together and have platforms to get together, like at the Extension Ecosystem Summit events PGXN maintainer David Wheeler initiated. In case you want to get involved there, and you're going to PGConf EU, make sure you join the October 21 Extensions Showcase where maintainers expressly will be looking for contributors.

Events

Organizing, volunteering, but also speaking at events is considered contributing as well. For all upcoming events and Call for Papers/Speakers (CfP):

  • postgresql.org/about/events
  • ics.postgresql.life/
  • proopensource.it/conference-calendar/

Consider attending, speaking at, or offering to help organize a PUG.

To find events in your area:

  • postgresql.org/community/user-groups
  • meetup.com/pro/postgresql
  • Virtual: Postgres Meetup for All

No PUG in your area? You can create one, there's guidance in the wiki, and Andreas Scherbaum wrote a guide based on his extensive experience (with the Berlin meetup) as well.

Get involved as an organizer, volunteer, Talk Selection Committee member, or Code of Conduct team member for a "PGDay" or "PGConf".

PGConf EU this year runs the Community Events Day, PGConf DEV will start their call for "Day 0" ideas shortly, keep an eye out for that. With the venue already secured, all you're responsible for is the content - a great way to ease into organizing.

But also proactively suggest organizing a topic breakfast, like a diversity breakfast, and solicit the help of the US, or EU Diversity committee.

If you want to meet some community organizers and you’re coming to PGConf EU this year, make sure to join the Community Organizers Conf. Can’t make it? No worries, we’ll take notes and share them out.

Gülçin Yıldırım Jelínek on contributing to the PostgreSQL community

Content and comms

If you maintain a blog or think about starting a blog, make sure you understand how to use the Planet PostgreSQL blog aggregator to your advantage.

Co-author blogs with your colleagues in the engineering department. They have stories to tell, but might need a little convincing. When they talk about their work, ask many questions to help them realize they have something to teach others. How I've been doing this perhaps warrants a follow-up post.

Help Postgres related projects write user-friendly release notes. Support committees with your social media prowess. You certainly have skills you can apply to the promotion of the Postgres community.

Closing thoughts: help-wanted

For this presentation I had to do a lot of fact-finding. And it’s an art to do that without accidentally volunteering. When you ask questions people maybe perhaps a little tired of doing the work are keen to offload (part of) it to someone else.

Postgres, like most open source projects is a do-ocracy - those who step forward to do a given task can decide how it should be done. If I didn’t convince you with the sappy quotes about how satisfying community work is, maybe you’re stubborn like me and now you realize that if you want to see change you need to do the work. Quietly, or loudly complaining won’t change a thing.

Now I’m quite supported by my employer to take on community work, and there are several companies in this space that have a similar approach. I’m wondering whether talks like the one Claire Giordano did at PGConf EU should be a regular exercise, highlighting all the work that has been done in the community (with some fun categories too - I remember the dubious honour of longest mailing list thread go to Peter Eisentraut) to increase awareness of where help is wanted if we don’t want to burn people out.

Listing the NPOs and committees earlier, a lot of the same names keep popping up. Dave Page, Alvaro Herrera, I’m sure these people wouldn’t be opposed to sharing the load.

New ideas too are welcome too! Not a lot of Postgres events get recorded. If you have the time and tools to record meetups, offer your services. Or contribute to the accessibility of talk recordings by offering to fix the transcript and captions - YouTube doesn’t always recognize the terms we use - I noticed writing the transcripts for the Extensions Ecosystem Mini-Summits virtual meetups. Postgres became "post est", Debian "Dobberman", immutable "usable", etc.

I invite you to join me in brainstorming more ideas!

Resources for this post and my PGDay Austria talk:

Top comments (0)