feat: plugin scaffold, bundled Core & lifecycle (#1) #105
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: model
area: plugin
area: provenance
area: rite
area: settings
area: ui
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Ordo!105
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/1-scaffold"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Establishes the Ordo v0.1.0 WordPress plugin skeleton (Epic #1): entry point, autoloader, the bundled clean-room engine, and the activation/deactivation/uninstall lifecycle. The plugin resolves liturgical days fully offline.
What's in it
ordo.php— plugin header (the single source of truth for the version, read viaget_file_data), a PHP 7.4 floor that shows an admin notice and aborts activation instead of fatal-erroring, then boots. (#2)src/Autoloader.php— a self-contained PSR-4 autoloader (no Composer at runtime) mappingIntroibo\Ordo\→src/andIntroibo\Core\→src/Core/src/; Core's function entry points are required directly. (#2)src/Core/— the clean-room Introibo engine + CC0 corpus, vendored bybin/vendor-core.phpand pinned to0.4.0(refcf55645). (#3)src/Engine/Core.php— the single boundary to the bundled engine (Introibo\Core\contract()), WP-independent and network-free. (#3)src/Rewrites.php/src/Lifecycle.php/src/Plugin.php— the/ordo/YYYY-MM-DD/route, idempotent option seeding (default calendar: universal 1962), and a rewrite flush on activation/deactivation only. (#4)uninstall.php— prefix-scoped removal of everyordo_option and transient, multisite-aware, guarded against direct access. (#5)bin/check-no-old-engine.php— CI clean-room guard: every namespaced file must belong toIntroibo\OrdoorIntroibo\Core, plus an old-engine denylist. (#3)Licence
Relicenses the plugin from AGPL-3.0-or-later to GPL-2.0-or-later (the licence WordPress plugins ship under, per issue #2). The bundled Core stays AGPL-3.0-or-later — compatible because GPL-2.0-or-later reaches GPLv3, with which AGPL-3.0 combines — and the corpus stays CC0.
Quality gates (green locally; CI across PHP 7.4/8.1/8.2/8.3)
phpcsPSR-12 — cleanphpstanlevel 6 with WordPress stubs — no errorsphpunit— 8 tests / 14 assertions: resolves the Nativity (universal) and the SSPX overlay elevating St Pius X from III→I class offline; autoloader resolves both namespaces.Refs #1 #2 #3 #4 #5