Typed WorkManager workers with pinned-runtime conformance #9

Merged
ober merged 1 commit from feat/typed-workmanager-workers into main 2026-09-20 19:37:44 -04:00
Owner

Closes #8.

What

Typed WorkManager support in jerboa-android, generated end-to-end from the
typed spec, plus the template/pin conformance needed to keep every fixture
green under the new evidence-gate checker.

  • Worker generation (jandroid.ss): typed Worker subclass lowering,
    (Class T) type token for Class<out ListenableWorker> schedule/cancel
    sites, typed-android-test-kotlin-file, test-instrumentation-runner,
    and android-test-dependency spec forms.
  • Fixture tests/fixtures/typed-worker-app.ss: SyncWorker with
    enqueueUniquePeriodicWork / cancelUniqueWork, WorkManager 2.11.2,
    JUnit3 instrumented smoke test.
  • Makefile/CI: worker-generate / worker-compile / worker-smoke
    targets, worker wiring greps in test, make worker-compile in the
    android-sdk CI job.
  • Supply chain: verification metadata extended to the new components
    (464 total), lock + script sha pins updated; strict-verification
    generate + connectedDebugAndroidTest passed on an API-26 emulator.
  • Template conformance: #:effects (throw) annotations on throwing
    defs (RulesClient, 22 ssd-review parts) and the TruthStore
    remoteConfig val initializer; jerboa runtime pin bumped to
    259e66e5 (tree a510f4c6) which adds @Synchronized modifier
    support, property #:effects, and JDK throwable catch compatibility.
  • VERSION 0.1.5 (jpkg.sexp synced).

Verified

  • make test (all fixtures + security + supply-chain) green with the
    pinned runtime.
  • make worker-compile green (Gradle strict verification, Kotlin main +
    androidTest compile).
  • make worker-smoke passed earlier on emulator-5556 (API 26).
  • make t00-contract green.
Closes #8. ## What Typed WorkManager support in jerboa-android, generated end-to-end from the typed spec, plus the template/pin conformance needed to keep every fixture green under the new evidence-gate checker. - **Worker generation** (`jandroid.ss`): typed `Worker` subclass lowering, `(Class T)` type token for `Class<out ListenableWorker>` schedule/cancel sites, `typed-android-test-kotlin-file`, `test-instrumentation-runner`, and `android-test-dependency` spec forms. - **Fixture** `tests/fixtures/typed-worker-app.ss`: `SyncWorker` with `enqueueUniquePeriodicWork` / `cancelUniqueWork`, WorkManager 2.11.2, JUnit3 instrumented smoke test. - **Makefile/CI**: `worker-generate` / `worker-compile` / `worker-smoke` targets, worker wiring greps in `test`, `make worker-compile` in the android-sdk CI job. - **Supply chain**: verification metadata extended to the new components (464 total), lock + script sha pins updated; strict-verification generate + `connectedDebugAndroidTest` passed on an API-26 emulator. - **Template conformance**: `#:effects (throw)` annotations on throwing defs (RulesClient, 22 ssd-review parts) and the TruthStore `remoteConfig` val initializer; jerboa runtime pin bumped to `259e66e5` (tree `a510f4c6`) which adds `@Synchronized` modifier support, property `#:effects`, and JDK throwable catch compatibility. - VERSION 0.1.5 (jpkg.sexp synced). ## Verified - `make test` (all fixtures + security + supply-chain) green with the pinned runtime. - `make worker-compile` green (Gradle strict verification, Kotlin main + androidTest compile). - `make worker-smoke` passed earlier on emulator-5556 (API 26). - `make t00-contract` green.
Add typed WorkManager worker support with pinned-runtime conformance
All checks were successful
required-ci / host-required (pull_request) Successful in 3m44s
version-policy / required (pull_request) Successful in 3m44s
required-ci / android-sdk (pull_request) Successful in 6m16s
ece708d44a
Implement issue #8: typed Worker generation via the jerboa-android spec.

- jandroid: typed Worker subclass generation, (Class T) token support for
  Class<out ListenableWorker> scheduling sites, typed androidTest Kotlin
  files, test-instrumentation-runner and android-test-dependency spec
  forms.
- New fixture tests/fixtures/typed-worker-app.ss (SyncWorker +
  enqueueUniquePeriodicWork/cancelUniqueWork + WorkManager 2.11.2
  androidTest smoke test).
- Makefile: TYPED_WORKER_EXAMPLE targets worker-generate/worker-compile/
  worker-smoke; test target greps for generated worker wiring; CI
  android-sdk job runs make worker-compile.
- Supply chain: gradle verification metadata covers the new components
  (work-runtime-ktx, work-testing); metadata sha pins updated; strict
  verification exercised end-to-end with connectedDebugAndroidTest.
- Templates: annotate throwing defs/vals with #:effects (throw)
  (RulesClient, 22 ssd-review parts, TruthStore remoteConfig val) for
  the evidence-gate checker; pins bumped to jerboa 259e66e5
  (@Synchronized modifier, property #:effects, throw catch compat).
- VERSION 0.1.5.
ober scheduled this pull request to auto merge when all checks succeed 2026-09-20 19:37:27 -04:00
ober merged commit 823dc57568 into main 2026-09-20 19:37:44 -04:00
ober referenced this pull request from a commit 2026-09-20 19:37:45 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-android!9
No description provided.