A decade ago, Subversion (SVN) was the version control tool of choice for many open source and enterprise software development projects. That’s why the WordPress.org plugin and theme repositories are based on Subversion — at the time, it was the obvious choice.
But times change, and now most open source developers use Linus Torvald’s Git version control system, especially in its implementation on GitHub, which is a cross between a version control system and a social network, and is by far the most popular platform for managing and collaborating on open source projects.
The majority of WordPress plugin developers use GitHub. WordPress.org uses Subversion. Developers can use their WordPress.org Subversion repos for version control, but it lacks many of the pleasantries associated with working on GitHub — collaboration, issue tracking, and code management are just much nicer on GitHub.
Ideally, developers would be able to push right from GitHub into Subversion when they make a change to their plugin, but the systems aren’t compatible, which means developers have to manually merge to Subversion — something that slows down development workflows and complicates plugin version rollouts. That’s not a trivial issue if, like many WordPress developers, you have several WordPress plugins under development.
Deployer is a tool from plugin developer Arūnas Liuiza that aims to make it easy to push plugin code directLy from GitHub to WordPress.org. It’s not the first such tool, but is more likely to appeal to developers because it’s specifically designed to require the least amount of access to accounts on GitHub.
In a nutshell, Deployer requires a developer to add a “Deployer” user to their plugin committer list on WordPress.org. The service uses the permissions associated with that user to commit changes from GitHub.
The nice thing about this system is that it requires no permissions on GitHub. An earlier tool with the same goal — GitHub to WordPress.org code pushes — was hamstrung by its requirement for significant access to a GitHub account, and, because of GitHub’s lack of access granularity, that meant giving a web service access to all repositories associated with an account. Naturally, developers balked at the idea of handing the keys to their kingdom to a third party.
Deployer, in contrast, pulls from publicly available repositories; it requires no privileged access at all.
The downside is that Deployer requires more setup than other GitHub-to-WordPress.org tools, but it’s nothing that developers can’t handle and it’s more than worth the improved security model.
All-in-all, Deployer is a small, useful service that will make the life of WordPress plugin developers a little easier.