WordPress development environment

As a community, we need unified documentation on setting up a WordPress development environment. The current problem is that we have several different ways and locations documented, so depending on how a developer may start in WordPress may differ greatly from others.

The ideal scenario is one set of quality documentation that all the handbooks can point to help guide someone new to the project in setting up a development environment.

A few new wrinkles as this is not just a documentation issue.

There has been a fair amount of effort going towards making wp-env that standard. The benefit is wp-env allows for a small set of commands to get started. A developer doesn’t need to setup web servers, PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher, or databases, it is all handled by containers. In this case, Docker.

Unfortunately with recent news, Docker Desktop is no longer free. The Docker engine itself is open-source and one of the main reasons it has grown in popularity. However, the Docker Desktop is not, and it is the primary (and easiest) way to install a Docker VM on Windows/Mac. Linux doesn’t require a VM to run Docker, can’t we all just switch to Linux? 😉

The services agreement for Docker Desktop:

4.2 Specific License Limitations – Docker Desktop.

(a) The Docker Desktop component of the Service at the level of the Personal Offering (as described on the Pricing Page) is further restricted to: (i) your “Personal Use”, (ii) your “Educational Use”, (iii) your use for a non-commercial open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. project, and (iv) your use in a “Small Business Environment”.

(b) For purposes of this Section 4.2: (i) “Personal Use” is the use by an individual developer for personal use to develop free or paid applications, (ii) “Educational Use” is the use by members of an educational organization in a classroom learning environment for academic or research purposes or contribution to an open source project and (iii) a “Small Business Environment” is a commercial undertaking with fewer than 250 employees and less than US $10,000,000 (or equivalent local currency) in annual revenue.

The Section (a) restrictions above reads that Docker Desktop is allowed for personal and open-source use, but not if you work for a company with more than 250 employees or more than $10m revenue.

These restrictions are not in-line with the WordPress community and the open source ethos we want to promote. This makes it difficult to suggest Docker as the primary tool for setting up a development environment.

Which leads us to this post and discussion. What development environment should we recommend for new WordPress developers?

The main criteria I see for a tool are:

  • open-source
  • ease of use to setup and run
  • cross-platform (Windows, Mac, Linux)

If there is no good solution, do we consider creating our own? Or reviving a previous attempt at creating a simple development environment?

These are some initial thoughts to get the discussion started, what do y’all think?

Thanks to @cbringmann and @tellyworth for reviewing this post.