Skip to content

chore: release wordpress 1.3.0#21

Merged
michaelmeneses merged 10 commits into
mainfrom
develop
Jul 9, 2026
Merged

chore: release wordpress 1.3.0#21
michaelmeneses merged 10 commits into
mainfrom
develop

Conversation

@michaelmeneses

Copy link
Copy Markdown
Contributor

Merge develop into main for the 1.3.0 release.

Highlights since 1.2.0:

  • feat!: adopt PascalCase enum cases from middag-io/framework + guard test
  • refactor(inertia)!: drop PageContractNormalizer, accept only canonical contract
  • refactor(logging)!: rename ErrorLogLogger to PhpErrorLogLogger
  • refactor(settings): move FieldType into Settings\Enum namespace
  • chore(deps): framework floor raised to ^1.6

Version pinned to 1.3.0 via Release-As footer per the family 1.x policy (breaking changes ride deliberate minors during 1.x).

michaelmeneses and others added 10 commits July 8, 2026 14:26
The PSR-3 logger writes to PHP's built-in error_log(); the new name
states its destination explicitly. No proxy/alias is kept.

BREAKING CHANGE: the @api class Middag\WordPress\Logging\ErrorLogLogger
is renamed to Middag\WordPress\Logging\PhpErrorLogLogger with no BC
alias. Consumers instantiating the old class must update the reference.
Relocate the FieldType enum to Middag\WordPress\Settings\Enum, matching the existing Enum-subfolder convention (cf. Framework Database\Enum\Capability). Update the DSL (Field), renderer (FieldRenderer) and all Settings tests to import from the new namespace. No BC alias for the moved symbol (no-alias phase).
…l contract

Remove the PageContractNormalizer class and the automatic normalization call
in InertiaAdapter::resolveProps(). The adapter now forwards the `contract`
prop verbatim and accepts ONLY the canonical @middag-io/react PageContract;
legacy contract shapes are no longer silently migrated to the new schema.

The normalization is not moved to a helper — the intent is to eliminate silent
acceptance of the old schema. A legacy contract is forwarded unchanged so the
frontend rejects it, instead of being rewritten on the server.

Tests: delete PageContractNormalizerTest; update the coverage test to assert
canonical passthrough and add a case proving a legacy contract is NOT silently
normalized (admin/badge/currentPage/emptyMessage survive verbatim).

BREAKING CHANGE: Http\Inertia\PageContractNormalizer is removed and
InertiaAdapter no longer normalizes the `contract` prop. Callers must pass the
canonical PageContract shape directly.
The blocked items (coverage guards, exit seams, R1 roadmap) are tracked
in the workspace tracker now; git history keeps the full details.
…l test

PhpErrorLogLogger is the zero-dependency error_log fallback, not the
canonical logging path. The canonical WooCommerce-like channel path is the
framework LoggerFactory::forChannel(module, channel) primed once at boot
via LogSupport::primeFromContainer(). Docblocks on both sides now say so,
and a new test proves a custom (module, channel) tuple flows from the
factory to the rotating file handler's on-disk destination. No code path
removed (LB-WP-STRUCT-01 rescope).
Apply D-ENUM-CASING (2026-07-08): this lib's own enum (FieldType)
already conformed; the change updates the two call-sites of the renamed
framework Database Capability cases (TRANSACTIONS -> Transactions, ...)
and adds tests/Architecture/EnumCasePascalCaseTest.php guarding every
enum under src/ (PascalCase + at-least-one-lowercase, rejects ALLCAPS).

BREAKING CHANGE: requires middag-io/framework with PascalCase enum
cases.
The adapter references the PascalCase enum cases (D-ENUM-CASING) that
shipped in framework 1.6.0; older minors miss the renamed cases and
fail at constant resolution.
Release-As: 1.3.0
@michaelmeneses michaelmeneses merged commit 419f1e8 into main Jul 9, 2026
8 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.

1 participant