How I made my first commit to WordPress 🔗 **Source:** [How I made my first commit to WordPress](https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/) > [!note]+ Document Notes > tags: [WordPress, SVN, WSL2, TortoiseSVN, Gutenberg, GitHub-CLI] > author: Aki Hamano > source: aki-hamano.blog > reference: [https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/] > date created: 2025-10-30 00:00 > > # 🏷️ Title: How I made my first commit to WordPress > <!-- deep-read:sections start --> ## 🧭 Table of Contents - [📝 Summary](#-summary) - [📖 Main Content](#-main-content) - [🗒️ Notes](#️-notes) - [📚 References](#-references) - [🗣️ Paraphrase](#️-paraphrase) - [📰 Newsletter](#-newsletter) - [✅ Action Items](#-action-items) - [🧪 Hypotheses](#-hypotheses) - [📊 Methodology](#-methodology) - [❓ Questions](#-questions) - [🔮 Future Research](#-future-research) - [💡 Implications](#-implications) - [🧠 Learning Styles Assessment](#-learning-styles-assessment) - [📊 Accessibility Assessment](#-accessibility-assessment) - [🌍 DEIB Assessment](#-deib-assessment) - [✅ Logical Validity](#-logical-validity) - [🛡️ DARVO Analysis](#-darvo-analysis) - [🎯 Conclusion](#-conclusion) ### 🔗 References - Include links cited in or relevant to the article. ## 📝 Summary - What happened: Author documented the workflow and steps to make their first WordPress core commit using SVN on Windows after years contributing via GitHub (Gutenberg). - Why it matters: Shows practical bridge from Git/GitHub to WordPress’s SVN-based core, including Windows/WSL nuances. - Key stakeholders: WordPress core contributors, Windows/WSL developers, Gutenberg contributors moving upstream. - Risks and tradeoffs: Tooling mismatch (Git vs SVN), CLI vs GUI comfort, Windows path/patch issues. - Bottom line: A reproducible pathway: prepare SVN on Windows, apply approved PR via Grunt (with patch.exe available), and commit with TortoiseSVN; verify in Trac. ## 📖 Main Content - Core arguments: - WordPress core uses SVN; contributors familiar with Git/GitHub need a distinct setup on Windows. - WSL2 is great for day-to-day dev, but setting up SVN on the Windows host avoids confusion with the GitHub mirror. - TortoiseSVN lowers friction for first-time commits; CLI can come later. - Context/definitions: - Gutenberg on GitHub uses Git; wordpress-develop mirror exists for reviews, not merges. - Trac is WordPress’s bug tracker where changesets appear after commit. - Uncertainties: - Whether committing entirely from WSL2 SVN CLI would be equally smooth on all setups. - Durability of Grunt-based PR-apply flow if tooling changes. ### 🗒️ Notes - “My first contribution to WordPress development was in May 2020.” Focused on Gutenberg; learned Git, branches, PRs. - WordPress core is SVN; became core committer July 2024 but hadn’t committed personally until now. - Environment: - Editor: Cursor with WSL plugin; most dev in WSL2 (Ubuntu) for speed and rebuild safety. - Repo: cloned wordpress-develop fork in WSL. - Node versioning: Volta; primarily Node 22; downgrade per-project as needed. - Git QoL: - Aliases for status/checkout/branch/log — quick history and branch ops. - GitHub CLI used to fetch/review/test PRs locally. - Preparing to commit: - Created local SVN working copy on Windows host (per advice from Windows-using committers). - Installed TortoiseSVN with “command line client tools” enabled. - Checked out trunk into wordpress-svn/trunk; verified svn info. - npm install for Grunt tasks; ran svn up and svn revert -R . for a clean slate. - Applying an approved PR: - Used Grunt task to apply GitHub PR to local SVN. - Hit “Fatal error: spawn patch ENOENT” — patch command missing. - Solution: use Git Bash (Git for Windows includes patch.exe) and re-run; patch applied. - Committing: - Used TortoiseSVN → Commit; pasted prepared message; authenticated with wp.org credentials; commit succeeded. - Verified in Trac as changeset 61089; thanked advisors. ## 📚 References - WordPress Trac changeset 61089 (commit verification): https://core.trac.wordpress.org/changeset/61089 - TortoiseSVN: https://tortoisesvn.net/ - Windows Subsystem for Linux (WSL2): https://learn.microsoft.com/windows/wsl/ - Volta (Node version manager): https://volta.sh/ - GitHub CLI: https://cli.github.com/ - WordPress Subversion guidelines: https://developer.wordpress.org/cli/commands/export/#subversion and https://make.wordpress.org/core/handbook/svn/ ## 🗣️ Paraphrase - Paragraph A: The author began contributing via Gutenberg on GitHub in 2020 and learned Git workflows but needed to switch to SVN for WordPress core. - Paragraph B: On Windows, they set up SVN with TortoiseSVN, applied an approved PR using a Grunt task (fixing a missing patch.exe by using Git Bash), then committed and confirmed the changeset in Trac. ## 📰 Newsletter - Making your first Core commit on Windows? This walkthrough shows how a longtime Gutenberg contributor bridged Git → SVN. Highlights: WSL2 for day-to-day speed, Volta to tame Node versions, GitHub CLI for PR testing, and TortoiseSVN to land the commit. Pro tip: if Grunt errors with “spawn patch ENOENT,” run it in Git Bash so patch.exe is on PATH. Verify in Trac (e.g., changeset 61089). Resources: TortoiseSVN, WSL2, Volta, GitHub CLI, and WordPress SVN docs. ## ✅ Action Items #### DevRel - Publish “Git-to-SVN for Core on Windows” quickstart with screenshots. - Record a 5-min demo: apply PR via Grunt; resolve patch ENOENT. - Provide sample commit messages and review checklists. #### OSPO - Document Windows/WSL SVN workflows; include PATH/patch.exe guidance. - Add license and contribution policy pointers for WordPress core mirrors. #### Community - Pairing sessions for first-time committers on Windows. - Rotate “first-commit” office hours post-release. #### WordPress - Core: Add note in contributor docs about using Git Bash for patch.exe on Windows. - Core Performance: Provide preflight scripts to ensure toolchain readiness. - Core AI: N/A - Core Program Team: Maintain onboarding flow for Windows users; retros on common errors. - Mobile/Playground/etc.: N/A for this post. - Documentation: Update “Apply PR to SVN” with Windows-specific steps and screenshots. - Accessibility/Meta/CLI/etc.: Ensure contributor tooling pages meet WCAG and are up to date. #### The WPOCC - Microgrants for first-commit mentorship and tooling guides. - Documentation sprint focused on Windows contributor paths. ### FAIR - Publish transparent contributor workflow artifacts; version and sign guides. - Add sunset notes when tasks/tooling change. ## 🧪 Hypotheses - Windows users are more successful committing when using TortoiseSVN initially vs CLI-only. - Grunt PR-apply failures on Windows correlate with missing patch.exe in PATH. - Hosting SVN on Windows host (not WSL) reduces mirror confusion and setup errors. - Providing GitHub-to-SVN guides increases first-time core commits from Gutenberg contributors. ### 📊 Methodology - A/B onboarding: TortoiseSVN-first vs CLI-first; measure completion and error rates. - Telemetry: log PR-apply task failures and missing patch.exe incidents. - Survey contributors on Windows about setup friction and time-to-first-commit. ### ❓ Questions - Should official docs recommend Git Bash specifically for patch.exe on Windows? - Can the Grunt task auto-detect and suggest installing patch? - Would a Playground-like flow for core commits reduce platform variance? ### 🔮 Future Research - Create a cross-platform “preflight” script for core contributors. - Evaluate replacing/augmenting Grunt PR-apply with a Node-native flow. ### 💡 Implications - Practice: Provide platform-specific setup recipes. - Policy: Clarify GitHub mirror’s review-only status to avoid merge confusion. - Education: Short videos for common Windows errors. - Funding: Support maintainers producing platform guides. ### 🧠 Learning Styles Assessment - Reading level estimate: Flesch-Kincaid Grade ≈ 9–10. #### 👀 Visual learners - Present: Screenshots (installer, commit dialog). - Improve: Architecture of GitHub mirror ↔ SVN; PR-to-patch flow diagram. #### 🔊 Aural learners - Improve: 3–5 min narrated walkthrough. #### 🗣️ Verbal learners - Present: Clear step-by-step language. - Improve: Glossary (Trunk, Trac, changeset). #### 🧩 Kinesthetic learners - Present: Concrete steps to reproduce. - Improve: Checklist with verification after each step. #### 🧠 Logical learners - Present: Ordered tasks, causes (ENOENT → missing patch). - Improve: Decision tree for environment choices (WSL vs host). #### 🧑‍🤝‍🧑 Social learners - Improve: Link to Slack channels and pairing offers. #### 🧘‍♀️ Solitary learners - Improve: Self-check questions after each milestone. #### 🌿 Naturalistic learners - N/A. ### 📊 Accessibility Assessment #### Screen reader semantics - Improve: Ensure alt text for images/screenshots; language attributes. #### Keyboard navigation - Improve: Clear focus states in any embedded UI demos. #### Contrast and readability - Improve: Check screenshot annotations for 4.5:1 contrast. #### Text resizing and reflow - Present: Likely responsive; verify at 200%. #### Media and captions - Improve: Add captions if video demo is added. #### Forms and interactions - N/A. #### Standards reference - Map to WCAG 2.2 AA: 1.1.1, 1.4.3, 2.4.3, 2.4.7. ### 🌍 DEIB Assessment #### Cultural breadth - Improve: Invite contributions from non-English locales; translation links. #### Inclusive language - Present: Neutral, welcoming tone. #### Neurodiversity support - Present: Chunked steps. - Improve: Consistent headings with checklists. #### Representation - Improve: Inclusive imagery/alt text if adding visuals. #### Psychological safety - Present: Acknowledges learning curve; thanks advisors. ### ✅ Logical Validity #### Strong reasoning - Causal: ENOENT → missing patch.exe; fix by using Git Bash. Clear, testable. - Inductive: Windows committers’ advice led to host SVN setup; plausible. #### Fallacies - None apparent. #### Tone of voice - Practical, reflective, appreciative. ### 🛡️ DARVO Analysis - No denial/attack/reversal patterns; collaborative, non-defensive sharing. ## 🎯 Conclusion - Bottom line: Use Windows host SVN with TortoiseSVN, apply approved PR via Grunt in Git Bash (so patch.exe is found), then commit and verify in Trac. - Next steps: Update contributor docs with Windows notes; provide a short demo; add preflight checks for patch availability. ## 🧱 Refactor Appendix (append after 🎯 Conclusion) <!-- Goal: Use Note Refactor’s built-ins to spawn Fleeting, Literature, and Atomic notes. --> ### 📚 Literature Split Pad - Purpose: Stage Konik CEE units that become per-source Literature notes. - Split level: H3. - Include verbatim quotes under 25 words and a [view highlight] link. ### [H1] Git-to-SVN workflow on Windows works > [!quote] [How I made my first commit to WordPress](https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/) by [[Aki Hamano]] via [[aki-hamano.blog]]. Published 2025-10-30. Accessed 2025-10-30. > “The WordPress core source code is managed using SVN, not Git.” Context: Explains shift from GitHub (Gutenberg) to SVN for core. Use: onboarding Windows contributors. [view highlight](https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/#H1) #xref #articleseed ID:rw_[MISSING] ### [H2] Patch ENOENT fixed by using Git Bash > [!quote] [How I made my first commit to WordPress](https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/) > “Fatal error: spawn patch ENOENT.” Context: Missing patch.exe on PATH; Git for Windows supplies it. Use: troubleshooting guide. [view highlight](https://aki-hamano.blog/en/2025/10/30/how-i-made-my-first-commit-to-wordpress/#H2) #xref ID:rw_[MISSING] --- ### 🔖 Atomic Split Pad (Zettel Candidates) - Purpose: Promote reusable claims into Atomic notes. - Split level: H4. - Each item: one idea, present tense, specific, testable. #### [Z1] Git Bash provides patch.exe on Windows - Applies when Git for Windows is installed. Pointer: ENOENT case during Grunt PR apply. - Links: [[Windows-Tooling]] [[WordPress-Core-Workflow]] #### [Z2] TortoiseSVN eases first-time core commits - Applies to Windows first-time committers. Pointer: successful commit flow and Trac verification. - Links: [[SVN]] [[Onboarding]] --- ### ✏️ Fleeting Queue (Extract by Selection) - [F1] Draft a Windows “preflight” script for patch and SVN. #fleeting #inbox - [F2] Record a 5-min demo: apply PR via Grunt in Git Bash. #fleeting #inbox - [F3] Update docs: GitHub mirror is review-only; no merges. #fleeting #inbox --- <!-- deep-read:sections end -->