Though there was no DrupalCon Europe this year, the European Drupal community stepped up and organized their own conference, Drupal Europe, in Darmstadt, Germany last month. An incredibly successful gathering held in the Darmstadtium venue, a beautiful convention center in the center of this college town, Drupal Europe demonstrated the unique power that grassroots initiatives can have in our open-source community.
Drupal Europe came at a particularly important time in the Drupal community as we welcomed the latest and most important release in Drupal 8's history, with exciting new features such as embedded media support (such as YouTube videos), support for file uploads via REST, and substantial improvements in many other areas. At the same time, as Dries Buytaert said during his keynote, it is now time for the community to begin considering how Drupal 9, which will be released in 2020, will look.
Because it was an intensely busy event for me, I didn't have a chance to attend as many sessions as I would have liked, but I later managed to catch some videos of the sessions I had wanted to see, especially on topics near and dear to my heart such as inclusion and codes of conduct as well as more technical themes like GraphQL in Twig. In this overview, I cover three sessions that broadcast intriguing messages, whether in the realm of working with code or with people, as well as my own talk.
Diversity and inclusion build stronger communities
"We encode our values into things we create." —Tara King
In their session about building a stronger community, Tara King (Customer Success Engineer at Pantheon) and Elli Ludwigson (Content Creator/Mentor at Open Strategy Partners) offered an excellent summary of important concepts in diversity and inclusion, statistics characterizing the dire situation of inclusion in open source, and the ongoing efforts of the Drupal Diversity and Inclusion (DD&I) group.
Tara and Elli provided identifiable and understandable means to grasp some of the central tenets of diversity and inclusion, including an illustration of the difference between diversity and inclusion by Vernā Myers (Vice President of Inclusion Strategy at Netflix): "Diversity is being invited to the party. Inclusion is being asked to dance." They also gave compelling evidence from a variety of sources supporting the fact that diversity helps foster creativity, collaboration, and ultimately better business outcomes.
In addition, Tara and Elli deftly examined two topics that are particularly important when it comes to cultivating inclusive environments, namely privilege and intersectionality. Tara made reference to John Scalzi's 2012 article "Straight White Male: The Lowest Difficulty Setting There Is" to demonstrate through well-conceived examples why understanding privilege is so essential and to Kimberlé Williams Crenshaw's writings on intersectionality theory, which describes how multiple entrenched structures of power "interlock and intersect" to disadvantage members of multiple marginalized groups.
Elli then discussed some of the issues facing inclusion in open-source communities, particularly Drupal's, through the lens of data. She showed that only 1.5% of open-source contributors are women, even though women are better represented among software developers at large. Meanwhile, 18% of survey respondents have experienced negative reactions from encounters with other open-source community members.
To close out the session, Elli and Tara summarized the issues that the Drupal Diversity and Inclusion (DD&I) group is working to address along multiple dimensions of discrimination, marginalization, and oppression. That being said, Tara acknowledged the lack of racial and ethnic diversity on the group's leadership team, which was a particularly meaningful acknowledgment that diversity and inclusion efforts start from within and are never finished.
To watch Tara and Elli's session, check out the YouTube video. The DD&I group will also be presenting a session at BADCamp on the same topic.
Note: The Drupal Diversity and Inclusion group meets weekly and provides community building, safe spaces, and support for underrepresented individuals on Drupal Slack. It also works to highlight and advocate diversity at Drupal events, curates a library of resources, and consults with Drupal community leaders. See this page to learn how to get involved.
Leveraging GraphQL in Twig templates
"GraphQL basically consists of functions that define arguments and return a specific response." —Philipp Melab
Philipp Melab (Senior Developer at Amazee Labs) delivered a well-presented and thoughtfully realized session about employing GraphQL to enrich Twig templates in Drupal's theme layer. While I've presented content about GraphQL's advantages before, including an Acquia webinar with the GraphQL module creator Sebastian Siemssen, I was intrigued by the novel approach of interpolating GraphQL queries into pre-existing Twig templates.
To leverage GraphQL in Twig, in our project root, we can declare the GraphQL module as a dependency through Composer and enable it.
$ composer require drupal/graphql:8.x-3.x-dev $ drupal en -y graphql_core graphql_twig
Then, within one of our Twig templates, such as node.html.twig
, we can provide a GraphQL query contained within a Twig comment, as seen in the following example adapted from the session's code.
{#graphql
query ($node: String!) {
node:nodeById(id: $node) {
title:entityLabel
content:body {
processed
}
}
}
#}
{% set node = graphql.data.node %}
{{ node.title }}
{{ node.content.processed }}
In this example, we can see that rather than using the default node
object available in Drupal's Twig templates, we define the node
object as the result of a GraphQL query that aliases the nodeById
field to node
, as well as its constituent properties. Then, in Twig, we set a variable that corresponds to the GraphQL query response and subsequently access its contents.
Behind the scenes, Twig's compile step interprets this query (which could also be stored in a separate .gql
file and included), matches variables to query arguments, executes the GraphQL query, and adds the query result as a new template variable. This groundbreaking approach carries several critical benefits, including a lessened need for preprocessing and the declaration of data requirements within the template (much like JSX in React).
While the remainder of Phillipp's session is well beyond the scope of this column, I encourage you to watch the YouTube video of his talk and explore some of these capabilities yourself and to also check out Philipp's recent Amazee Labs webinar.
A code of conduct for Drupal ambassadorship
"A code of conduct helps us to describe mutually predictable ways we interact. They are an API for humans." —Rachel Lawson
Speaking of other use cases that I'd never thought of before, Rachel Lawson (Community Liaison at the Drupal Association) presented a thought-provoking and interactive session about what it means to be an ambassador on behalf of Drupal and whether we need a code of conduct that addresses not just our internal interactions—but also how we present ourselves to the world.
In the process, Rachel presented perhaps the best metaphor for codes of conduct that I have ever heard: as an API for humans that help to define how community members interact with one another in a productive way. To demonstrate the diversity across codes of conduct in many organizations, she presented codes of conduct from technology conferences and organizations as well as from interest groups and non-profit organizations.
Rachel highlighted the primary difference between codes of conduct in technology and those outside of our industry, which comes down to the fact that Drupal's code of conduct focuses solely on our behavior within the community rather than our outward conduct and how we represent the community externally. After all, as Rachel stated eloquently, "Great APIs look outwards as well as inwards."
I'm looking forward to following along the discussion of Drupal's code of conduct and how our roles as ambassadors evolve as a result. To see Rachel's session, see the YouTube video.
Is decentralized Drupal a possible way forward?
As many of my readers know, one of my passions is the decentralized web and the potential impact it has on not only existing CMS architectures but also on the user experiences that we interact with on a daily basis. At Drupal Europe, I presented one of the most challenging talks I've ever given—due to its hypothetical nature—about a theoretical decentralized Drupal.
In the process, I explained some of the key concepts of the decentralized web, providing some historical background about the open web and centralization on the web. Key figures involved in the web's early history, such as Tim Berners-Lee and Brewster Kahle, are now deeply committed to the decentralized web movement, which aims to restore the sovereignty and portability of users' data so that privacy once again becomes a paramount concern. Chief among the steps required for this outcome is the articulation of a decentralized web stack that includes local servers, self-sovereign collections of data, and interoperability across platforms.
Luckily, Drupal already has some of the characteristics that underpin the decentralized web, including the widening availability of decoupled architectures and a highly distributed and privacy-prizing community. Many of the paradigm shifts described by Ruben Verborgh as necessary for the decentralized web to succeed are topics of discussion in the Drupal community, and I am particularly convinced that the time is opportune for us to consider a decoupling of Drupal itself to facilitate better portability of data and handling of privacy.
For more on the topic, see the YouTube video of my Drupal Europe session.
Conclusion
All in all, Drupal Europe was a deeply rewarding experience given the turbulence and uncertainty over the last year in the European Drupal community. I was thrilled to see so many friends and colleagues at this volunteer-led event, and I am particularly appreciative of the organizers and volunteers from all over Europe that made this unique event possible.
I am also happy to see a maturing commitment in the Drupal community to highlighting and centering issues of diversity and inclusion as well as codes of conduct. For far too long, open-source communities have paid lip service to toxic circumstances that lead to contributors decamping from the communities they have long treasured. It's essential that we consider the human features that enrich our community in addition to the technical ones.
Special thanks to Tara King, Rachel Lawson, Elli Ludwigson, and Philipp Melab for their feedback during the writing process.