Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 30 min ago

Drupal Association News: What's new on Drupal.org - February 2015

Wed, 11/03/2015 - 18:22

One of our long standing traditions here in the Drupal Association was to give community regular updates on the latest Drupal.org related activities in a form of week notes posts. We’ve been publishing those for over 2.5 years now and it feels like the time has come for a slight change in the format.

From now on we’ll publish monthly ‘What’s new on Drupal.org’ posts, which will showcase new and upcoming features, functionality and user experience improvements. We’ll schedule these around the public Board meetings, so that both the Board and community get the same information at the same time.

So here is our first update in this new format..

What’s new on Drupal.org: February 2015

Look for links to our Strategic Roadmap highlighting how this work falls into our priorities set by the Drupal Association Board and Drupal.org Working Groups.

Better account creation Account creation improvements

Account creation is now much more streamlined, quick, and lets people get back to the context they started from once the registration is done. Recently added 2nd step of registration allows us to prompt users to quickly and easily fill out the most important fields of their user profile, upload picture and sign up for Newsletters, before proceeding back to the task they were at before registering.

Newsletters signups right on your Drupal.org profile

While working on account creation improvements, we wanted to make it really easy for new users to see what kind of newsletters are available and sign up for the ones they are interested in. Previously only Mailman-powered newsletters were available for sign up on Drupal.org, while for the Drupal Association Newsletter we used MailChimp.

MailChimp allows us to send beautifully designed html emails, provides great content creation experience and detailed analytics. Thus we decided to standardize on one solution and migrate existing newsletters from Mailman to MailChimp. This is partially done, with Security Announcements and Maintainer News following soon.

MailChimp module is now installed on Drupal.org, and all various newsletters are available for sign up right on your user profile edit form. Users will also be able to unsubscribe from their profile or using the unsubscribe links provided through MailChimp.

Organization and user profile improvements Issue comment attribution and credits

Both issue comment attribution and issue credit UI are ready. At the beginning of March, we opened them for community testing. The feedback is pretty positive so far. Deployment is tentatively scheduled for March 12th.

Content Strategy and Redesign

The draft Drupal.org content model was presented to Working Group members and we are now collecting and incorporating feedback, while at the same time working on a more detailed outline of content and entity types. The outline will include detailed information about fields and settings, as well as view modes with wireframes per content type.

The next deliverable, which is about ready for Working Groups feedback is Content Governance Plan, which reflects the new content model and suggest some improvements in the way we govern content: create, edit, moderate, archive and delete.

The third deliverable, which is nearly done as well, is the Communication Channels Plan, which aims to answer the long standing question of “what is the one place I need to go to to find all important Drupal community news and announcements?”.

The next deliverable we are about to switch out focus to is the updated Drupal.org Site Map, which will reflect suggestions for better IA and navigation on *.drupal.org.

DrupalCI (community initiative and Drupal 8 blocker)

DrupalCI may move into a formal initiative in March as staff works to implement a production environment with the help of the community members that have been involved in the architecture and development.

The test runner is nearly working. Several major portions of the stack are in production—if not yet totally configured—as well as the PrivateTravis containers running php 5.4, 5.5, and 5.6 with mod_php. Overall, it is proceeding on track to have an MVP ready by the end of the sprint sponsored via Drupal 8 accelerate program, which is scheduled to take place at the end of March in Portland.

Revenue-related projects (funding our work) DrupalCon Los Angeles

On February 25th, registration for DrupalCon Los Angeles went live on the new Drupal Events (events.drupal.org) subsite. Events will be the primary site for all DrupalCon websites moving forward as well as the archive for past events. This will give us great flexibility with historical reporting and make maintenance and security releases for DrupalCon websites more efficient. It also means that any new feature development for DrupalCon websites now benefits all future con sites.

The first of those new features is a set of improvements to registration. We’ve streamlined the experience of purchasing a ticket both for individual users, but also for users who may be purchasing large blocks of tickets for their organization. There are three time-saving new registration features:

  1. Users can now copy their registration data from a previous ticket. This means that a user purchasing several kinds of tickets such as the DrupalCon ticket and a Business Summit ticket can save time entering fields. It also means that users attending future cons will be able to save time entering their registration data for the next Con.
  2. Someone purchasing a ticket on behalf of another attendee can now enter that attendee’s email address and a link to redeem the ticket will be sent to them. This saves the purchaser time, and allows the attendee to keep their registration data private.
  3. Finally someone purchasing a large block of tickets who does not yet know who will attend can now purchase reservation codes which can be given out to attendees to be redeemed.

We’re also working closely with our early registrants and DrupalCon sponsors to further streamline these new features.

Sustaining Support and Maintenance Elections 2015

In February, we spent some time polishing the nominations and voting functionality on assoc.d.o, which powers 2015 Drupal Association Board Elections. This year we have much better looking nomination pages, as well as more smooth voting process. Voting is open until March 20. Have you voted yet?

Fastly

The Drupal.org download infrastructure (ftp.drupal.org) is undergoing an architecture refresh. Fastly has signed on as a Drupal.org Technology Supporter and the existing FTP mirror infrastructure is being dissolved in favor of the CDN backed by Drupal.org’s static web servers.

Server Density

Server Density (drupal.serverdensity.io) was selected as our replacement for Nagios alerting and Munin graphing. Server Density provides us with an alternative to OSL’s shared Nagios and Munin instances, and does not require us to host and manage our own internal monitoring service. Server Density also supports Nagios checks and integrates nicely with our existing infrastructure.

---
As always, we’d like to say thanks to all volunteers who are working with us and to the Drupal Association Supporters, who made it possible for us to work on these projects.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra.

Personal blog tags: whats new on Drupal.org
Categories: Elsewhere

SitePoint PHP Drupal: Creating Custom Field Formatters in Drupal 8

Wed, 11/03/2015 - 17:00

With the introduction of annotated plugins, a lot has changed in Drupal 8. We have a more streamlined approach to describing and discovering pieces of functionality that extend the core. Along with many other components, the former Field API (part of the larger and consolidated Entity API) is now based on plugins.

In this tutorial we will go through defining a custom field formatter for an existing field (image). What we want to achieve is to make it possible to display an image with a small caption below it. This caption will be the title value assigned to the image if one exists.

The code we write here can be found in this repository as the image_title_caption module. But let’s see how we can get to that final result.

The module

Let us start by creating a new custom module (image_title_caption) with only one file:

image_title_caption.info.yml:

name: Image title caption type: module description: Uses the image title field as a caption core: 8.x dependencies: - image

Nothing out of the ordinary here. We can even enable the module already if we want.

Continue reading %Creating Custom Field Formatters in Drupal 8%

Categories: Elsewhere

IXIS: Senior Drupal Support Engineer Position

Wed, 11/03/2015 - 16:48

Come and join our well established UK team as a senior Drupal support engineer. We support interactive sites and applications of all kinds, so every client can offer different challenges and solutions each month.

You'll have the opportunity to be involved with projects ranging from international brands, enterprise public sector organisations through to charities and media sites. We also run several internal projects which you'll have chance to provide input and development for if you wish - this is where we often experiment with new ideas, techniques and technologies first!

The technical skills we're looking for:

  • Excellent knowledge of Drupal & its configuration.
  • Extensive experience with Panels, Views, Features.

read more

Categories: Elsewhere

DrupalDare: Visual Form Alter

Wed, 11/03/2015 - 15:15
I recently found a thread on Reddit asking how to update the description field of a specific form. I would usually solve this myself by doing a module. When the thread was not answered for a long time for some reason I started Googling ways to solve this. While there exists some ways to solve the specific question I could not find a single module in Drupal 7 that lets you do a form_alter directly into the system. So I created a module.
Categories: Elsewhere

Pronovix: The case for a vehicle sharing distribution in Drupal

Wed, 11/03/2015 - 15:01

If we want to prevent a global climate disaster we have to act now! That is what Robin Chase, the cofounder and the first CEO of Zipcar, told us last year at NYCcamp. But she didn’t just give a speech about our impending doom, after pressing the urgency she went on to give a really inspiring talk about the power that we, the Drupal community have to do something about it: we have the tools and the people. Collectively we have proven over and over again that we care about more than just our own profit and Drupal is technologically also a great framework to make the tools that can catalyse global change.

Categories: Elsewhere

Addison Berry: How to Vote for Drupal Association Board Members

Wed, 11/03/2015 - 13:14

The Drupal Association (DA) At-large Board seat is now open for voting. The polls will remain open through March 20th. (Note: I couldn't find this written down, but I believe this means until 11:59pm UTC on the the 20th.) To be eligible to vote, you need to have a Drupal.org account already, and to have logged into it at least once in the last year.

Before you dive into the voting, you should probably review the candidates and sort out at least who are your top three picks. You can read individual nominations on the candidates listing page, and you can find recordings for three different "meet the candidates" sessions listed in the sidebar of that same page. Here is my profile, and this is the recorded session I took part in. Don't forget that you can also ask candidates questions in the comments on our profiles. The reason you want to pick at least a few top candidates is due to the way the voting actually happens.

The DA uses the instant-runoff voting system, also known as the alternative voting system, which is a pretty neat way to do your voting. You can dive into the details of it by reading the Wikipedia article, or watching a quick YouTube video about how it works and comparing it to the more common voting system. The short of it is that instead of picking just one person you want to vote for, you get to rank the candidates in order of preference. Essentially you can pick "fall-back" votes if your first candidate ends up at the bottom of the pile.

For the DA elections, we have 23 candidates all running for one open position. When you get to the voting page, you're going to see a list of all the candidates, and instead of just checking off one person in the list, you'll be able to rank all of them. Now, you can rank every single person, but you don't have to. You can select only one person if you want, or you could pick your top five. You get to choose how many people you rank, and in which order.

Once you've completed your ranking, then you just submit your vote, and we'll find out the results after March 20th. If you change your mind before March 20th, you can also go back to the voting screen and change your vote. This is an important vote where you are selecting someone who will be representing your voice on the Drupal Association Board. Please get out and vote!

Categories: Elsewhere

Wellnet Blog: Weekly Module Review - #3 Features Builder, problems zero with Features!

Wed, 11/03/2015 - 12:51

Weekly Module Review - #3 Features Builder, problems zero with Features!

Features Builder will help you, creating for you all the essentials features.

Categories: Elsewhere

KnackForge: Creating downloadable CSV files in PHP

Wed, 11/03/2015 - 06:56

This blog explains, how to create a CSV file using PHP and how to download the file instead of displaying it.

<?php // Creates a new csv file and store it in tmp directory $new_csv = fopen('/tmp/report.csv', 'w'); fputcsv($new_csv, $row); fclose($new_csv); // output headers so that the file is downloaded rather than displayed header("Content-type: text/csv"); header("Content-disposition: attachment; filename = report.csv"); readfile("/tmp/report.csv"); ?>

This code tells the browser that it is generating a CSV file and that should be offered for download, rather than displayed in the browser.

header("Content-type: text/csv");

The MIME type of the content is text/csv, the official MIME type for CSV files.

header("Content-disposition: attachment; filename=report.csv");

header to supply a recommended filename and force the browser to display the save dialog.

readfile("/tmp/report.csv");

readfile — Outputs a file.

 

Categories: Elsewhere

DrupalOnWindows: Build GIT on Windows from Sources

Wed, 11/03/2015 - 03:53
Language English

Unluckily for windows users GIT does not get updated as often as it should, and the last precompiled installer is version 1.9.5 from december 2014. But GIT 2.3 is already out.

To follow this tutorial you must be running a Windows OS, and install the old precompiled version of GIT from the official webpage using the installer.

Checkout msysgit to a local directory such as d:\guitbuild

More articles...
Categories: Elsewhere

Open Source Training: The State of Drupal 8: March 2015

Tue, 10/03/2015 - 23:23

Over the last few years we've been writing a regular series called the "State of Drupal 8".

We aim to give a short, plain English update for people who don't follow Drupal development closely.

Here's your busy person's guide to Drupal 8 in March 2015 ...

Categories: Elsewhere

Mediacurrent: Why Care About Accessibility

Tue, 10/03/2015 - 22:21

In 2008, I met a person who had a mobility impairment. She had limited use of her arms and hands. While we were chatting, she mentioned some issues she was having with her computer. I was intrigued. How could she be using a computer without using her hands?  Hoping I wasn't being offensive, I asked her if she'd mind showing me how she interacted with the computer. To my relief, she was happy to enlighten me. The enlightenment was more like a slap upside the head to realize that not everyone uses a mouse and keyboard to operate a computer.

Categories: Elsewhere

DrupalCon News: Los Angeles Session Submission Overview

Tue, 10/03/2015 - 20:32

Our call for papers closed recently for DrupalCon Los Angeles, and we couldn't be more excited about how many fantastic submissions we received. While selections are still in process, we can share data with you on how many sessions we received, and on what topics -- and we can give you some tips for getting your session selected.

Categories: Elsewhere

Drupal Association News: Drupal Events at SXSW 2015

Tue, 10/03/2015 - 19:10

South by Southwest Interactive starts this Friday in Austin, Texas. The largest tech conference in the world wouldn’t be complete without Drupal, which is why we’ve assembled a guide to all things Drupal at this year’s SXSW.

If there’s a session, party, or workshop that you think should be included, let us know and we’ll add it to the list. In the meantime, here’s all the best Drupal things at SXSW this year.

Workshops: Web Content Publishing with Drupal Eight

Note: This session requires advance signup to attend.

Experience The New Power of Drupal 8 in this Hands-On workshop! In this workshop, you will learn:

  • How to leverage Drupal's new responsive content authoring features.
  • How to customize your site with Drupal's powerful content modeling features including content categorizing.
  • How to creating listing pages and blocks of lists with the enhanced VIEWS module, now a CORE feature, out of the box!

Monday, March 16, 9:30AM - 1:30PM
JW Marriott Room 303-304 (110 E 2nd St)

Hands On: Inclusion, Accountability and Empowerment

This hands-on, two and a half hour long workshop will give you the tools to:

  1. Develop strategies for building more inclusive, accountable and effective spaces — and be better at what you do.
  2. Find ways to be an effective ally to those who are marginalized in your workplace, and build a more inclusive culture.
  3. Find allies outside of your workplace if you can't find any within.

Monday, March 16, 3:30PM - 6:00PM
JW Marriott Room 310-311 (110 E 2nd St)

Large Drupal Projects

The goal of this workshop is to have the participants take away:

    What developer workflow (git, code review) techniques can make a larger project successful
    Techniques for coordinating teams that are geographical dispersed among different organizations
    What scaling and performance issues are more likely to arise in a larger project, and how to anticipate and plan for them
    Planning for a maintainable codebase
    What advanced project management issues might arise from a large Drupal project

Tuesday, March 17, 9:30AM - 1:30PM
JW Marriott Room 303-304 (110 E 2nd St)

 

Sessions: Interconnected: The Future of the Experience Web

The first wave of the web was open: anyone could build a website and get found through search engines or social media. The second wave was mobile, leading entire nations to leapfrog the initial desktop -- and laptop-centric web. And we’ve just scratched the surface of the third wave: the experience web. It’s driven by internet-connected-everything, and it’s all around us. This third wave gives control to a few intermediaries -- particularly companies that own the entire experience. How can a local Indian restaurant deliver the right experience to a passenger in Google’s self-driving car? The key is mastering context and delivering personalized content to meet consumers where they are.

Dries Buytaert, creator of Drupal & Acquia co-founder, will discuss how we’ll interact with companies and each other in this freewheeling third wave of the experience web.

Sunday, March 15 5:00PM - 6:00PM
JW Marriott Salon A (110 E 2nd St)


Parties: Tech Lover’s Karaoke Night

Join Rocksauce Studios and Four Kitchens for a fun evening of karaoke, drinks, and tech fun!

Tech Lover's Karaoke Night, hosted at the historic Old School Bar & Grill at the heart of Dirty Sixth, will be an evening filled with music, drinks, great food, and tattoos!

Friday March 13, 2015 6:00pm - 9:00pm
Old School Bar & Grill (401 E 6th St, Austin, TX 78701)

Drupal Drop In

This event is open to anyone currently using or interested in Drupal. You can look forward to live music, great food & drink and networking with top innovators that are using Drupal to transform their business.

Saturday, March 14 12:00PM - 3:00PM
Maggie Mae's Rooftop (323 E 6th St)

Categories: Elsewhere

Commercial Progression: Streamlining the Development Process

Tue, 10/03/2015 - 18:24

Efficiency feels good.

To some extent, the joy of efficiency (or at least de-cluttering) is illusory. The pursuit of efficiencies may only make sense over long time scales. Making a decision whether to optimize is fraught.

Or is it? The common rule of thumb for duplication in computer programming is 3 duplicates. Anything you do twice, at the cost of labor, is something you should make faster the third time.

Things we've made faster

At the beginning of the year, the dev team committed to increasing efficiency, leading to the eventual ability to type a couple lines in a terminal prompt and have a 95% developed site with all the enterprise-grade Drupal fixins.

Here are some things we do really often that we've automated (or are working on):

How this works

Conceptually, a dev does something like:

  1. compro site -b newclient

...has a new local site set up, rolls the repo with a stage/prod model, pushes it to bitbucket, and has a reasonable set of Drupal configurations for making a modern site. One command, giant head start.

When it comes time to make a new content type, we'd type:

  1. compro ctf pressrelease

...and a new feature would appear in sites/all/modules/features containing a content type and view (with a page and block of teasers, both disabled by default). We could then ostensibly use drush's field commands in conjunction with drush's feature commands to roll an entire IA without looking at the site in a browser.

Once the content model is in place and there's sufficient real or dummy content, we theme it using our excellent in-house practices; entity view modes, minimal CSS, blockify, "extra fields", etc.

Then, for added efficiency, when it's time to roll the stage code onto production, we use:

  1. git roll prod

This git alias looks like so:

  1. [alias]
  2. roll = "!CURRENT=$(git rev-parse --abbrev-ref HEAD) && git checkout ${1} && git merge ${CURRENT} && git push origin ${1} && git checkout ${CURRENT} && git status && bash -c 'aplay ~/repos/compro_config/rollin.wav'"

In English, it checks out the production code, merges the staging code, pushes the merged code to the remote production repo, checks back out to staging, tells the user which branch it's on, and plays a clip of a Limp Bizkit song.

What's next

We'd like to automate our staging and production servers more, and leverage our CI tools to a greater extent. This will mesh nicely with our efficient local machines.

On the local development end, we're working to make removing local sites faster. It would be a dream to be able to spool up a site, test a single thing, and remove the site permanently in the span of a minute or two.

The theming and design processes have some real opportunities for streamlining. We haven't landed on the exact best approach, but are talking about it in the office constantly.

Efficiency

Efficiency feels good. In helping to write many of these streamlining pieces, I would literally say out loud "this feels good". If making systems more efficient is an illusory joy, I don't want to be dispelled of this illusion.

Looking for efficient Drupal development? Contact the experts

Categories: Elsewhere

Drupalize.Me: Creating Block Types with Bean

Tue, 10/03/2015 - 13:13

Whether you're a Drupal beginner or veteran module developer, one thing everyone understands about Drupal is the core block system is very limiting. There are lots of modules out there that attempt to make blocks more robust. Heck, site builders have even used Views as a complete block replacement. There is one module that makes blocks a ton more useful and that is the Bean module (Block Entities Aren't Nodes). The Bean module replaces a lot of modules we used in the past to give blocks more power and function. Drupal 8 even works just like the Bean module out of the box. Instead of using Views or making nodes blocks, Bean gives us fieldable block types.

Categories: Elsewhere

InternetDevels: Drupal modules for social networks integration Part 2

Tue, 10/03/2015 - 09:43

In our previous blog post we have presented a list of 7 popular and useful Drupal modules for integration with social networks. After that we've received some queries like "Are there some other modules of such kind?". Thus we've decided to make up a new list!

Read more
Categories: Elsewhere

ShooFlyDesign: Drupal 7, Tags, Unpublished Content, and You

Tue, 10/03/2015 - 02:29

Drupal has a very flexible taxonomy system for tagging and categorization content (and users, and anything else). This flexibility is one of its interesting differentiating features — you can create as many dimensions of categorization and tagging as you like, which is very attractive for librarians and other enthusiasts of organization. To keep that flexibility from totally bogging down the system, Drupal maintains an index table that maps those terms onto the pieces of content to which they're attached.

Read more
Categories: Elsewhere

xjm: Contribution, Influence, and Drupal 8

Mon, 09/03/2015 - 23:11
Contribution, Influence, and Drupal 8 Mon, Mar 09, 2015 - 17:11 xjm

In the most recent issue of Drupal Watchdog, Nedjo submitted an article on software freedom and social change in Drupal. While this article raises a number of thoughtful questions about the social implications of the Drupal community's evolution, it includes some misinformation (both because it misrepresents the data that are easily available and because it lacks data that are not easily available). In the first part of this post, I look at the specific information presented in the article and provide some more depth, including some first-hand information about Acquia, since I work in Acquia's Office of the CTO. In the second part, I explore how we can mitigate some of the concerns the article raises.

Who am I and why do I care?

I'm xjm. I started contributing to Drupal 8 core in 2011 when I was working as a part-time hourly at a university. Core contribution was a life-changing experience for me, and I've been high in the list for Drupal 8 patch commit mentions since late that year. I also led what later became the Core Contribution Mentoring initiative. I wanted to "pay it forward" and help make core contribution more accessible to other "outsiders" like myself. I guessed that I was not the only one who had an interest in participating in open source in general and Drupal in particular, but had not done so because of underconfidence, time limitations, lack of information, bad previous experiences, or that that same "outsider" feeling.

TCDrupal core mentoring sprint, 2012. Photo credit: xjm

In 2012, merlinofchaos invited me to be on the team for the Views in Drupal Core initiative. I cut my hours back at the university and started drawing a salary from the community chipin for that initiative. My budget was tight, but the opportunity to be paid for contributing to that project was an amazing privilege. Views was merged into Drupal 8 core in October of 2012.

In 2013, Dries offered me a position in Acquia's Office of the CTO (OCTO) to work on Drupal 8 full time. Last week was my two-year anniversary at Acquia. I spend almost all of my paid time doing release management for Drupal 8, and part of my job is gathering metrics to help the community make informed decisions about the codebase and the upcoming release. (For example, see the critical issue charts at Help Get Drupal 8 released!).

The Watchdog article's misleading chart (and corrections to it)

Under a header titled "Structured for Profit?", the Watchdog article tries to illustrate which individuals are involved in formal decision-making roles in Drupal, with the goal of asking whether current decision-making in Drupal is "enterprise-oriented" and with a specific focus on Acquia. The article describes the following "influential" roles:

  • Core committers These are the individuals who have final say over which particular changes are made to Drupal core. There is a single permanent core committer, Buytaert. For each major version of Drupal, Buytaert appoints one or more “branch maintainers” who commit changes to that version of the software. [reference]
  • Official Drupal 8 initiative leads Drupal 8 development was organized around a series of official initiatives, approved by Buytaert, who appointed an individual to lead each initiative. [reference] Official initiatives shaped the core directions and solutions adopted in Drupal 8.
  • The Drupal Association The Drupal Association is a nonprofit that, according to its mission, “fosters and supports the Drupal software project, the community and its growth.” [reference]
  • Drupal Working Groups Three Working Groups – Community, Documentation, and Technical – oversee key areas of the Drupal project. Individuals are appointed to these groups by Buytaert or his designate(s). [reference]
Beyond formal decision-making roles, the individuals whose code contributions are accepted also exert a significant influence on the software and, by extension, the Drupal project.

(For a background on the history of decision-making in Drupal, I recommend reading Randy Fay's article from three years ago: Drupal Governance. Two primary changes have occurred since Randy's post was written: Drupal 8 now has multiple branch maintainers who collaborate to provide quick feedback and strategic focus in core issues, and the Drupal Working Groups were added precisely to help address some of the concerns that Randy eloquently lays out in that post.)

The Watchdog article's summaries of these roles (each accurate on its own) are followed by a chart, which I at first found confusing, then found misrepresentative, and eventually (after close examination) decided was misleading:

Original image from Drupal Watchdog

Several of the misrepresentations in this chart are due simply to the fact that complete data are not easily available (especially historically), and I attempt to correct this by providing better data with this post. However, there is one particularly misleading distortion in the chart that obscures everything else, even with the data that are available, and I address that first below.

A contributor with two responsibilities is not two people

The first thing that made me squint at the illustration in the post was a claim that there were somehow 15 people from Acquia that were "Drupal decision makers and top contributors", but I could not account for anywhere near that many people who worked for Acquia in the categories described. Then I squinted more and noticed that there were two people counted for Chapter Three -- a Drupal core branch maintainer and, separately, a top 10 Drupal 8 contributor. Huh? While alexpott does enough work for two people, there are not actually two alexpotts (oh if only!).

The original graph is labeled as indicating the number of "individuals" in key roles, but many people are counted twice or even three times.

It wasn't until my third read of the article that I actually absorbed this bit in the text:

Particular individuals may fill multiple roles and therefore be counted more than once.

Aha. So it's not stated outright, but perhaps this was meant to illustrate the "size" of an individual's influence based on different ways they might be involved. In particular, Dries is undeniably more influential than any other person in the project, so perhaps counting him three times (once as the project founder, a second time as a Drupal Association board member, and a third time as a branch maintainer) is an attempt to represent that. Unfortunately, I don't think this is clear or effective, and it actually seems rather misleading. The axis on the left side of the chart is labeled "Number of individuals", and even though the note about multiple counting is right there in the text, I (and others) missed it and took the chart at face value.

Acquia does not actually employ 15 individuals who are currently "decision-makers" in the project; instead, there about 7 individuals currently at Acquia who hold or have held one or more roles as the Watchdog article lists them. Three Acquians in particular are counted for a total of 9 of the "individuals" indicated in the chart.

Three of the roles represented in the chart (core branch maintainers, initiative leads, and "top 10" patch contributors) reflect prominent participation in Drupal core development, and there is actually significant natural overlap between those roles. Our core development process also includes many checks to individual influence for all three roles. All patches must undergo peer review, and we have a culture of collaboration and consensus-building rather than overruling others' decisions. Even branch maintainers cannot commit patches that they contribute to in a nontrivial way (either as patch authors or by providing the "RTBC" or peer review signoff). Finally, when a patch contributor disagrees with a branch maintainer about a change, the branch maintainer consults others (either other patch contributors, or other branch maintainers).

For all these reasons, double-counting people for different aspects of their involvement in core development is particularly flawed. The Drupal 8 initiative leads contributed to many patches both directly and indirectly; the specific number of commits that mention them does not reflect or substantially add to their impact on Drupal 8's development. And all the branch maintainers (excluding Dries) are equal to each other, regardless of whether or not they also author many patches.

It's less clear to compare the influence of core contributors with the Drupal Association board or the working groups, because the responsibilities are so different, but double-counting still doesn't reflect reality. For example, webchick is arguably more influential than other members of the Community Working Group because she is a branch maintainer, but not more influential than other branch maintainers because she is a member of the Community Working Group. In summary, not all individuals on the chart have equal influence, but their influence is a function of their most significant role, not of the number of roles they hold.

Contributors change jobs

Drupal 8 has been under development for four years. Drupal Association board member terms are two and three years. Many people change jobs more frequently than that, so it's imbalanced to only represent contributors' current employers. For example, four of the seven Drupal 8 initiative leads have changed jobs since Drupal 8's feature completion deadline in February 2013. Their current employers weren't their employers when they were doing the work.

In the Drupal core commit log, branch maintainers mention all the individuals who contributed directly to a patch for an issue in its commit message. Generally, the more work an issue takes, the more people end up in the commit message (though this isn't always the case). The Watchdog article includes "top 10" patch contributors based on an open source script that parses and analyzes these "commit mentions". tim.plunkett and I both work at Acquia now, and are both in the top 10 patch contributors to Drupal 8 by commit mention, in part because of our work on the Views in Drupal Core initiative. Except... Views was in core before either of us started at Acquia, and most of our other contributions were made before then as well. To illustrate this, we can compare the commit log references to tim.plunkett before his first full day at Acquia, versus after it:
git log --before=2014-06-01 --after=2011-03-09 | grep "tim\.plunkett" | wc -l
985
git log --before=2015-03-01 --after=2014-06-01 | grep "tim\.plunkett" | wc -l
182

So not only is the chart overstating Acquia's influence by crediting them with all our previous contributions, it's also under-crediting Tim's previous employers, Zivtech and Stanford, as well as the hundreds of community contributors who gave money to the chipin that paid my salary in 2012 as I worked on Views in Core.

Views is in Drupal 8 core thanks to hundreds of contributors who gave money to the initiative. Photo credit: xjm

Another interesting aspect of this is that patch contributions are not immediate. In fact, 20% of Drupal core issues take over 6 months to complete. For most of the past two years, I've rarely contributed to patches directly. And yet, between March 2013 and now, I got many of my Drupal 8 commit mentions:
git log --before=2015-03-01 --pretty=oneline | grep "xjm" | wc -l
451
git log --before=2015-03-01 --after=2013-03-04 --pretty=oneline | grep "xjm" | wc -l
199

This disparity comes from the fact that lots of my work from 2011 and 2012 wasn't committed until later. Even if I left Acquia today, never visited Drupal.org again, and threw my laptop in Lake Monona, I would continue to get commit mentions for work I did in the past.

Contributors are usually volunteers

Acquia currently has six employees who are paid to be core contributors, all in the Office of the CTO: Gábor Hojtsy, Wim Leers, tim.plunkett, webchick, effulgentsia, and myself. During recent months, Wim, Tim, and Gábor are mostly full-time Drupal core engineers; their main role is to work on patches and do code review for issues that block Drupal 8's release. effulgentsia and I do a mix of code review, occasional patch work, issue management, and release management. We work on problems like:

  • How can we help get Drupal 8 done sooner and give people accurate information about it?
  • How do we make it easier for people to contribute to Drupal 8 criticals?
  • How do we unblock this nasty bug that no one is working on or that other contributors can't agree on how to solve?

webchick also currently works primarily on these sorts of problems, plus does code review and patch committing in her role as a branch maintainer. Dries (who is not full-time on core) sets the goals for what we work on in our paid time, though in practice, we have a lot of autonomy and we set our own objectives with Dries' feedback and approval.

On the other hand, pwolanin works for Acquia, but is not paid to contribute. He works on Drupal 8 in his free time. His efforts to lead the Princeton critical issue sprint were all his own volunteer contribution. He used paid vacation time to participate during the sprint. Does Acquia deserve the credit for his work?

Princeton critical issues sprint. Photo credit: xjm, taken with pwolanin's camera.

Branch maintainer catch works for Tag1. Tag1 does not typically pay their employees to contribute to core. Instead, according to catch, they have good employment practices that make it possible for him to spend more unpaid time contributing. Is Tag1 exerting influence over Drupal 8's direction by having good employment practices? Should Tag1 get the credit for work catch contributes as a volunteer?

catch and alexpott are both branch maintainers, but catch and other Tag1 contributors are volunteers, while alexpott is paid to contribute by Chapter Three.

Organizations can affect the contributions of the people affiliated with them in a variety of ways:

  • In rare cases (for the six of us in OCTO, for branch maintainer alexpott at Chapter Three, and for a number of others), the organization might employ the contributor to do open source contribution full time.
  • More commonly, companies give their employees some paid time where they can work on their own projects, outside their normal work responsibilities. Friday afternoons might be contribution time at the office, for example.
  • Most frequently, people run into a problem in the course of their day jobs, and contribute to a fix for it because this contribution also helps them solve their problem. This can be done entirely within working hours, though often the contributor might get intrigued by the issue and work on things related to it in their free time. For example, MD Systems is building and maintaining Drupal 8 sites and modules, so Berdir contributes to issues he encounters on those projects in addition to his extensive voluntary contributions.
  • Finally, organizations affect the individual indirectly. A contributor's day job affects what the contributor thinks about Drupal, what parts of it they know well, what seems important or good or bad. And, as described above, the organization's employment practices might make it easier or harder for the individual to contribute.

To examine the role of influence in contribution, and to acknowledge contribution with proper credit, we should avoid lumping together these different aspects. There is a set of Drupal.org features under development that will allow contributors to indicate when their contribution is sponsored by a particular organization, and when they are contributing on their own as volunteers. Until those data are available, it's up to us to consider the specifics, and to remember that contributors are usually volunteers.

Finally, none of the forms of influence above cause contributors to lose their own particular passions and interests, their own unique view and skills. People are individuals, not automatons operating within a corporate machine. Even the six of us in OCTO contribute outside of paid time, to things that are not part of our jobs but that we care about. Gábor leads the multilingual initiative because he wants to make Drupal support all languages; Acquia did not prioritize it. Tim voluntarily works on core problems that bug him based on experience building sites and contributed modules, in addition to critical issues Acquia pays him to help fix. And Acquia doesn't own what I think or what I do with my spare time. So while we should recognize the influences organizations may exert over contribution, we should give individuals the credit for their own work.

Counting the "top 10" patch contributors makes no sense

The Watchdog article's chart represents the "top 10" patch contributors by commit mention, but no others. If we treat one commit mention as a unit of work in Drupal 8 core (an imperfect, but not unreasonable metric), this means it provides no representation for over 75% of the work that has been done on Drupal 8. (source data)

Field API maintainers swentel, amateescu, and yched come in 13th, 14th, and 15th from the "top" respectively. They are each mentioned in around 300 commits. The have built and re-built what is perhaps the most fundamental Drupal API -- the one that makes Drupal, "Drupal" -- making fields compatible with new systems in Drupal 8 like the Configuration Management system and the APIs that support Web Services, doing the equivalent of an initiative's worth of work. Why aren't they counted in the graph? Are they really less important to Drupal 8 than me, such that I get a little blue rectangle and none of them do? I'd say the opposite is true--each one of these brilliant developers has done more for the codebase than I have. And all three of them are currently independent.

Drupal 8 core has over 2700 contributors (nearly three times as many as Drupal 7). This contribution follows a stark long tail distribution of commit mentions to individual:

The long tail of Drupal 8 contribution, March 1 2015

Inspecting the data and chart closely, there is a "head" on the distribution of a small group of individuals that account for a significant portion of the work done. I'd say it's about the top 50 people, those with 100 Drupal 8 commit mentions or more. Then there is a middle tier of regular contributors, the next 100 or so, who have between 20 and 100 commit mentions. And finally there's the "long tail", the 2500-some contributors with fewer than 20 commit mentions over the four years of Drupal 8's development. (Among them, 1200 contributors have worked on only one patch.)

By this metric, the "long tail" has done more than a quarter the work in Drupal 8. These are people from all over the world helping to improve the open source software they collectively own. By excluding the long tail, the article is not crediting a big chunk of the participatory, collective, "grassroots" audience that it seeks to encourage.

Finally, while "top" contributors indeed have disproportionate influence in a pure "do-ocracy", Drupal's top contributors cannot commit their own patches and do not have any particular decision-making authority. So counting patch contributors identically with people who actually have formal decision-making roles does not make sense.

Many kinds of contribution are not represented

A strength of the Watchdog article is that it includes two forms of non-code contribution (Drupal Association board membership and Drupal Working Group membership). However, it's important to keep in mind that there are many other essential influences in our community. As mentioned above, peer review is a required part of our core development process, but typically the Drupal core commit log only credits patch authors, not reviewers. (See the proposal to change this policy.) Furthermore, training, documentation, and mentoring are all essential Drupal contributions, as are the sponsorships and crowd-funding that make sprints and large initiatives feasible. This omission is understandable since these contributions aren't surfaced very well on Drupal.org, but it's important to remember that all are influential.

Finally, there's also no representation of contributed module development. This is reasonable for Drupal 8 since core does not yet have a stable release, but many 8.x branches of contributed modules are already under development using Drupal 8 betas, and these projects will play a bigger role following the release of 8.0.0. It's also worth noting that contributed module development also has its own formal decision-making role, since we have a contributed project application process where ultimately one of our Git administrators must approve each application.

A different picture

The following chart has several differences from the Watchdog article's:

  1. I'm representing the actual number of individuals rather than counting someone once per role, because influence is not a function of the number of roles.
  2. I list the organization the individual was actually in during the majority of their term in their role, because contributors change jobs. (I look more into how contributors move toward particular organizations later.) In cases where an individual has been at more than one organization during their active term, I provide an explanation for the organization used in the source data. (Sometimes it's close, but I think counting half-individuals would also be a bit confusing. If you see an error, please comment on the cell in the spreadsheet so I can correct it.)
  3. I'm excluding the top 10 patch contributors, because these individuals do not have any particular authority. (I illustrate patch contribution separately further down.)
  4. I'm not indicating the nature of each individual's role(s) on the graph, but you can see these in the source data.
  5. I'm using current data (the Watchdog article is from Sept. 2014).

Drupal contributors in formal decision-making roles by organization

Not all individuals on the chart have equal influence, as described earlier, but I think this illustration is less confusing than representing numerous individuals multiple times, and a better starting point for discussion. While it's still clear that Acquia has the most individuals involved in formal Drupal decision-making roles for a single company, it's a reasonable difference rather than an enormous imbalance.

Next I'll look at the Drupal 8 commit mentions for individuals while they were affiliated with a particular organization. This reduces the distortions related to my second point above (that contributors change jobs). Keep in mind, however:

To make this chart, I first crowdsourced information on which contributors worked where when. This information is from a variety of sources, like Twitter, Linkedin, personal knowledge, etc. (If you see an error in it, please leave a comment on the cell in the spreadsheet so I can correct it.) To keep this mini-project manageable, I limited this to contributors with 50 commit mentions or more (who collectively account for about 2/3 the commit mentions in Drupal 8). For less prolific contributors, I merged in "current organization" data from Drupal.org, gathered using a database query run on Drupal.org's staging servers. Finally, I adapted the drupalcores script to also parse the date that each commit was made, and then matched that date to the timeframes listed for each patch contributor.

Commit mentions and contributor affiliations, March 1 2015

Note that I've only represented the top 15 organizational affiliations and put the rest under "other". In reality, there are many other organizations that have people contributing prolifically, and I encourage examining the full data.

The first interesting thing here is that by far the most important group is that of independent contributors: people who are freelancers, self-employed, etc., or who list no affiliation on Drupal.org. For the long tail, some of these people might be mis-categorized under "other", since there's no easy way for my query to distinguish between the name of someone's one-person freelance business and the name of a multinational corporation.

The second interesting thing is that we confirm that Acquia does indeed employ the most prolific contributors for a single company, even when the data are updated so employees' previous contributions are listed with their previous employers. However, other organizations also make a significant mark, and the individual contributors are still the most influential factor (compare the full organization data with the individual commit mentions). As tim.plunkett put it:

Two dawehners and an andypost == one Acquia.

So do we still need to worry about organizational influence?

Yes, we always should. In practice, Acquia does not direct my work for specific company interests, nor Chapter Three alexpott's. But theoretically they could. We are none of us immune to the organizational influences described above, nor are we above conflict of interest. And while independents and volunteers remain the lifeblood of the Drupal core community, professional contribution has been a very important part of the development of both Drupal 7 and 8, and numerous prominent volunteer contributors are choosing to work for certain organizations (like Acquia, Tag1, Lullabot, and PreviousNext) more than others.

The availability of these volunteer and professional resources is still a good thing--it means individuals and organizations are giving back and helping the project thrive, to the benefit of everyone who uses the software. Still, in order to benefit from these resources while protecting the community against any one group having too much influence, we need a diversity of perspectives. Professional developers building large-scale sites have valuable perspective and experience. So do freelancers who build small sites for local organizations. So do people who need a website and don't care what the code looks like inside, and just want something that works. What can we do to prove Drupal 8 is for everyone and to make sure that anyone can still contribute?

First, I recommend reading Ashe Dryden's thoughtful and well-researched article on The Ethics of Unpaid Labor and the OSS Community for perspective on why potential contributors have unequal resources and face unequal barriers to contribution. Then, here are specific steps we (as a community) and you (as someone in the community who cares) can take:

Lower barriers to volunteer contribution

As mentioned above, Drupal 8 core has had over 2700 patch contributors. The goal of the Core Contribution Mentoring initiative is to inspire, enable, and encourage new core contributors, regardless of background or affiliation, and to work on the core tools, process, and community to make it easier for new contributors to get involved. 

Mentors in orange shirts stand ready to help sprinters at the DrupalCon Sydney Community Tools Workshop, led by add1sun. The workshop prepared first-time sprinters to contribute to Drupal 8 core. add1sun is not referenced in the Drupal 8 commit log. Photo credit: xjm.

Over the past three years, core mentors have learned a lot about what makes contribution easier or harder for volunteer contributors, and we have lots of recommendations for improvements to Drupal.org that need work. You can also help by mentoring at DrupalCon Los Angeles, in IRC, or in your local community, or by joining the conversation at one of the proposed DrupalCon sessions (see Drupal.org changes to support first time contributors and mentors, How do we encourage repeat contributions to Drupal Core?, and Pain points of learning and contributing in the Drupal community).

Continue to improve Drupal's usability and accessibility

If Drupal itself is a barrier, then that's a barrier to contribution. Help with usability and accessibility issues on Drupal.org, or do usability and accessibility testing and report the results.

Credit and support all forms of contribution

The proposal to credit reviewers and other non-coders as first-class contributors will help highlight the impact of contributors in these roles, and the proposal for a new design for user profiles also highlights non-patch contributions more prominently. The work to provide credit to organizations is also essential to recognize how contributions are funded.

Project manager svettes helped run all of the official Drupal 8 initiatives. She is not referenced in the Drupal 8 commit log. Photo credit: xjm

Make it easier to sponsor contribution, and fund more contribution more diversely

Sustainable funding for Drupal core has been a topic of discussion throughout Drupal 8 development. Dries' DrupalCon Amsterdam keynote explores social theory and research related to how we sustain open source projects, and the core conversation on funding Drupal core from the same event discusses specifics for funding core in the near term.

In December, the Drupal Association announced the Drupal 8 Accelerate program to help fund critical work on Drupal 8. The fund makes it possible for independent contributors to receive grants for work that brings Drupal 8 closer to release. You can contribute to the fund financially by becoming a Drupal Association member or partner, or contact the Drupal Association about donating directly at accelerategrants@association.drupal.org. Or, if you have an idea on how funding could help speed Drupal 8's release, read the program details and apply for a grant.

yched, Wim Leers, and pfrenssen sprint on critical issues in Ghent. The Ghent critical issue sprint was funded by a grant from the Drupal Association. Photo credit: xjm.

For information on how organizations can invest in contribution through their employees, read YesCT's thorough article on strategies for businesses to invest in Drupal 8. If you are a business owner, you might even consider whether you could join with Acquia, Chapter Three, Pantheon, BlackMesh, and other companies in employing full-time open source contributors.

Finally, the Drupal Core Gratipay Team exists to help fund regular contributors who are not paid for core work.

Adopt employment practices to make contribution both fair and feasible

Ashe's article (referenced already above) has lots of great recommendatons on fair employment practices that enable contribution.

Be transparent about governance and decision-making Flowchart for allowed changes during the Drupal 8 beta.

When the Drupal community was smaller, we didn't have the same need for formal structures for decision-making, because most core developers knew each other. That is no longer feasible; contributors shouldn't need to "know someone" to get something done. As our community grows, transparency is essential.

I was not involved during the development of Drupal 7, so I don't have firsthand experience of how the community responded to these challenges before 2011. Nonetheless, I think we've made a lot of progress in Drupal 8. For example, the introduction of the Working Groups improved the transparency of community decision-making. We've added the core gates, issue summaries, Drupal Core Updates, and beta evaluation criteria all to make core development and patch acceptance more transparent. Branch maintainers now also collaborate to give quicker feedback on issues, including regular triage of criticals so the community has accurate information on what is blocking Drupal 8's release.

None of these changes have completely resolved transparency problems around core development, and some of them have been rocky, especially at first. It's a struggle to scale core development without adding unneeded overhead. Our next challenge is definiting the roles of core component, topic, and branch maintainers more clearly.

Be transparent about volunteer and paid contribution

Finally, for all the reasons in this post, transparency about both volunteer and paid contribution is essential. The most important step is the work to provide credit on Drupal.org for organizations sponsoring development. This change will simultaneously provide fairer credit to all organizations--not just those employing full-time developers--and clarify what contributions are funded versus contributed by volunteers.

I'm glad Acquia invests directly in Drupal 8 core contribution the way that it does. After all, the fact that I'm getting paid to contribute full time is awesome and the entire reason I work for Acquia in the first place. I also think we need to talk more about all the other organizations that contribute in significant ways, and most especially the individuals who do. I still recognize that we are all prone to conflict of interest, and it's crucial that we maintain and expand Drupal's diversity to provide balance. Accurately representing the current diversity of contribution is the first step.

Thanks to YesCT, effulgentsia, catch, and alexpott for contributing to this post. All data are from March 1, 2015.

Feedback? Contact me on Drupal.org

Tags Comments
Categories: Elsewhere

Drupal core announcements: This month in Drupal documentation (February 2015)

Mon, 09/03/2015 - 22:09

Here's an update from the Documentation Working Group (DocWG) on what has been happening in Drupal Documentation in the last month or so. Because this is posted in the Core group as well as Documentation you can not comment on this post. If you have comments or suggestions, please see the DocWG home page for how to contact us.

Notable Documentation Updates

Most of the hook_help texts for the Drupal 8 core modules have been finished, but there are still a few that some review. If you can help, hop over to https://www.drupal.org/node/1908570 to find the remaining issues. Most of these help texts need to a review because they have been written over a course of two years and Drupal 8 has evolved since then. If you want to help reviewing them, check https://www.drupal.org/node/2283477.

Thanks for doocumenting

February 2015 was a extraordinary productive documentation month with 245 people revising and writing more than 1000 pages. The most active editors were:

Many thanks go out to everyone that helped improving Drupal's on line documentation.

Documentation Priorities

The Current documentation priorities page is always a good place to look to figure out what to work on, and has been updated recently.

The two meta issues to update and review of help texts currently have a high priority: Not only do we need them for a good user experience of Drupal 8, they also need to be translated once they are ready.
Working on them is also a good way to find out already how Drupal 8 will work for site builders and site administrators.

If you're new to contributing to documentation, these projects may seem a bit overwhelming -- so why not try out a New contributor task to get started?

Upcoming Events Report from the Working Group

In February, we met with the Drupal Association's Joshua and Tatiana who presented us the ideas for the future of on line documentation on drupal.org. It seems that in the future we will be able to use several different types of documentation on drupal.org, most noticeably we will be able to have documentation that is much tighter integrated with contributed modules and themes. We were able to give useful feedback on the DA's plans and some of our long wished improvements, as outlined in https://www.drupal.org/governance/docwg-goals seem to be going to be realised. Despite that, some of our requests have not been met yet and some doubts remain over the implementation of the DA's plans.

Categories: Elsewhere

Four Kitchens: The Great Consolidation - ew.com migration case study presentation

Mon, 09/03/2015 - 20:37

At 1am Pacific on January 29th, 2015, Entertainment Weekly quietly switched to Drupal 7. Ten WordPress VIP blogs and a monolithic Vignette V6 Content Suite were deprecated. Over a half million articles and images were migrated to a new design and modern publishing platform, and Four Kitchens led the development.

On February 27th, 2015, three of the web chefs on the project presented a migration case study to a full room at SANDcamp 2015. Myself, Matt and Patrick fielded questions about the project. While no recording was available, I’d like to share the presentation with you.

Projects Development Drupal Events
Categories: Elsewhere

Pages