asimnet/filament-ummulqura-date-picker
An Umm al-Qura (Hijri) date picker field for Filament forms and tables. Add drop-in Hijri date selection and display to your Laravel admin panels, with locale-aware formatting that works alongside Gregorian dates.
Architecture fit
asimnet/filament-ummulqura-date-picker is a Filament form-field plugin that adds an Umm al-Qura (Hijri) date picker — a narrow, presentation-layer concern. It integrates via a Filament service provider and spatie/laravel-package-tools, which is the conventional, low-friction shape for a Filament plugin. No framework-level coupling beyond Filament itself.https://repo.schemava.dev/r/public (a self-hosted Packistry registry) as a composer-type repository so that the backend dependency asimnet/ummulqura-calendar: ^1.1 resolves. No PHP code, no public API, no schema, no config surface changed. Verified resolution to ummulqura-calendar 1.1.0; 13/13 tests pass.Integration feasibility
repositories from a dependency's composer.json — only from the root project's composer.json. A repository declaration shipped inside the package therefore has no effect for downstream consumers; it only affects the package's own development checkout, which is the environment in which the "verified" claim was produced.asimnet/ummulqura-calendar is also published on Packagist, composer require asimnet/filament-ummulqura-date-picker will fail for us until we manually add the repository entry to our root manifest. If it is on Packagist, the new repository declaration is inert for us and the release is a no-op in practice. Both branches need to be confirmed before adoption — this is the single most important open item.repositories block, no credentials apparent from the /r/public path), but it becomes a permanent, project-wide resolution source, not a per-package one.Technical risk
composer-type repository is canonical: every composer update consults repo.schemava.dev for all packages, falling through to Packagist only on a miss. This adds latency, an external availability dependency, and discloses our dependency-graph package names to a third-party registry operator.composer.lock will record dist URLs pointing at repo.schemava.dev. composer install in CI then depends on that host being reachable and serving the same artifacts indefinitely. If the registry is retired, renamed, or the package is unpublished, clean builds become unreproducible with no Packagist fallback.schemava.dev, its retention, or its access controls./r/public is contradictory. If anonymous read is enabled, CI needs no secrets (good) but the artifact is effectively public and unauthenticated; if it later requires auth, every build pipeline must hold credentials./public could, in principle, serve package names that also exist on Packagist. Canonical repos win those lookups silently.Key questions
asimnet/ummulqura-calendar published on Packagist, or is repo.schemava.dev the only source? This determines whether v1.2.2 fixes anything for us.repo.schemava.dev, and is anonymous read guaranteed to remain available? Is there an SLA, uptime history, or deprecation policy?ummulqura-calendar, and is it redistributable through a private registry?Stack fit
spatie/laravel-package-tools implies package auto-discovery — no manual service-provider registration.Migration path
composer.json in a dedicated, reviewed commit — not implicitly via a transitive install.composer.lock and treat it as the reproducibility boundary.Compatibility
Sequencing
composer.json and license files directly.schemava.dev at CI time.Maintenance
filament-ummulqura-date-picker → ummulqura-calendar), so a single abandonment event takes out both.Support
Scaling
composer update across all projects that inherit the config, not just this one. With warm caches the impact is negligible; on cold or degraded registry responses it can add tens of seconds to CI and to developer workflows.Failure modes
| Failure | Impact | Blast radius | Mitigation |
|---|---|---|---|
repo.schemava.dev unreachable |
composer install / update fails or stalls |
All CI jobs and all new developer environments | Internal mirror or vendored path repo; Composer cache warming |
| Registry publishes an incompatible or moved artifact | Non-deterministic builds | Production deploys | Commit and enforce composer.lock; artifact hashing |
| Package unpublished / repo retired | Clean builds irreproducible; no Packagist fallback | New environments, DR rebuilds, audits | Mirror, vendored copy, or fork |
| Repository shadows a public package | Silent substitution | Potentially any dependency | Pin versions; review composer why after resolution |
| Registry begins requiring auth | CI breaks with 401 | All pipelines | Track as a known-change; keep credentials handling scoped in CI secrets |
| Filament major upgrade | Plugin breaks; maintainer unresponsive | Affected panels | Fork readiness; isolate plugin to one panel initially |
Ramp-up
How can I help you explore Laravel packages today?