When I wrote about the VersionPress project and campaign last week, a major sticking point with people was whether the project would be licensed under the GPL. After a few consultation emails and deliberation, the developers have decided the plugin will be 100% GPL licensed.
When we set off with VersionPress and the crowd-funding campaign for it, we were focused on technical things and wanted to postpone the final decision on licensing. That was a mistake and you let us know loud and clear. We heard you and have an important and exciting announcement to make today: VersionPress will be 100% GNU GPL-licensed.
This is fantastic news and I hope those who are on the fence will consider backing the project. For those that don’t know, the GPLv2 license gives users and developers a set of freedoms. Since WordPress is licensed under the GPL, these same freedoms are passed on to everyone who uses or develops the software.
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Matt Mullenweg has a great article that articulates the significance of these freedoms. When VersionPress announced they were unsure of whether to license the plugin under the GPL, it’s not because they wanted to create something proprietary. It’s because they are two software developers outside of the WordPress community, unsure of how WordPress and its community works.
Helping Newcomers Understand Why The GPL License Is Important
After I published the article about VersionPress on WP Tavern last week, several people voiced their concern over the lack of licensing details. I got in touch with Borek Bernard and explained why so many people are concerned. I explained what the GPL means to the project and the WordPress community in general. I cited examples of successful WordPress product businesses that use the GPL.
There are two camps of people. Those who know and understand the importance of the GPL and those who don’t care what license a product has as long as it works and is supported well. At this stage of the game, WordPress products not GPL licensed are at a serious disadvantage. You won’t get as much press and risk being ignored by influential members of the community. This is especially true for new products entering the market.
I Backed The Project With $20 and Here’s Why
Despite a working copy of VersionPress not being publicly available, I feel the same amount of excitement for the project that I did when I was given a GravityForms demonstration in 2009. I’m told there are already plugins available that provide version control but most of them deal with content, not with the database itself. After listening to Bernard explain some of the features and how it would work in episode 151 of WordPress Weekly, I’m even more excited to see the project succeed.
For example, let’s say there’s a change you’d like to undo but you’ve published five posts since the change. Normally, you’d have to restore a backup which would reset the entire site back to that time frame. With VersionPress, you’d be able to drill down and only undo that change without losing everything that happened after it. In a future version, it could be possible to undo changes at the user level.
This type of granular control over database changes is huge, especially if the interface is as simple as selecting an undo button. This plugin potentially has mass appeal but I fear that a lot of users wouldn’t understand the changes being registered to the database. Hopefully, the interface does a good job of pin-pointing what parts of WordPress are altering the database to make it easier to understand.
Getting Site Wide Revision Control In Core Will Be Difficult
Even if VersionPress doesn’t get off the ground, I’ve now been exposed to the idea and will highly support any developer or team of developers to create something like it. WordPress has support for Post Revisions but again, that deals with content and not with other changes throughout the site. At some point, it would be great to see a revisions API built into WordPress that can monitor revisions of more than just content. Plugins could then take advantage of the API and build on top of it. There could be multiple implementations of VersionPress to choose from.
The road to getting something like site wide revisions into core will be difficult. In 2013, Alexander Höreth participated in the Google Summer of Code project for WordPress. His project was the Code Revisions plugin which would have added revision support to the code editors in WordPress. His work was never added to the core of WordPress. If that’s anything to go by, extending revision support to other areas of core may be just a pipe dream.
That discussion took place nine months ago. Let’s start a new discussion on the positives and negatives of a site wide revision system in core. I know there are security issues to take note of but what other concerns do you have for such a system?