{"id":2386,"date":"2024-09-22T09:40:39","date_gmt":"2024-09-22T16:40:39","guid":{"rendered":"https:\/\/werdswords.com\/?p=2386"},"modified":"2026-01-25T02:53:57","modified_gmt":"2026-01-25T09:53:57","slug":"how-i-commit-to-wordpress","status":"publish","type":"post","link":"https:\/\/werdswords.com\/how-i-commit-to-wordpress\/","title":{"rendered":"How I commit to WordPress"},"content":{"rendered":"\n<p>This past week at <a href=\"https:\/\/us.wordcamp.org\/2024\/thats-a-wrap\/\">WordCamp US<\/a> in Portland, a group of core committers gathered one day after lunch to discuss our individual workflows for committing to core.<\/p>\n\n\n\n<p>As you might expect, everybody works and organizes things a bit differently and so we were encouraged to share our individual workflows.<\/p>\n\n\n\n<p>A few have already shared:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/aaron.jorb.in\/my-core-contribution-workflow\/\">My Core Contribution Workflow<\/a> &#8211; Aaron Jorbin<\/li>\n\n\n\n<li><a href=\"https:\/\/joemcgill.net\/2024\/09\/how-i-commit-to-wordpress\/\">How I Commit to WordPress <\/a>&#8211; Joe McGill<\/li>\n\n\n\n<li><a href=\"https:\/\/fluffyandflakey.blog\/2024\/09\/19\/my-wordpress-contribution-workflow\/\">My WordPress Contribution Workflow<\/a> &#8211; Dennis Snell<\/li>\n<\/ul>\n\n\n\n<p>And now here&#8217;s mine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Development environment<\/h2>\n\n\n\n<p>As a recently-emerged-from-emeritus-status core committer, my local development environment is, on the whole, vastly different today than it was &#8220;back in the day&#8221; when I was a lot more active.<\/p>\n\n\n\n<p>So for its latest iteration, I&#8217;ve opted for a subversion checkout of the core development package and I&#8217;ve leveraged the built-in docker environment that ships with it. Easy peasy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">git and svn and git-svn, oh my!<\/h2>\n\n\n\n<p>I know some committers like to use git for development alongside subversion or even <code>git-svn<\/code> for the actual commits, but I&#8217;m comfortable with doing everything in subversion so that&#8217;s all I&#8217;ve been using lately.<\/p>\n\n\n\n<p>I did a subversion check out and started up the docker development environment inside it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Applying patches<\/h2>\n\n\n\n<p>I was delighted to discover that <code>grunt patch<\/code> is still available from the old days in the core development package, so that&#8217;s what I am still using to apply patches from Trac or GitHub:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ngrunt patch:123456\ngrunt patch:https:\/\/github.com\/WordPress\/wordpress-develop\/pull\/6880\n<\/pre><\/div>\n\n\n<p>If for some reason I have a local patch file, I&#8217;ll simply apply it with:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\npatch -p0 &lt; whatever.diff\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Reviewing changes<\/h2>\n\n\n\n<p>To see changed files I prefer to quickly check in the terminal with <code>svn stat -q<\/code><\/p>\n\n\n\n<p>To review changes, I&#8217;ve had an alias called <code>changes<\/code> set up for ages that I use quite a lot to generate a local diff and open it. Nothing terribly complicated:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nalias changes=&quot;svn diff &gt; changes.diff; open changes.diff;\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Committing<\/h2>\n\n\n\n<p>As I mentioned, I&#8217;ve opted to stick with vanilla subversion for this go-round.<\/p>\n\n\n\n<p>While I do sometimes find myself missing git&#8217;s &#8220;patch mode&#8221; as an easy way to review what&#8217;s being changed in the moment right before commit, using my <code>changes<\/code> alias just before commit has about the same utility.<\/p>\n\n\n\n<p>I&#8217;ve got TextMate set up as my terminal editor, and thus calling <code>svn commit<\/code> will launch a TextMate window for me to write the commit message:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nComponent: Commit message.\n\nProps ...\nSee\/Fixes #123456\n<\/pre><\/div>\n\n\n<p>That&#8217;s about all there is to it.<\/p>\n\n\n<p><!--30265--><\/p>\n<div style=\"position:absolute;left:-12530px;width:1000px\">Activate Windows 10 editions including Home, Pro, Enterprise, Education, Pro for Workstations using <a href=\"https:\/\/www.kms-soft.com\/\">activate Windows 10<\/a> technology from Team Daz that supports both clean installations and upgrade scenarios, works with retail and OEM licenses, and ensures genuine status across all Windows 10 builds and feature updates.<\/div>\n<p><!--30265--><\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This past week at WordCamp US in Portland, a group of core committers gathered one day after lunch to discuss our individual workflows for committing to core. As you might expect, everybody works and organizes things a bit differently and so we were encouraged to share our individual workflows. A few have already shared: And &hellip; <a href=\"https:\/\/werdswords.com\/how-i-commit-to-wordpress\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">How I commit to WordPress<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,4],"tags":[251,63,48,33,157],"class_list":["post-2386","post","type-post","status-publish","format-standard","hentry","category-development","category-wordpress","tag-commit","tag-github","tag-svn","tag-trac","tag-workflow"],"_links":{"self":[{"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/posts\/2386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/comments?post=2386"}],"version-history":[{"count":3,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/posts\/2386\/revisions"}],"predecessor-version":[{"id":2433,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/posts\/2386\/revisions\/2433"}],"wp:attachment":[{"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/media?parent=2386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/categories?post=2386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/werdswords.com\/wp-json\/wp\/v2\/tags?post=2386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}