Contributing to Code without Coding

I’ve been working at Woo for over almost two years now. During that time, I’ve learnt a lot. While working with the different plugins, themes and extensions we offer, it is normal to encounter bugs: small (or big) things in the software not working as they should.

Using Software and Reporting Bugs

Just using the software already lets you contribute to the code. Even if you don’t understand the code behind a process, then you can still experience if something isn’t going as it should.

Which leads to an important second step of this: if you nowhere report that things are going badly, no one will know. In that case, you’re not actually helping. So if you encounter a bug, let the developer know.

I use the Storefront theme quite a bit. It’s a great theme with a great team behind it. In my time using it, I’ve seen a few things that didn’t work as they should. This is how to report a bug to storefront:

  • Make sure it’s an actual bug. Ask a friend to test if they’re having the same problem. Otherwise, you might unnecessarily annoy the busy developer.
  • Make an account on Github. The code is managed in this database. Before you can contribute to it, you need an account there.
  • Go to the Storefront repo > Issues. There you can see what the code looks like. Under issues, you can see all the problems that people have identified. Screen Shot 2016-05-09 at 4.35.43 PM.png
  • Find out if no one else has identified the issue. You might not be the first person to experience this problem. You make it a lot easier if you don’t repeat others. If you see someone having the same problem, you can just leave a comment there.
  • If you’re convinced it’s a problem, and no one else has reported it, create a new issue. Be as descriptive as possible. Leave a good title. Use screenshots to show what you’re experiencing. The easier you make it for the dev to recreate the problem, the faster it can be solved.

Change the Code

WordPress code is a combination of HTML, CSS, PHP, and JavaScript. Let me let you in on a secret: you don’t need to be an expert to write small patches to the code.

Say what?

Yes, even without understanding these coding languages in depth, you can make small changes. I’ve experienced this myself with WooCommerce. WooCommerce is our most important product, and obviously, we all work with it quite regularly.

Little over half a year after starting at Woo, I was tired of submitting issues for something as simple as changing the text a bit. This doesn’t really require knowing PHP. It just means that you are good at using the search function.

Here’s what I use as workflow for editing WooCommerce:

  • Fork WooCommerce. This means that you make a copy of WooCommerce to your personal GitHub account. contributing-to-code-6
  • Clone it to your computer. I use the GitHub Desktop App for this. Click on the + icon. Then Clone. Finally, start typing WooCommerce and select where you want to put the plugin. (Ideally, you copy it to the wp-content/plugins folder of your local website. That way you’ll be able to see the changes you make.) contributing-to-code-2
  • Create a new branch. This will create a new version of the plugin that you can edit next to the master branch. You can have several branches in one go. Say I want to edit the text of the product pricing; I’ll probably call the branch copy-productpricing-fix.)
  • Then I will open WooCommerce in my code editor. I use Atom because I like how it’s connected to GitHub and the desktop app (it’s made by the same company). I also like that it’s free.
  • Edit the code and save it.
  • In the GitHub Desktop App, you’ll now be able to find “Uncommitted changes”. If you click on it, you’ll be able to see all the files that have been updated, and what those changes are. In the example below, I’ve changed “Add to cart” to “Purchase”.
  • Commit the change. Committing the changes means that you save the changes to the branch. contributing-to-code-3
  • Finally, submit a Pull Request. By default, it’ll ask you to submit it to the master branch of your fork, but you could also submit it directly to the woothemes/master branch. This means that I send the WooCommerce developers a request to add my edit to WooCommerce Core. contributing-to-code-4
  • That it, it’s out your hands now and time for the WooCommerce developers to either accept or reject your proposal.

For the above example, I’m very sure it would be rejected (because I know that “Add to Cart” was chosen very deliberately). However, if you’re serious about your changes, and you add a good argument for it to your pull request, the devs might just agree with you and make you a contributor to WooCommerce Core.

Since my first pull request ever on June 3, 2015, I’ve submitted 14 pull request to date. 2 of those were not merged, but 12 were. Because of that, on the list of contributors, I’m now #40. That means that only 39 other people have added more code to WooCommerce core than me. contributing-to-code-5

Most of my contributions are change to the text, not to the PHP code. You can get there too!