Date:
20 March 2023
Author:
Kristen Pol

The importance of Drupal core contributions

What does it mean to contribute to Drupal core?

DrupalExternal Link has a large ecosystem with a large contribution landscape. If you want to focus on open source contribution related to Drupal, you have a lot to choose from! It’s a good problem to have :) though sometimes this “problem” prevents people from contributing at all.

Typically, when people talk about Drupal contribution, they often lump it into two main categories:

  1. Drupal core
  2. Drupal contributed projects (sometimes referred to as just “Drupal contrib”)

In reality, it’s much more nuanced than that. For example, the Drupal 10 Readiness initiativeExternal Link is a strategic *core* initiative, yet a large focus of the initiative has been to get contributed projects ready for Drupal 10. By “contributed projects”, I mean all the modulesExternal Link , themesExternal Link , distributionsExternal Link and other “non-core” workExternal Link that exists on Drupal.org.

Google search result for “drupal contribution”

Google search result for “Drupal contribution”.

The Drupal AssociationExternal Link chooses strategic initiativesExternal Link for each major release to focus on, such as the Drupal 10 Readiness initiative. These initiatives are almost always Drupal-core related. For Drupal 10, some of the successfully completed strategic initiativesExternal Link include Admin UI & JavaScript ModernisationExternal Link that resulted in the Claro admin theme and New Front-End ThemeExternal Link that gave us the Olivero frontend theme in honour of Rachel OliveroExternal Link . Some initiatives such as Automated UpdatesExternal Link are complex enough that they’ve spanned multiple major release cycles. And the active GitLab Acceleration InitiativeExternal Link isn’t just for Drupal core, but benefits the entire Drupal ecosystem through a more modern infrastructure.

Snapshot of the Drupal strategic initiatives page

Snapshot of the Drupal strategic initiatives page.

So what do people mean when they say they’re contributing to “Drupal core”? Most likely, they’re referring to working on an issue related to the Drupal core projectExternal Link . You look through the core issue queueExternal Link (with 20,926 issues!) and find one that you want to work on, and boom! You’re working on “Drupal core” :)

Drupal core issue queue search form with more than 20k open issues

Drupal core issue queue search form with more than 20k open issues.

Unfortunately, looking at the sheer number of open Drupal core issues is enough to scare many people away from Drupal core contribution. In fact, whenever I encourage people to contribute to Drupal core, even people with contribution experience with contributed modules or themes, I hear the same things over and over again:

“It’s hard to find a good core issue to work on.”

“I’m worried I’ll do something wrong and look bad.”

“I don’t want to wait years for the issue to get committed.”

“There are way too many comments on the core issues.”

“I don’t understand the core contribution process… it seems harder than for modules.”

“I’ve contributed in the past but didn’t get credit for my work so gave up.”

“I don’t know how to ask for help when I’m stuck.”

If you have thought one (or more!) of these, you’re definitely not alone. We’ll cover how to get past these reservations in a follow-up post. Suffice to say, you *can* become a Drupal core contributor! Don’t let your inner critic tell you otherwise :)

Why contribute to Drupal core?

So why would you want to focus on Drupal core contribution in the first place? Open source contribution is a valuable experience. You learn. You collaborate with great people. You get a sense of accomplishment. And, ideally, you have fun as well.

As we’ve already discussed, if you want to contribute to the Drupal world, you have options. You could work on any number of contributed modules or themes. You can work on a variety of important non-code initiatives such as Promote DrupalExternal Link and Discover DrupalExternal Link . You can organise, mentor and volunteer at Drupal eventsExternal Link . The contribution opportunities are pretty much endless. Check out the contributor guideExternal Link to find some ways to help.

The homepage of the Drupal contributor guide’s “contribution areas”

The homepage of the Drupal contributor guide’s “contribution areas”.

So then, what is so special about Drupal core? Why would you want to spend your precious contribution time on core work?

One major reason really boils down to impact. If you look at the usage chartExternal Link for Drupal coreExternal Link compared to a module that’s ranked at 100 (Easy BreadcrumbExternal Link ), you’ll see that core has 860k+ installs, whereas Easy Breadcrumb has 63k+ installs. I’m not saying you shouldn’t work on this module, but Drupal core has more than 10 times the usage. So, if you work on a Drupal core issue instead of this module, you have the potential to have 10 times the impact.

A side note on usage… these numbers are not entirely accurate as they require the site to have the Update Status or Update Manager module enabled, which not all sites do. It also includes any development sites that do have it enabled. So, while not 100% accurate, it does serve as a litmus test for relative usage.

Snapshot of Drupal project usage overview including core and the top 9 contributed projects

Snapshot of Drupal project usage overview including core and the top 9 contributed projects.

Now, some of you may baulk at this because you suspect that it’s harder to contribute to core than it would be to a module like Easy Breadcrumb. The honest answer is sometimes, yes, that’s true. But, also, sometimes, no, it’s not any harder. In fact, sometimes, it can be easier. We’ll discuss core contribution strategies in a follow-up post.

Beyond impact, I just want to share that there is something particularly special about getting a core issue committed that you’ve helped with. I can’t really put a finger on why that is. For me, maybe it’s because I’ve worked with Drupal for nearly two decades and have grown to appreciate the extra hard work and effort needed to make Drupal core what it is today. I sincerely hope that this series can provide a bit of guidance and a well-meaning nudge to get you (yes, you, dear reader) to give Drupal core contribution a try.

Snapshot of the Drupal core page of the Drupal contributor guide

Snapshot of the Drupal core page of the Drupal contributor guide.

Salsa’s Drupal contribution journey

Personally, I’ve been working with Drupal since 2004 and started serious contribution work around 2010. I have worked on so many different projects and initiatives that it’s hard to keep track. But some of the most meaningful have been strategic core initiatives like the Drupal 8 Multilingual Initiative (D8MI)External Link led by the amazing Gábor HojtsyExternal Link . In fact, my positive experience with D8MI led me to help Gábor with his other key initiatives, Drupal 9 ReadinessExternal Link and Drupal 10 ReadinessExternal Link , and I wouldn’t be surprised if I will be helping out with the newly forming Drupal 11 ReadinessExternal Link initiative too.

Drupal8Multilingual Twitter account for D8MI including a Tweet from Kristen Pol in 2018

Drupal8Multilingual Twitter account for D8MI including a Tweet from Kristen Pol in 2018 :)

Just as an individual has their own contribution journey, organisations do as well. Some organisations contribute a tonne, and some not at all (see Dries’ post on makers and takersExternal Link ). And contribution may ebb and flow with changing team members, budgets, priorities and more. Just like people, it’s often difficult for organisations to have a smooth and steady contribution journey, and Salsa is no different.

I started working with Salsa in May 2021, and my primary focus was on client work. I had the privilege of leading the Geoscience Australia project, which was a lot of fun. At the time, my Drupal contribution work was on my own time, which is mostly how it had been since I started contributing to Drupal. It is fairly uncommon, from my experience, for people to be paid to do open source contribution.

Analysing Salsa’s historical contribution

When I joined in 2021, Salsa had already been doing Drupal contribution work. The most significant effort has been CivicThemeExternal Link which started in February 2021 and ramped up in a huge way by that September. CivicTheme is a component-based design system, and Drupal theme focused on accessibility, consistency and flexibility. Salsa invested more than 2000 hours in CivicTheme in 2021 (and more than 6000 to date!). Initially, this work was done behind the scenes, but it was later open-sourced, and a 1.0.0 releaseExternal Link was created in September 2022.

Snapshot of the CivicTheme.io homepage

Snapshot of the CivicTheme.io homepage.

Along with CivicTheme, Salsa has focused on many other open source contributions. We track these efforts in Jira, which includes Drupal core and contributed projects, CKANExternal Link , community events such as the Melbourne MeetupExternal Link , client-focused projects like GovCMSExternal Link and Single Digital PresenceExternal Link ’s TideExternal Link and RippleExternal Link codebases, and Salsa-born projects like CivicTheme and the Merlin FrameworkExternal Link .

Looking at total contribution hours in Jira, Salsa invested:

  • 30+ hours in 2018
  • 60+ in 2019
  • 400+ in 2020
  • 2500+ in 2021
  • 6300+ in 2022
  • 800+ hours (already) in 2023

You can easily see the large upward trend of Salsa’s open source contribution over the past few years in the following graph.

Salsa’s historical contribution from 2018 to 2022 for Drupal, CKAN, CivicTheme and others

Salsa’s historical contribution from 2018 to 2022 for Drupal, CKAN, CivicTheme and others.

But let’s focus for the moment on Drupal core. So how much time has Salsa spent specifically on core work? Checking Jira again, it’s 330+ hours in 2020, 80+ in 2021, 1000+ in 2022 and 350+ already in 2023. Looking at the numbers, you’ll see there was a decent focus on Drupal core in 2020 and then a renewed commitment starting in late 2021. So let’s discuss how this played out.

Salsa’s historical contribution to Drupal core and other Drupal and non-Drupal projects

Salsa’s historical contribution to Drupal core and other Drupal and non-Drupal projects.

Salsa’s early Drupal core contributions

By seeing who logged time in 2020 and then checking their issue credits on Drupal.org, I found that Salsa’s initial investment in Drupal core was primarily through QA. Testing issue patches and reporting findings is a valuable part of the Drupal contribution process and a great way to get started with Drupal core work.

Good example of manual testing for Drupal core in 2020 by a Salsa contributor

Good example of manual testing for Drupal core in 2020 by a Salsa contributor.

I reviewed the issues credited during that time to assess the quality of the contributions. It’s important to make sure that contribution work is genuine and meets a certain standard. Although these issues did receive issue credit, in my opinion, a good number of these manual testing comments were lacking in some way, whether it was missing or inadequate testing steps or lack of other details such as the Drupal version used. The screenshot above shows a good example of the minimum expectation for QA.

Since these early contributions were done without any mentored oversight, it’s not surprising that some weren’t as high quality as we would have liked. It is valuable to seek mentorship when you’re new to contribution, especially with Drupal core, so that you can get valuable feedback and improve over time.

Fast forward to mid-2021

As I mentioned, I started working with Salsa in May 2021. At the time, given how busy I was with the Geoscience project, I didn’t have Salsa’s open source contribution efforts on my mind. But after a few months, I decided to approach Alfred Deeb, CEO of Salsa, for selfish reasons.

I knew some people in open source were able to get their contribution time sponsored, and I had some success with that on GitHub sponsorsExternal Link . I liked Salsa and figured maybe we could arrange a win-win where Salsa would sponsor me for 5-10 hours per week to work on Drupal contribution (including core), and I would attribute that work to Salsa. I knew they had done some Drupal contributions in the past, but I didn’t know the details.

At first, Alfred was pretty unfamiliar with the whole idea. What would it mean to “sponsor me” for contribution work? What do they get out of it? Why should they invest that money? How would they understand what I was doing? Etc. etc.

Most of the previous core contribution work had been done when there was a QA person who had some downtime between tickets. Salsa wasn’t paying “extra” for that work because these QA people were working a certain number of hours per week whether or not they had client tickets to test. The contribution work filled a gap in their schedule. This was a win for the contributor and a win for Salsa and for their pocketbook.

But I was proposing something different. Salsa would be digging into its pocketbook to pay me cold hard cash :) and that cash could otherwise be used for different things. After some discussion about the pros and cons, Alfred (and the Salsa Board) agreed to give it a go. For the last few months of 2021, Salsa sponsored my time to work on a variety of Drupal contributions, including Drupal core work.

RTBC work by Kristen Pol on a Drupal core issue with the fix merged a few hours later

RTBC work by Kristen Pol on a Drupal core issue with the fix merged a few hours later!

But, let’s think bigger

Alfred and I continued to meet weekly to discuss a variety of topics. And one that came up regularly was contribution and how to enable the Salsa team to do this better.

In late 2021, we decided that I would take on a new role as Salsa’s “Contribution Lead” to mentor and guide team members on making valuable contributions, including to Drupal core. This new role and its corresponding dedicated “contribution stream” are part of what paved the way for a large investment of open source contribution in 2022.

But, I was not the first to try to wrangle Salsa’s contribution. In addition to DevRel work, there was a dedicated role to try to focus somewhat on open source contributions. Along with the Drupal core QA work in 2020 mentioned above, there was other community work done, mostly focused on the Feeds moduleExternal Link through an internal “100 Hours Feeds Pledge”. And, although well-intentioned, that effort seemed to fall short due to a lack of people willing and able to participate.

Note, this is mentioned not to dismiss the earlier efforts to increase Salsa’s contributions but simply to highlight that this is a difficult task with a lot of challenges that are hard to overcome. One of the biggest hurdles at that time was the lack of dedicated team members to help with Salsa’s contribution initiatives.

Successful collaboration of Salsa team members on a Feeds issue in 2020 that got merged

Successful collaboration of Salsa team members on a Feeds issue in 2020 that got merged.

So, given this history, it was especially important to think of ways to make contribution a more successful part of Salsa’s processes. The early days of 2022 were formative for that quest. And, to be honest, that quest is not over.

Balancing contribution work with customer priorities

This is not my first rodeo :) I have helped run a mid-size web agency in my past life and have seen the difficulty first-hand in marrying client work with contribution work.

Team members at a web agency must prioritise customers above everything else, which can be at odds with contribution. But it doesn’t have to be.

We are still trying to better integrate contribution work directly into customer projects, but we do have some policies in place that help. For example, since 2019, we have a 20% giveback policy to encourage customers to contribute work back to open source. One place where we’ve been able to use this pretty successfully is by adding new features to Single Digital Presence (SDP)External Link .

Snapshot of Salsa’s open source giveback pledge

Snapshot of Salsa’s open source giveback pledge.

But, we can’t simply rely on customers partly funding contribution. You need people to have time to work on contribution every week in a regular fashion. So Salsa decided to go all-in and carve out additional funding for the dedicated “contribution stream”.

Initially, the regular weekly hours were just my time on the Drupal front and a CKAN contributor for that focus. The thought was that I could mentor people who had any “downtime” or gaps in their schedules. The weekly company allocation meeting would assign “Contribution” if someone had a gap. To be honest, this didn’t work great.

Assigning dedicated contribution hours

Once it was clear that we needed more regular Drupal contributors besides me, one additional person was added as a dedicated weekly contributor. This worked quite well at first, but then they were getting pulled more and more into customer work.

We then switched the dedicated person and protected their time better, so it was more successful. After several months that person wanted to contribute less because the number of hours per week was fairly high. We pulled on another person to split the time, and so far, that has been working pretty well.

My time is split between Drupal contribution, mentoring team members and providing governance for the contribution stream. Between the 3 of us with regular Drupal contribution hours, we spend about 90 hours per month focused on Drupal, with about 70 per month specifically on Drupal core. Our core focus centres around the Bug Smash InitiativeExternal Link , Drupal 10 Readiness, supporting core contribution through mentored events, and recently the D7EOL Soft Landing initiativeExternal Link .

Salsa contributors collaborating on a Claro core bug that got merged soon afterwards

Salsa contributors collaborating on a Claro core bug that got merged soon afterwards.

Allowing for adhoc contributions

For ad-hoc contributions, we still have contributors who have gaps in their client work to help out when possible. This has worked well sometimes, but not always. The problems have been around visibility and knowing who is contributing any particular week. Although we have processes in place where people are supposed to announce their contributions in a dedicated Slack channel, it doesn’t happen consistently.

Because of this, we’ve implemented a weekly contribution standup where anyone who contributed that week should attend. This has been useful to talk through processes and issues. Those who can’t attend for some reason are supposed to give their status updates in Slack. The dedicated contributors are good about attending standups, but we still haven’t nailed down getting updates from the ad-hoc contributors.

For new team members, we onboard them to the contribution process so they’re ready to help when they have downtime. They may also be rotated in as a dedicated weekly contributor when it makes sense.

What have we learned from the past few years?

It’s been a wild few years, and we’ve learned a tonne. If you’re an organisation looking to support your team in their Drupal contribution efforts, here are some words of wisdom. I’m probably forgetting some things, so feel free to ping us to discuss further.

Budgeting: You should budget for contribution. This can be done in a variety of ways, including setting aside client budget (make sure to add to the contract!), offering “givebacks” (discounted rates for contribution work), and looking at your profit margins to see what you can afford to carve out for the greater good.

Scheduling: It’s good to have a mix of dedicated contributors with weekly allocations and policies in place for when people have downtime between client work. Onboarding time must also be considered for new contributors to understand the organisation’s contribution processes and expectations.

Burnout: Many people get tired of contributing in large amounts. Rather than have one dedicated person doing 16 hours per week of contribution, it’s better to split this between 2 or 3 people. And rotating the dedicated people on a regular basis can help.

Mentoring: Team members must have mentoring as part of their contribution experience. It’s unrealistic to expect them to represent your organisation with a high degree of quality if they’re not getting proper mentoring. This includes actually reviewing the contributors’ work and providing constructive feedback on how to improve in the future. You don’t want to have your name associated with shoddy work. You can have a dedicated role for this (like what I do), or you can have peer mentoring, or you can consider pulling in an ad-hoc mentor as a consultant.

Management: Not only does the contribution time need to be managed, but you should also consider adding contribution as part of your “professional development plans” for your staff. This includes non-technical team members!

Some final words

Next steps for Salsa’s contributions

Given the outsized contribution hours in 2022 (particularly for CivicTheme), we need to step back and reevaluate where our money is going and what makes sense for 2023. As of yet, we haven’t intentionally dialled back Drupal contribution (core or otherwise) though the holidays derailed some of us :)

We will continue with our Drupal core contributions and other important efforts around mentoring and contribution events. Whether it’s at the same level as 2022 or not hasn’t been finalised. CivicTheme has matured and requires less of our attention now, so we expect that those hours will drop accordingly. We have tapered our CKAN contributions intentionally, as we made a sizeable impact already and are assessing what’s the best way to move forward.

Particularly for Drupal core, we hope to collaborate with you as part of the Bug Smash, Drupal 10 or 11 Readiness, and D7EOL Soft Landing initiatives. We’d love to hear what your contributions are focused on for Drupal core and other open source projects.

Key Salsa Drupal contribution stats including core and CivicTheme

Key Salsa Drupal contribution stats including core and CivicTheme.

More to come!

In this article, we’ve covered what “working on Drupal core” means, why you might want to do it, and some wins and challenges of getting a team of contributors at a web agency effectively contributing to Drupal core, and other open source projects.

In a follow-up post, we’ll discuss more detailed strategies for finding Drupal core issues, picking initiatives to work on, and getting help when you’re stuck and ready to throw in the towel. Drupal core and other open source contribution work should be fun and rewarding, and we want to help the community make that happen for more people beyond just Salsa.

For more information on this post or about Salsa contribution, ping me via TwitterExternal Link or email. I’m happy to jump on a Zoom to continue to share what we’ve learned and how you might be able to make Drupal even more amazing. If you’ll be at DrupalCon Pittsburgh, let’s connect!