The first release where installing a package is one command. Auto-discovery removes two config edits per package, and hides the fact that they happened.
Adding a field to a core REST response means either filtering the prepared object, which is fragile, or registering the field properly so it appears in the schema…
A 400ms pause on every request, once an hour, caused by a cache cleanup nobody thought of as expensive. Redis is single-threaded, and freeing memory is work.
Every class constant has been public since constants existed, so an internal lookup table intended as an implementation detail was part of the public API whether or not…
PASSWORD_DEFAULT is explicitly allowed to change between releases, and it does. Anything storing the constant’s current value, or sizing a column for today’s output, is storing a decision…
A child class could never remove a parameter type from a method it overrides, even though accepting more than the parent is safe by the same rule that…
An order, a refund and a subscription are all shop_order-ish posts and are not the same class, so code type-hinting WC_Order breaks the first time a refund arrives.…
Composer downloads packages one at a time, which on a cold cache with sixty dependencies is mostly waiting on latency. A plugin parallelises it and the improvement is…
Reads moved to a replica and checkout started showing empty carts. Read-after-write, sticky connections, and measuring the lag rather than assuming it.