wikimedia/update-history
A small PHP library from Wikimedia for recording and querying update history. It stores change entries and lets you retrieve recent updates, useful for audit trails, changelogs, and tracking modifications in your application.
Architecture fit: Poor for a Laravel/PHP application. wikimedia/update-history is a MediaWiki-oriented library for recording and applying database update history — functionally adjacent to Laravel’s own migration repository, but built around MediaWiki’s database abstraction (Wikimedia\Rdbms) and update lifecycle. It is not a general-purpose Laravel package and does not integrate with Eloquent, Laravel’s migrations table, or Laravel’s migration events. Adopting it would mean introducing a second, parallel schema-change tracking system.
Integration feasibility: Technically possible but disproportionately expensive. A Laravel integration would require an adapter over Laravel’s PDO connection to satisfy MediaWiki’s IDatabase contract, plus lifecycle wiring for update discovery, locking, and error handling. That adapter would be custom, untested in this context, and likely brittle across Laravel and PHP upgrades. The package is a GitHub mirror of Gerrit-hosted code, so contribution and issue flow do not follow normal GitHub/Packagist expectations.
Technical risk: High relative to value. Maturity signals are weak: 1 GitHub star, 0 dependents, and no visible Laravel ecosystem adoption. The library’s API and behavior are driven by MediaWiki core needs, not by standalone PHP consumers. Risk areas include undocumented assumptions about MediaWiki’s DB layer, version coupling to wikimedia/rdbms, limited standalone examples, and unclear backward-compatibility guarantees for non-MediaWiki use. Security risk is low, but maintenance and integration risk are material.
Key questions:
wikimedia/rdbms version and PHP versions are supported, and what is the compatibility policy?Stack fit: Weak. Laravel already provides versioned migrations, rollback, batch tracking, schema state, and database-agnostic behavior via Eloquent/PDO. wikimedia/update-history overlaps with that responsibility but does not replace it cleanly. If the goal is schema evolution in a Laravel app, this package should not be in the stack. If the goal is interoperability with a MediaWiki-adjacent system, isolate it behind an internal interface rather than exposing it to application code.
Migration path: Do not migrate existing Laravel migrations to this library. The safer path is to keep Laravel migrations as the source of truth and, only if a hard interoperability requirement exists, build a narrow adapter that reads or writes update-history records without taking over Laravel’s migration lifecycle. A proof-of-concept should be time-boxed and limited to a disposable branch.
Compatibility: Expect friction at the database abstraction boundary, not just at the package API. The adapter must translate Laravel connection semantics into MediaWiki IDatabase semantics, including query errors, affected-row behavior, and transaction handling. PHP version support must be verified against the project’s runtime; the package’s release cadence is tied to MediaWiki, so Laravel upgrade windows may not align.
Sequencing:
doctrine/migrations, or a small in-house update-log table.IDatabase adapter.Maintenance: High for the value delivered. The team would own a custom MediaWiki-to-Laravel database adapter and track upstream MediaWiki changes. Because the canonical repository is Gerrit, dependency updates and issue triage do not follow typical GitHub/Packagist workflows. This creates a low-visibility maintenance surface for a small team.
Support: Community support is effectively MediaWiki-oriented. Laravel-specific questions will not be answered by upstream, and internal engineers will need to understand MediaWiki’s Rdbms layer to debug issues. Vendor support is not available.
Scaling: The underlying concept — a database-backed update log — scales similarly to Laravel migrations and is not a concern by itself. The operational scaling risk is organizational: every additional database abstraction layer increases the knowledge required to diagnose production schema issues. Contention and locking behavior should be tested under concurrent deploys if the package is used in a multi-instance environment.
Failure modes: The most likely failures are adapter mismatches, transaction semantics differing between MediaWiki Rdbms and Laravel’s connection, partial update application, lock contention during deployment, and upstream compatibility breaks after a PHP or database driver upgrade. A secondary failure mode is dual source-of-truth drift if both Laravel migrations and UpdateHistory records are used.
Ramp-up: Significant. A typical Laravel engineer can be productive with native migrations immediately; this package requires learning MediaWiki’s database abstraction, update lifecycle, and Gerrit-based contribution model. For a 1-star, 0-dependent library, that ramp-up cost is difficult to justify.
TPM recommendation: Do not adopt wikimedia/update-history for a Laravel/PHP application unless a specific MediaWiki interoperability requirement is proven. Prefer Laravel migrations or a small, well-owned update-log implementation. If the package must be evaluated, treat it as a research spike with a strict exit criterion, not as a production dependency.
How can I help you explore Laravel packages today?