{"id":11286,"date":"2026-07-09T09:09:36","date_gmt":"2026-07-09T03:39:36","guid":{"rendered":"https:\/\/4ksamachar.com\/?p=11286"},"modified":"2026-07-09T09:09:36","modified_gmt":"2026-07-09T03:39:36","slug":"jonathan-desrosiers-13-years-contributing-to-wordpress","status":"publish","type":"post","link":"https:\/\/4ksamachar.com\/?p=11286","title":{"rendered":"Jonathan Desrosiers: 13 Years Contributing to WordPress"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Thirteen years ago today, I received <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/24588\" target=\"_blank\" rel=\"noopener\">my very first props for contributing to WordPress Core<\/a>. If my WordPress contribution journey were a person, it would now be a teenager. It\u2019s pretty wild to think about, but I\u2019ve now been contributing to the WordPress project in some way for a third of my life!<\/p>\n<h2 class=\"wp-block-heading\">What is a \u201cprop\u201d?<\/h2>\n<p class=\"wp-block-paragraph\">In the WordPress open source project, community participants receive credit for contributing to a given change or deliverable by receiving \u201cprops.\u201d<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Props should be given to all those who contributed to the final commit, whether through patches, refreshed patches, code suggested otherwise, design, writing, user testing, or other significant investments of time and effort. Usernames are parsed for the credits list and WordPress.org profiles.<\/p>\n<p class=\"is-style-text-subtitle is-style-text-subtitle--1 wp-block-paragraph\"><a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/commit-messages\/#props\" target=\"_blank\" rel=\"noopener\">WordPress Core Handbook<\/a><\/p>\n<\/blockquote>\n<p class=\"wp-block-paragraph\">The names of all the contributors who helped make a specific release possible are collected in the weeks leading up and added to the Credits API, which powers the Credits page in the WordPress dashboard.<\/p>\n<p class=\"wp-block-paragraph\">To date, I have been listed on the Credits page for 24 consecutive releases starting with 4.7, and 29 of the 35 releases overall since my first credited contribution in <a href=\"https:\/\/wordpress.org\/news\/2013\/08\/oscar\/\" target=\"_blank\" rel=\"noopener\">WordPress 3.6 \u201cOscar\u201d,<\/a> alongside 224 other contributors.<\/p>\n<p class=\"wp-block-paragraph\">Every year is a bit different than the last, but I can confidently say that this past year has been significantly different. What it means to develop software or contribute to open source is changing rapidly with advanced AI innovations seemingly every day combined with these tools being accessible to more people than ever before. But throughout all this, one truth holds strong: open source software is more important than ever.<\/p>\n<h2 class=\"wp-block-heading\">Looking Back<\/h2>\n<p class=\"wp-block-paragraph\">It seemed only fitting for me to instruct AI to analyze my contribution activity over the last 365 days to try and find anything interesting!<\/p>\n<h3 class=\"wp-block-heading\">Prompt<\/h3>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Today is the 13th Anniversary of my first credited contribution to the WordPress project. I try to write a blog post each year to mark the occasion.<\/p>\n<p class=\"wp-block-paragraph\">I\u2019m looking for ideas for this years edition. Please go and read all of my past posts (accessible here at this category feed https:\/\/jonathandesrosiers.com\/category\/contributing-anniversaries\/feed) and give me 10-12 ideas for what to focus on this year. You can also look through the other content on my site for other ideas.<\/p>\n<p class=\"wp-block-paragraph\">After you do that, I want you to look at the git history for the <code>wordpress-develop<\/code> and <code>gutenberg<\/code> repositories between July 8, 2025 and yesterday (July 7, 2026). I want you to parse the logs to summarize my activity and find some particular ways to analyze the data that are interesting.<\/p>\n<p class=\"wp-block-paragraph\">Be creative! These posts are the most fun when I am able to find some unique insight into a year\u2019s worth of contributions.<\/p>\n<\/blockquote>\n<h3 class=\"wp-block-heading\">Results<\/h3>\n<h4 class=\"wp-block-heading\">Your year 13 in numbers (Jul 8 2025 \u2192 Jul 7 2026)<\/h4>\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Core commits authored &amp; committed<\/td>\n<td><strong>119<\/strong> (~7% of all 1,707 core commits this cycle)<\/td>\n<\/tr>\n<tr>\n<td>Additional commits crediting you (props received)<\/td>\n<td><strong>97<\/strong> \u2192 ~<strong>216<\/strong> credited touch points in core alone<\/td>\n<\/tr>\n<tr>\n<td>Lines changed<\/td>\n<td><strong>+41,746 \/ \u221221,940<\/strong> across 656 file-changes<\/td>\n<\/tr>\n<tr>\n<td>Unique Trac tickets<\/td>\n<td><strong>69<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Gutenberg PRs authored<\/td>\n<td><strong>24<\/strong> (+108 co-authored\/credited)<\/td>\n<\/tr>\n<tr>\n<td>Reverts you committed<\/td>\n<td>6<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"wp-block-paragraph\"><strong>The headline:<\/strong> <strong>80 of your 119 core commits (67%) are \u201cBuild\/Test Tools.\u201d<\/strong> Add Tests + General and it\u2019s ~80%. You spent year 13 as the <strong>plumber of WordPress<\/strong> \u2014 CI, build pipeline, dependency stewardship, release infrastructure.<\/p>\n<h2 class=\"wp-block-heading\">The most interesting angles the data surfaced<\/h2>\n<ol class=\"wp-block-list\">\n<li class=\"\"><strong>The nocturnal committer.<\/strong> ~50 of your commits land between <strong>midnight and 4am<\/strong>. Tuesday (37) and Thursday (31) are your peak days; Saturday is nearly dead (3).<\/li>\n<li class=\"\"><strong>The month that didn\u2019t exist.<\/strong> <strong>January 2026: zero commits.<\/strong> March 2026: <strong>40<\/strong>. Your cadence is a heartbeat synced to the 6.9 and 7.0 release cycles, not the calendar.<\/li>\n<li class=\"\"><strong>The June 30th ritual.<\/strong> You bumped Gutenberg\u2019s pinned hash <strong>seven times in a single day<\/strong> (v22.8.0 \u2192 v23.4.0) \u2014 a whole quarter of catching-up compressed into one sitting.<\/li>\n<li class=\"\"><strong>Supply-chain quiet work.<\/strong> Pinning full-length action SHAs, replacing abandoned third-party actions, migrating release logic to a GitHub App, ca-bundle updates \u2014 you spent the year hardening the software supply chain nobody thanks you for.<\/li>\n<li class=\"\"><strong>Keeping the ancient libraries breathing.<\/strong> lodash, underscore, backbone, getID3, Twemoji \u2014 you\u2019re the caretaker of WordPress\u2019s legacy vendored code.<\/li>\n<li class=\"\"><strong>Future-proofing the matrix.<\/strong> MySQL 9.5\/9.6\/9.7, MariaDB 12.1, PHP 8.5 (HEIF\/HEIC) \u2014 you test tomorrow\u2019s platforms today.<\/li>\n<li class=\"\"><strong>A first, quietly historic commit:<\/strong> <em>\u201cInclude example for disclosing AI usage\u201d<\/em> \u2014 you helped write core\u2019s early AI-disclosure norms.<\/li>\n<\/ol>\n<h4 class=\"wp-block-heading\">10\u201312 ideas for the year-13 post<\/h4>\n<ol class=\"wp-block-list\">\n<li class=\"\"><strong>\u201cThe Plumber\u2019s Year: 67% of My Commits Were Infrastructure.\u201d<\/strong> Own the unglamorous. A love letter to build\/test\/CI work \u2014 the contributions that never show up in a release announcement but without which nothing ships. This is your strongest, most authentic angle.<\/li>\n<li class=\"\"><strong>\u201cConfessions of a Nocturnal Committer.\u201d<\/strong> Fun, human, data-driven: your midnight-to-4am commit cluster, Tuesday\/Thursday peaks, the dead January. Chart your year as a heartbeat and reflect on what it says about maintainer rhythms (and sustainability\/burnout).<\/li>\n<li class=\"\"><strong>\u201c216 Times.\u201d<\/strong> Companion to your 2024 props post, flipped: this year you <em>received<\/em> credit ~216 times in core (119 committed + 97 propped). Explore the two halves of a committer\u2019s fingerprint \u2014 the work you land yourself vs. the work you shepherd for others.<\/li>\n<li class=\"\"><strong>\u201cThe Boring Commits That Keep 40% of the Web Safe.\u201d<\/strong> The supply-chain security angle: pinned SHAs, abandoned-action replacement, the GitHub App migration, ca-bundle. Frame maintenance-as-security \u2014 timely and underappreciated.<\/li>\n<li class=\"\"><strong>\u201cI Test the Future So You Don\u2019t Break in It.\u201d<\/strong> MySQL 9.7, MariaDB 12.1, PHP 8.5 \u2014 a piece on being the person who runs tomorrow\u2019s platforms against today\u2019s code, and why the test matrix is a form of care.<\/li>\n<li class=\"\"><strong>\u201cThe Commit I\u2019m Proudest Of Was One Line About AI.\u201d<\/strong> Use <em>\u201cInclude example for disclosing AI usage\u201d<\/em> as a springboard into how WordPress (and you) navigated AI\u2019s arrival in the contribution workflow in 2025\u201326. Very of-the-moment.<\/li>\n<li class=\"\"><strong>\u201cAnatomy of a Revert.\u201d<\/strong> Six times this year you reverted your own or others\u2019 work. A candid, senior-contributor essay on why reverting is a feature not a failure \u2014 iteration, humility, and trunk stability.<\/li>\n<li class=\"\"><strong>\u201cA Year in Dependencies.\u201d<\/strong> The stewardship story \u2014 lodash\/underscore\/backbone\/getID3\/Twemoji. What it means to be the caretaker of code written a decade ago that you can\u2019t just delete. Legacy as responsibility.<\/li>\n<li class=\"\"><strong>\u201cWho I Built With.\u201d<\/strong> Refresh your collaborator lens for year 13: westonruter (24), jorbin (22), johnbillion (15), peterwilsoncc (14), wildworks (13)\u2026 Name the people behind the props lines and tell a story or two about the work you shared.<\/li>\n<li class=\"\"><strong>\u201cThe Shape of a Release Cycle, Drawn in Commits.\u201d<\/strong> Overlay your monthly commit counts on the 6.9 and 7.0 timelines \u2014 the March spike, the December bundled-themes push, the quiet stretches. Show readers what a maintainer\u2019s year <em>looks like<\/em> mapped to what shipped.<\/li>\n<li class=\"\"><strong>\u201cSame Job, New Tools: Automating Myself Out of the Loop.\u201d<\/strong> Your Gutenberg PRs are almost all release automation \u2014 GitHub App auth, GHCR publishing, reproducible builds, Dependabot. A reflective piece on spending your labor building the machine that does the labor, and what that means for the next generation of contributors.<\/li>\n<\/ol>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n<p class=\"wp-block-paragraph\">I haven\u2019t validated any of these numbers, but they do seem relatively accurate at first glance. I had ChatGPT create an embroidered patch that reflects the summary above.<\/p>\n<figure class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img fetchpriority=\"high\" decoding=\"async\" alt=\"\" class=\"wp-image-12221 not-transparent\" height=\"1024\" src=\"https:\/\/jonathandesrosiers.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024.jpg\" width=\"1024\"><button class=\"lightbox-trigger\" type=\"button\"><\/p>\n<p>\t\t<\/button><\/figure>\n<p class=\"wp-block-paragraph\">And some of those writing suggestions are pretty good ideas! I\u2019m out of time for today, so I\u2019ll file these in the backlog for another day. But here\u2019s to another year of helping the world find their voice to share their stories using WordPress. <img decoding=\"async\" alt=\"\ud83c\udf7b\" class=\"wp-smiley\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f37b.png\"><\/p>\n<h2 class=\"wp-block-heading\">Past Milestones<\/h2>\n<p class=\"wp-block-paragraph\">\u201cProps\u201d Anniversaries: <a href=\"https:\/\/jonathandesrosiers.com\/2023\/07\/10-years-of-contributing-to-wordpress\/\" target=\"_blank\" rel=\"noopener\">Ten<\/a>, <a href=\"https:\/\/jonathandesrosiers.com\/2024\/07\/11-years-contributing-to-wordpress\/\" target=\"_blank\" rel=\"noopener\">Eleven<\/a>, <a href=\"https:\/\/jonathandesrosiers.com\/2025\/07\/12-years-contributing-to-wordpress\/\" target=\"_blank\" rel=\"noopener\">Twelve<\/a> (<a href=\"https:\/\/jonathandesrosiers.com\/category\/contributing-anniversaries\/\" target=\"_blank\" rel=\"noopener\">archive<\/a>).<\/p>\n<p class=\"wp-block-paragraph\">Commit-iversaries: <a href=\"https:\/\/jonathandesrosiers.com\/2020\/11\/two-years-my-wordpress-commit-iversary\/\" target=\"_blank\" rel=\"noopener\">Two<\/a>, <a href=\"https:\/\/jonathandesrosiers.com\/2023\/11\/five-years-my-wordpress-commit-iversary\/\" target=\"_blank\" rel=\"noopener\">Five<\/a>, <a href=\"https:\/\/jonathandesrosiers.com\/2024\/11\/six-years-a-committer-my-wordpress-commit-iversary\/\" target=\"_blank\" rel=\"noopener\">Six<\/a>, <a href=\"https:\/\/jonathandesrosiers.com\/2025\/11\/seven-years-a-committer-my-wordpress-commit-iversary\/\" target=\"_blank\" rel=\"noopener\">Seven<\/a> (<a href=\"https:\/\/jonathandesrosiers.com\/category\/commit-iversaries\/\" target=\"_blank\" rel=\"noopener\">archive<\/a>).<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n<p class=\"has-text-align-right has-small-font-size wp-block-paragraph\"><em>Featured image credit: <a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\" target=\"_blank\" rel=\"noopener\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/72361fea8c\/\" target=\"_blank\" rel=\"noopener\">photo<\/a> by <a href=\"https:\/\/wordpress.org\/photos\/author\/westguard\/\" target=\"_blank\" rel=\"noopener\">Mark Westguard<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\" target=\"_blank\" rel=\"noopener\">WordPress Photo Directory<\/a>.<\/em><\/p>\n<p class=\"wp-block-paragraph\">\n<p>The post <a href=\"https:\/\/jonathandesrosiers.com\/2026\/07\/13-years-contributing-to-wordpress\/\" target=\"_blank\" rel=\"noopener\">13 Years Contributing to WordPress<\/a> appeared first on <a href=\"https:\/\/jonathandesrosiers.com\/\" target=\"_blank\" rel=\"noopener\">Jonathan Desrosiers<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thirteen years ago today, I received my very first props for contributing to WordPress Core. If my WordPress contribution journey were a person, it would now be a teenager. It\u2019s pretty wild to think about, but I\u2019ve now been contributing to the WordPress project in some way for a third of my life! What is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11287,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"blog_post_layout_featured_media_urls":{"thumbnail":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-150x150.jpg",150,150,true],"full":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1.jpg",1024,1024,false]},"categories_names":{"1":{"name":"Uncategorized","link":"https:\/\/4ksamachar.com\/?cat=1"}},"tags_names":[],"comments_number":"0","wpmagazine_modules_lite_featured_media_urls":{"thumbnail":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-150x150.jpg",150,150,true],"cvmm-medium":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-300x300.jpg",300,300,true],"cvmm-medium-plus":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-305x207.jpg",305,207,true],"cvmm-portrait":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-400x600.jpg",400,600,true],"cvmm-medium-square":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-600x600.jpg",600,600,true],"cvmm-large":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1.jpg",1024,1024,false],"cvmm-small":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1-130x95.jpg",130,95,true],"full":["https:\/\/4ksamachar.com\/wp-content\/uploads\/2026\/07\/plumber-of-wordpress-1024x1024-K1Yyd1.jpg",1024,1024,false]},"_links":{"self":[{"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/posts\/11286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11286"}],"version-history":[{"count":0,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/posts\/11286\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=\/wp\/v2\/media\/11287"}],"wp:attachment":[{"href":"https:\/\/4ksamachar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/4ksamachar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}