So let me elaborate more on where my suggestion was coming from.
By day (at least for the past 16 years) I work in Information Security in Critical Infrastructure (energy & utilities). My background is cybersecurity, and more specifically vulnerability management.
My WordPress experience goes back quite a long ways to when I transitioned my blog at the time over to WordPress from Moveable Type when MT changed their license. I don’t remember what version of WordPress it was but I do remember that guacamole green theme that it had. (I still liked that theme.)
Anywho, I’ve been a WordPress user ever since with a Joomla site here and there for good measure.
Every day I deal with vendors and applications who either don’t plan for security updates very well, or let alone don’t have an effective process for keeping their applications updated.
As we all know every piece of software has vulnerabilities. If you don’t think your application or plugin or theme doesn’t have vulnerabilities your hubris is showing.
So when those vulnerabilities are discovered, and when vendors patch and fix those vulnerabilities, getting those updates out as quickly as possible helps reduce the risk that vulnerability will then be exploited by a malicious actor.
WordPress has done a pretty decent job with its automatic updates of plugins and theme in recent versions, but that process is far from perfect and is riddled with problems.
Every single one of my sites that had CloudFlare’s official plugin installed broke not too long ago thanks to WordPress’ automatic plugin updates.
It wasn’t WordPress’ fault, it was CloudFlare’s. But because CloudFlare updated their plugin and pushed it out WordPress gladly updated and then bricked my site.
There is no way to roll-back a bad update in the current situation.
But I don’t only just run WordPress for my personal sites.
I also run some Pleroma sites (erlang/ elixir), a personal NextCloud, prosody, PixelFed, and others.
It’s normal for me to do a git pull
and pull down the latest source for pleroma when a new version is released.
And in fact I’ve had to roll-back to previous versions when I couldn’t upgrade for whatever reason.
And that’s relatively easy to do in git, too.
Not to mention I’ve been bit more than once if I accidentally modified the source code for a file in Pleroma when I would go to do another git pull that git would complain and tell me that one of my files has been modified outside of the repository.
And this seemed like a perfect example then of alerting the user that maybe a hacker had inadvertently modified something without the site owner realizing.
And I got to thinking, wouldn’t it be great if ClassicPress adopted some of those same techniques.
After all, the plugins are already required to be hosted at GitHub.
So that’s kind of what the drive was for my suggestion.
Look, whether it’s git-php or something different doesn’t really matter.
The crux of what I was suggesting was to take full advantage of everything the GitHub offers you. If you’re going to make that be a dependency (and I agree that is a logical initial step but maybe future versions would support Gitlab?) and if you’re moving towards using composer to install the cms (which is awesome by the way. PixelFed uses both composer
and laravel
and administering that installation is pure joy) then supporting git and all that it offers didn’t seem to be too far of stretch.
(Edit: I also wanted to add I also run my own Discourse installation too. Have you guys looked at what Discourse does for plugin management? It is freakin’ beautiful. You put the GitHub URL in the Discourse config and when you go to check for new versions, Discourse automatically downloads and installs the latest version directly from GitHub. That’s what I was originally thinking of. And, okay so it doesn’t make since with a WordPress fork to require the plugins to be specifically set in wp-config.php but the idea on the backend is what I was referring to.)