The February release types the application skeleton rather than the framework internals, which is a smaller change than the headline suggests and a useful one.
// 9.x skeleton
public function boot()
{
//
}
// 10.x skeleton
public function boot(): void
{
//
}
// the upgrade is not automatic — existing application files
// keep their signatures, and adding types is opt-in.
// minimum PHP is 8.1, which is the constraint that mattered.
Typing the skeleton matters because the skeleton is what gets copied: every project started from it inherits the habit, and every project not started from it does not. The minimum version bump to 8.1 was the harder part of this upgrade for us, and it is worth reading the framework’s own upgrade notes for the behaviour changes rather than assuming a major release on an annual cadence is mostly cosmetic.