Thanksgiving wishes for Zen contributors

and how to do the same in your project

The Zen theme had its fifth birthday on October 11, 2011. While that milestone just slipped past without my notice, I’ve recently been thinking a lot about things that I’m grateful for. Zen, like Drupal core, improves because of the influx of new ideas and solutions to shared problems. And I’m extremely thankful to all those that have contributed their work.

More than simply saying “Thank you” to all those who’ve contributed patches to both the code and the documentation, I’ve decided to convert each contributor’s name into an actual Git commit. That sounds pretty geeky, but the real purpose of those commits is so each person’s name shows prominently where it belongs… on Zen’s Maintainers page.

I have a really useful Git tip for project maintainers below. But I’d also ask that you please join me (in the comments of this post) in thanking all of the people who have contributed to make Zen great.

How I thanked all the contributors

Zen has had a CHANGELOG.txt since I started maintaining the project. I’ve used it for two reasons: to list all the significant changes to the software and to thank everyone who helped with a patch.

While Git (and that troll of version control systems befor it, CVS) does have a ”log” of all the commits, its not a very useful list of important changes to a project. It’s littered with trivial messages and project maintenance notes like “Fixed typo in README”, “Added docblock” and “Fixing code formatting“. So I’ll continue to use a CHANGELOG to note the most important changes to the software. This also makes it really easy for people to see what’s happening in the latest -dev release.

After today, I will stop using the CHANGELOG as the primary way to thank everyone who helped with a patch. Not enough people look in that file.

How I now thank multi-contributor patches

However, while converting every contributor’s name into a real Git commit, I realized how I can leverage the CHANGELOG so there's one commit per patch author.

The following line in the CHANGELOG is nearly identical to the commit message for the patch. But, of course, the “author” of the commit will be me even though multiple people helped had contributed. So only I would show up on Zen’s maintainers list.

#200495 by JohnAlbin, caroltron, and Toe: Split up monolithic zen.css into smaller, logical stylesheets

Since the Drupal community has moved to Git, dealing with a patch with a single author is easy. I simply follow the advice in Drupal’s Git Handbook and use this command to commit the patch:

git commit --author="rfay <rfay@30906.no-reply.drupal.org>"

For a multi-author patch, I now leverage my CHANGELOG.txt to give everyone a proper Git commit.

First, I’ll add this to CHANGELOG.txt:

#200495 by JohnAlbin, caroltron, and : Split up monolithic zen.css into smaller, logical stylesheets

And commit that new line using this command:
git commit --author="caroltron <caroltron@171342.no-reply.drupal.org>"

Then I'll modify that line to read:

#200495 by JohnAlbin, caroltron, and Toe: Split up monolithic zen.css into smaller, logical stylesheets

And commit that change using this command:
git commit --author="Toe <git@10587.no-reply.drupal.org>"

Now both caroltron and Toe have real Git commits and show up on the Maintainers list for Zen. And, while the commit doesn’t show the actual code or documentation changes they made, it shows the issue number where you can explicitly see how much they contributed. So, while the changeset of the commit is a bit weak, I feel strongly that the commit itself is profound.

I hope other contrib project maintainers start using Git commits to thank their contributors.

And, again, thank you all for helping out! I’ll see you soon in the issue queue.

Topic

Posted in

Macro blog

Add new comment