Submitting a Patch

Overview

Once you’ve edited the file and tested it, you need to create a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. and upload it to the corresponding TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. so other people can see and test the changes. You can create a patch a number of ways.

When using an IDEIDE Integrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality. or a Subversion client a patch can be created directly by the application. The patch should be created from the root directory (the folder that contains the /src directory, the wp-config-sample.php file, etc.).

Windows

If you are on Windows, consider using Tortoise SVN. You can read our tutorial on creating a patch with Tortoise SVN.

Mac/Linux Command Line

From Mark Jaquith’s Tutorial

Make a patch, for filename.php:

$ svn diff filename.php > filename.diff

Make a patch for all files modified in the checkout:

$ svn diff > big_patch.diff

Apply a patch from someone else:

$ patch -p0 < patch.diff

There are some GUI options for the Mac, as well — you just need it to create patch files (Versions cannot, for example).

Also: creating SVN patches using Git, from Cristi Burca.

Adding your GitHub fork to your WP trunk copy

First of all you need your own WordPress fork somewhere, usually on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ (also because there is the mirror). After creating a fork, a branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a “branch”, such as “the 4.0 branch”. (is important to not work on the master/trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running “trunk”, then you are on the latest revision. branch to avoid conflicts) you need to add this new remote to your git instance.

git remote add fork git@github.com:WordPress/wordpress-develop.git

Change in this command with the repo url or the git url as you prefer

Now it is time to a command to align your local git instance git fetch --all

Now you are able to switch to a master from your fork with this command as example git checkout fork/44722 or create a new branch like git checkout -b 44722, this command require to switch to the fork instead of the official version and you can achieve it with git checkout fork master.

Now you can use as usual git and create all the code changes that you need, commit and so on. If you open now the GitHub mirror (and you associated your WP profile to GitHub) you get a on the GH page a button to create a new pull request because it detected this change.

The next step is to add a name to the pull request that need to include the ticket number as explained here. For other information about GitHub integration check this documentation page.

10 responses to “Submitting a Patch”

  1. andrewspittle Avatar

    This is probably worth reading through in order to flesh this list out.

    https://codex.wordpress.org/User:HEngel/How_To_Become_A_WordPress_Developer

  2. inderpreet99 Avatar

    There are 3 links to Mozilla/Firefox that should be replaced by WordPress-equivalent.

    Replace: Picking bugs to work on: https://developer.mozilla.org/en/Hacking_Firefox

    With: Picking bugs to work on: https://core.trac.wordpress.org/report

    Replace: Knowing where to ask for help: https://developer.mozilla.org/en/Hacking_Firefox

    with: Knowing where to ask for help: (forum? IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net.?)

    1. Andrew Nacin Avatar

      I found those Mozilla pages in my research and I want them to inspire us as a good model. To put it another way, I don’t think our current equivalents are good enough.

  3. Siobhan Avatar

    I wrote a guide to contributing to WP using GithubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ for Mac: https://docs.google.com/a/wordsforwp.com/document/d/16Hzc0_Z1c8VSMJplAk4dcBter3ntlfVeyyCO56VANA4/edit

    Would like to contribute it to the manual but not sure how. cc @ipstenu @andrewspittle

  4. John Blackbourn (johnbillion) Avatar

    Do we have a page (or section) anywhere yet which mentions that trivial patches that *only* fix coding standards are discouraged?

  5. Daniel Bachhuber Avatar

    Couple of things:

    • Should mention to make patches from WP root directory.
    • Naming approach for patches.
    1. Eric Andrew Lewis Avatar

      Agree on the first point, came here to make that comment 😉

  6. Evan Herman Avatar

    I am trying to submit my first patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing., but the instructions for Windows are not very clear. It says to use tortoisesvn, but it doesn’t give any instructions how. Thanks!

    1. Dave Clements Avatar

      Evan, I just wrote an article yesterday that walks you through creating and submitting a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. using TortioseSVN: http://www.doitwithwp.com/submit-patch-wordpress-core-beginners/

s
search
c
compose new post
r
reply
e
edit
t
go to top
j
go to the next post or comment
k
go to the previous post or comment
o
toggle comment visibility
esc
cancel edit post or comment