Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
7bc6125
test: pin the URLs each asset container resolves, in build and hot
ogorzalka Oct 15, 2026
424cabe
Merge pull request #484 from Pollora/test/assets-golden
ogorzalka Oct 15, 2026
c73c6e0
refactor: give the asset classes that will leave the framework their …
ogorzalka Oct 15, 2026
d8bf1c5
fix: an enqueuer destroyed after its application never throws while r…
ogorzalka Oct 15, 2026
94576da
Merge pull request #485 from Pollora/refactor/assets-ports
ogorzalka Oct 15, 2026
2255b4b
feat: require the pollora/assets package
ogorzalka Oct 15, 2026
7b3ddf4
Merge pull request #486 from Pollora/feat/require-assets-package
ogorzalka Oct 15, 2026
d6037cd
test: freeze the surface and the behavior of Meta, Roles and Block Bi…
ogorzalka Oct 15, 2026
5d50aaf
Merge pull request #487 from Pollora/test/meta-contract
ogorzalka Oct 15, 2026
6491205
refactor: keep typed meta free of Laravel before it becomes a package
ogorzalka Oct 15, 2026
2b24b24
Merge pull request #488 from Pollora/refactor/meta-ports
ogorzalka Oct 15, 2026
100467d
refactor: keep roles free of Laravel before they become a package
ogorzalka Oct 15, 2026
8a24a6e
feat: require the pollora/meta package
ogorzalka Oct 15, 2026
9f24f92
Merge pull request #489 from Pollora/refactor/roles-ports
ogorzalka Oct 15, 2026
6175c3e
Merge pull request #490 from Pollora/feat/require-meta-package
ogorzalka Oct 15, 2026
2b6156f
feat: require the pollora/roles package
ogorzalka Oct 15, 2026
200034e
Merge pull request #491 from Pollora/feat/require-roles-package
ogorzalka Oct 15, 2026
2c59073
feat: require pollora/query 2.0 and add the term, user, comment, site…
ogorzalka Oct 15, 2026
eb2cc5c
refactor: keep block bindings free of Laravel before they become a pa…
ogorzalka Oct 15, 2026
18a6c67
refactor: load the post of a block binding through a finder
ogorzalka Oct 15, 2026
5d28b47
style: Pint on BindingContext
ogorzalka Oct 15, 2026
ca8f0ca
Merge pull request #492 from Pollora/refactor/bindings-ports
ogorzalka Oct 15, 2026
1770b1a
chore: accept pollora/query 1.x and 2.x, leave the new query facades …
ogorzalka Oct 15, 2026
f0d19ae
feat: require the pollora/block-bindings package
ogorzalka Oct 15, 2026
296f4c2
Merge pull request #494 from Pollora/feat/require-block-bindings-package
ogorzalka Oct 15, 2026
dc5758c
Merge pull request #493 from Pollora/feat/require-query-v2
ogorzalka Oct 16, 2026
9a45d42
chore: release v13.36.1
ogorzalka Oct 16, 2026
63a3905
Merge pull request #495 from Pollora/chore/release-v13.36.1
ogorzalka Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,23 @@ All notable changes to the Pollora framework will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased](https://github.com/Pollora/framework/compare/v13.36.0...develop)
## [Unreleased](https://github.com/Pollora/framework/compare/v13.36.1...develop)

## [v13.36.1](https://github.com/Pollora/framework/compare/v13.36.0...v13.36.1) - 2026-10-16

### Added
- Block Bindings live in their own package, [`pollora/block-bindings`](https://github.com/Pollora/block-bindings), which the framework requires: the resolver, the source builder and registry, `BindingContext`, the four sources Pollora ships (`pollora/post-meta`, `pollora/term-meta`, `pollora/author-meta`, `pollora/option`), `BlockBindingDiscovery`, the WordPress adapters, the editor data and script (`block-bindings.js` ships with the package) and the preview route, with their tests. Class names do not change. The framework keeps what needs Laravel: `BlockBindingServiceProvider`, `config/block-bindings.php`, the Laravel implementations of the package's contracts (`LaravelMethodInvoker`, `LaravelBindingEvents`, `LaravelPostFinder`), `pollora:binding:list`, `pollora:make:binding` and the `pollora:doctor` check
- Roles and capabilities live in their own package, [`pollora/roles`](https://github.com/Pollora/roles), which the framework requires: `RoleDefinitionBuilder`, `RoleRegistry`, `RoleCompiler`, `PostTypeCapabilityMap`, the capability readers, the WordPress adapters (stored roles, `WP_Roles` injection, label translation, role usage) and `RoleDiscovery`, with their tests. Class names do not change. The framework keeps the Laravel side: `RoleServiceProvider`, the `role` middleware, the `@role` directive, the `HasRoles` bridge (`$user->can()`, `@can`), the `pollora:roles:*` commands and the `pollora:doctor` check
- Typed meta lives in its own package, [`pollora/meta`](https://github.com/Pollora/meta), which the framework requires: `MetaAccessor` (`of()`, `schemas()`, `schemaFor()`, `extend()`), the fluent `MetaRecord`, the schema builder and repository, `MetaAuditor`, `MetaUiDrivers`, the value caster, the WordPress adapters, `MetaDiscovery` and `MetaUiDriverConformance`, with their tests. Class names do not change. The framework keeps what needs Laravel: `MetaServiceProvider`, the `Meta` facade and `HasTypedMeta`, the Laravel validator (`LaravelMetaValidator`), the `pollora:meta:*` commands and the `pollora:doctor` check
- The asset classes live in their own package, [`pollora/assets`](https://github.com/Pollora/assets), which the framework requires: `AssetManager`, `AssetContainer`, `AssetEnqueuer` (`Asset::add()->container()->useVite()`), `AssetFile`, the record and the wp-admin notice of a missing build. Class names do not change. The package also resolves Vite builds without Laravel, for a classic theme, a plugin or a Bedrock site. The framework keeps what needs Laravel: the service provider, the `Asset` facade, `ViteManager` (Laravel's Vite, where `ASSET_URL`, a CDN and the application URL keep applying), `RootAssetManager` and the Laravel implementations of the package's three contracts (`ViteManagerFactory`, `RuntimeContext`, `PublicPath`)

### Changed
- Accepts `pollora/query` 2.0 alongside 1.x (`^1.0 || ^2.0`, up from `^1.0`): the package now covers every WordPress query class, with terminal methods (`first()`, `ids()`, `count()`, `exists()`) and the documentation of each builder. Class names and the three existing facades do not change. `composer update` takes 2.0, and a project that needs 1.x requires `pollora/query` `^1.0` itself. A few fixes in 2.0 change the result of a query that used to run: `where()` followed by `orWhere()` groups the earlier clauses (`(a AND b) OR c`), `DateQuery::inclusive()` now takes effect, dates use a 24-hour clock, and an invalid `fields()`, `userPermission()` or `orderBy()` direction throws a `QueryException` instead of being ignored. The package's [upgrading guide](https://github.com/Pollora/Query/blob/2.0.0/docs/upgrading.md) lists them
- The asset classes that left for the package no longer reach for Laravel: `AssetEnqueuer` receives the hook services, the Vite factory, the runtime and a PSR-3 logger instead of resolving them from the container, `AssetFile` is resolved through a resolver the provider sets (`AssetFile::resolveUsing()`), and `AssetManager`, `MissingBuilds` and `MissingBuildNotice` take their public directory, logger and project root as arguments. The rendered HTML of a Pollora site is unchanged, in build and while Vite runs hot
- An `AssetEnqueuer` destroyed after its application, as in a test, no longer throws while it reports a failure of its deferred enqueue
- The typed meta classes that will leave for `pollora/meta` no longer reach for Laravel: `MetaUiDrivers` and `MetaAccessor::extend()` take a PSR-11 `ContainerInterface` (the Laravel container is one, a driver closure receives the same object), and the key of a data object's property is derived by `Pollora\Attributes\Support\Naming` instead of `Str::snake()`. What needs Laravel moved to `Pollora\Meta\Infrastructure\Laravel`: `MetaServiceProvider`, `LaravelMetaValidator`, `TypedMetaCheck`, `MetaListCommand` and `MetaAuditCommand`. The rendered pages, the REST responses and the output of the `pollora:meta:*`, `pollora:binding:list`, `pollora:roles:*` and `pollora:doctor` commands of a Pollora site are unchanged
- The roles classes that will leave for `pollora/roles` no longer reach for Laravel: the label of a `#[Role]` without one comes from `Naming::headline()` (the same words as `Str::headline()`) and `Naming::classBasename()`. What needs Laravel moved to `Pollora\Role\Infrastructure\Laravel`: `RoleServiceProvider`, the `role` middleware `EnsureUserHasRole`, the `@role` directive `RoleDirective`, the `RolesCheck` of `pollora:doctor` and the `pollora:roles:*` and `pollora:make:role` commands with their stubs. Roles, capabilities and command outputs of a Pollora site are unchanged
- The Block Bindings classes that will leave for `pollora/block-bindings` no longer reach for Laravel: the resolver takes a PSR-11 container, and three contracts carry what Laravel did for it, `MethodInvokerInterface` (the method of a `#[BlockBinding]` source gets the services its typed parameters name; `LaravelMethodInvoker` calls through Laravel's container, `ReflectionMethodInvoker` by reflection) `BindingEventsInterface` (`BindingResolved` reaches Laravel's dispatcher through `LaravelBindingEvents`) and `PostFinderInterface` (`BindingContext::post()` loads the framework's `Pollora\Models\Post` through `LaravelPostFinder`, Colt's `Post` without it, and is typed as Colt's `Post`, which the framework's extends). The options a project lists in `block-bindings.options` reach `OptionSource` and the editor data as an array, read from the config by the provider. Labels and names come from `Naming`, as `Str` writes them. What needs Laravel moved to `Pollora\BlockBinding\Infrastructure\Laravel`: the provider, the doctor check, `pollora:binding:list` and `pollora:make:binding` with their stub. Pages, REST responses and command outputs of a Pollora site are unchanged

## [v13.36.0](https://github.com/Pollora/framework/compare/v13.35.6...v13.36.0) - 2026-10-14

Expand Down
8 changes: 6 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@
"illuminate/console": "^13.36",
"pollora/abilities": "^1.0",
"pollora/ajax": "^1.1",
"pollora/attributes": "^0.1 || ^1.0",
"pollora/assets": "^0.1",
"pollora/attributes": "^0.1.1 || ^1.0",
"pollora/block-bindings": "^0.1",
"pollora/discovery": "^0.1 || ^1.0",
"pollora/entity": "^1.2",
"pollora/meta": "^0.1",
"pollora/hook": "^2.0.1",
"pollora/option": "^1.1",
"pollora/roles": "^0.1",
"pollora/schedule": "^1.0",
"pollora/wp-cli": "^0.1 || ^1.0",
"pollora/wp-rest": "^0.1 || ^1.0",
Expand All @@ -44,7 +48,7 @@
"pollora/colt": "^10.0.1",
"log1x/sage-directives": "^2.0",
"roots/bedrock-autoloader": "^1.1",
"pollora/query": "^1.0",
"pollora/query": "^1.0 || ^2.0",
"spatie/php-structure-discoverer": "^2.4",
"coduo/php-humanizer": "5.0.3",
"nwidart/laravel-modules": "^13.0",
Expand Down
196 changes: 0 additions & 196 deletions resources/js/block-bindings.js

This file was deleted.

137 changes: 0 additions & 137 deletions src/Asset/Application/Services/AssetManager.php

This file was deleted.

Loading
Loading