Since releasing Herbert I’ve been asked the same question a lot — “How do I publish my plugin on WordPress.org?”. In the past I would sent people the link to the WordPress docs (here), but that’s not the only problem. Getting the first version published is pretty easy as they require you to upload a zip upon first submission. The real problem comes after; how do I easily ship updates?
We’ve reached a point where most developers are familiar with GitHub, and as a result, Git. If you plan to do anything open source you’re likely to find yourself on there, even Apple has made the move. Unfortunately WordPress.org uses SVN, which most developers don’t use daily, or are even familiar with. It’s easy enough to pick up, but why should you learn something new to update your plugin?
For years most plugin developers have used GitHub and then shipped to WordPress.org SVN using a bash script. You’ll find plenty out there, but they require you to keep both a Git and SVN repo on your machine — plus you need to remember to run it every time you tag a new release. We thought there must be a simpler way to do this, so we put our heads together. After a few days we had built the first version of Ship.
To allow Ship to work you must already have submitted your first zip to WordPress.org. Once it’s uploaded, sign into Ship with your GitHub account, connect your plugin repo and provide access to your WordPress.org SVN account. Ship will then get notified when you tag a release on GitHub, and then automatically ship to WordPress.org in the background — no need to ever touch SVN during the whole process.