How to manage plugins for multiple websites? Composer

Hello all,

Let’s say our company has 100 WP websites with Bedrock and Sage. On all websites we are using the ACF plugin. What if ACF is updating there plugin from 5.6 to 5.7. Is there an easy way to the update the plugin on all webistes? Or do i have open composer.json for every project and update the number?

Is there a bulk way to do this? For instance one place to update the number for multiple projects.

Thanks for your time :grinning:

TL;DR: Out of the box, no. You will need to manually update the plugin on each site.

You could look into a service that creates pull requests for new dependency updates — they do exist if you look around. Of course, you would still need to test the update on each site to ensure there are no issues — and there are many tools and methods of testing you could employ to help speed up this process (i.e. continuous integration tools, visual regression testing, etc.).

Now, if you just want a quick way to update the plugins without testing each site individually, then you aren’t going to find it with Roots projects, as it is a bad practice. Roots encourages a workflow that looks like this:

Development → Staging (optional) → Production

This forces the developer to run changes in a development environment where they can catch and fix issues ahead of time, before pushing the changes towards production (customer facing).

If your company is managing a massive amount of websites and doesn’t have the care to make sure each site works before pushing updates, then perhaps they need more developers to ensure the best quality possible. Otherwise, if you — that one developer — press the update button on 100 websites and a good portion or even all of them break, you’ll discover your limits very quickly, as fixing them will take exponentially longer and probably be incredibly stressful considering how many people it would affect. The necessity to take more care of each site will in turn take care of both your company and its employees (i.e. developers), and your clients and their customers.

2 Likes

This isn’t necessarily a best practice, nor fully automatic, but it’s close. This is how I manage my update process: Shell script for updating production sites