Search by

kumwe / automation

llewellyn

Portable cron scheduling, retry policy, job and queue contracts with explicit host composition.

Package info

github.com/kumwe/automation

pkg:composer/kumwe/automation

Statistics

Installs: 217

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

v0.2.2 2026-09-08 17:37 UTC

README

Latest version Automation CI PHP requirement License

Portable cron scheduling, immutable job state and leases, injected clock/jitter retry policy, queue policies, handler and storage ports, and job, queue and schedule declarations.

Installation

composer require kumwe/automation:0.2.2

Requires PHP ^8.5, the exact Kumwe dependencies declared in composer.json, PSR Clock and PSR Container. Consumers pin pre-1.0 Kumwe packages to independently verified exact versions.

use Kumwe\Automation\CronExpression;

$next = (new CronExpression('0 8 * * 1-5'))->next(
    new DateTimeImmutable('2026-09-07T05:00:00Z'),
    'Africa/Windhoek',
);
echo $next->format(DATE_ATOM); // 2026-09-07T06:00:00+00:00

Run the standalone example with composer examples from a development checkout, or pass a consuming application's autoloader to the installed example as described in host composition.

Contract with Kumwe Core

Automation owns portable schedule, retry, job, lease and declaration semantics. Core owns worker loops, OS signals, runtime deadline enforcement, scheduler execution, trusted handler selection, durable queues, database coordination, tenant authority and lifecycle.

JSON-dependent constructors and factories require Kumwe\CanonicalJson\CanonicalEncoder explicitly. Core supplies its encoder; this package contains no encoder executor. Declaration inputs reject floats, objects, resources, depth over 32 and collections over 512 before invoking that encoder. Job payloads and event envelopes retain their separate documented profiles and limits.

The optional ConfigProvider and explicit container factories support Laminas/Mezzio composition. Core supplies the clock, jitter policy and explicitly admitted handler services. Factories do not discover handlers, admit trust or start workers. See integration for bindings, configuration, lifetimes and error behavior.

API and development

The public API, architecture and charter define the maintained package surface and ownership boundary. Public signatures and neutral ports are checked against the API and service-map manifests. The release contract record preserves source mappings, manifest digests, compatibility requirements and independent verification obligations for consumers.

composer install
composer check

The complete gate verifies source, manifests, static analysis, style, behavior, test ownership, examples, dependency security and release automation. composer clean-consumer builds a ZIP, installs it into a fresh Composer consumer and runs behavior and example checks through that consumer's authoritative autoloader. Explicit development overrides are documented in the integration guide.

Releases and license

The version badge tracks Packagist and the CI badge tracks the actual default-branch workflow. Publication and passing package checks do not establish Core adoption or independent release verification. See release policy for exact pins, immutable artifact identity and consumer evidence.

Licensed under Apache-2.0.