Skip to content

release: v13.36.0 - #480

Merged
ogorzalka merged 47 commits into
developfrom
release/v13.36.0
Oct 14, 2026
Merged

ogorzalka merged 47 commits into
developfrom
release/v13.36.0

Conversation

@ogorzalka

Copy link
Copy Markdown
Member

Merges the release branch into develop (extractions: discovery, attributes, wp-rest, wp-cli, schedule; Laravel 13.36; fixes #443, #477, #478). Then develop → main and the tag.

Two ports, InstanceResolverInterface and DiscoveryRegistrarInterface,
replace the container in the engine, the instance pool and the reflection
cache; DiscoveryCacheManager takes its driver and logger, and the Laravel
provider builds them. Adds a PSR-16 cache driver, an architecture test for
the part that becomes pollora/discovery, and fixes the benchmarks' memory
measurement.
The engine, its contracts, the cache and #[SkipDiscovery] now come from
pollora/discovery, with the same class names. The framework keeps the
Laravel side: provider, commands, registrar, adapters, and the
post type and taxonomy support.
refactor: let discovery run without Laravel's application
refactor: require pollora/discovery instead of shipping it
Post type and taxonomy attributes implement ConfiguresArguments, a pure
function of their own values, and the method attributes
ConfiguresArgumentsWithMethod; the discoveries apply them. #[Method]
routes are registered by WpRestRouteRegistrar, default names come from
an internal Naming helper matching Str, and the dead handle() methods of
Action, Filter and WpRestRoute are gone. Pollora\Attributes no longer
reaches Laravel or a framework service, which an architecture test keeps.

Fixes an #[Action] or #[Filter] method of a post type or taxonomy class
being registered a second time on the discovery's configuration object.
refactor: let attributes declare what they register
refactor: require pollora/attributes instead of shipping the attributes
WpRestDiscovery resolves controllers through the discovery's instance
pool and hands custom HandlesAttributes attributes the PSR-11 container
it was given, instead of app(); the wrapper takes the instance instead of
building it with resolve() for its logger. An architecture test keeps the
module to attributes, discovery, PSR contracts and WordPress.

Fixes a REST controller with a constructor dependency never being built.
refactor: let the WpRest module run without Laravel's application
WpCliDiscovery builds commands through the discovery's instance pool instead of resolve(). An architecture test keeps the module, provider and generator aside, to the attributes, discovery, PSR logging and WP-CLI.
refactor: let the WpCli module run without Laravel's application
ScheduleDiscovery derives default hook names itself, matching Str::snake() so scheduled hooks keep their name. Adds the first tests that run the discovery, a parity test and an architecture test; the bridge to Laravel's scheduler stays in the framework.
refactor: let #[Schedule] run without Laravel
refactor: require pollora/wp-rest instead of shipping the WpRest module
refactor: require pollora/wp-cli instead of shipping the WpCli module
ScheduleDiscovery moves to pollora/schedule with its FQCN; the framework gives the schedule engine its container. The bridge to Laravel's scheduler stays.
config/schedule.php names the driver (POLLORA_SCHEDULE_DRIVER) and the hooks
that stay on WP-Cron. pollora:schedule:list reads the cron option, which now
indexes every driver's events, and shows each one's type and driver;
pollora:schedule:migrate moves pending events between drivers. pollora:doctor
and Site Health report an unknown or missing driver, and events a former
driver still keeps.
refactor: require pollora/schedule instead of shipping ScheduleDiscovery
feat: choose the scheduling driver, list and migrate scheduled events
ogorzalka and others added 17 commits October 13, 2026 16:08
The laravel driver queues each event as a job delayed until it is due; the cron
option is its record. Removes use_laravel_scheduler, Scheduler, Events, Jobs\JobDispatcher,
RegisterSchedulerFiltersUseCase and the wp_events table. Adds pollora:schedule:recover.
…e engine is created

The driver is chosen while providers register, so it resolves the bus when a job is queued.
Requires pollora/schedule ^0.1.3 (Identifies).
feat: laravel scheduling driver, remove the Laravel scheduler bridge
Map Laravel's app.env to a default WP_ENVIRONMENT_TYPE before WordPress loads, so
app.env=local produces local. dev, development, testing and staging are mapped too;
an explicit process environment value, a configured constant or a constant already
defined still wins.

Fixes #443.
…utside production

The site now reports its environment as local, so the trackback test needs the
wp_should_disable_pings_for_environment filter. The changelog says what the new
environment changes for pings.
fix(wordpress): map app.env to WP_ENVIRONMENT_TYPE
chore(deps): require Laravel 13.36
…erval

fix(schedule): give a recurring event of the laravel driver its interval
fix: listen to queued asynchronous actions at boot
chore: merge develop into the release
@ogorzalka
ogorzalka merged commit a711f91 into develop Oct 14, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants