Skip to content

Keeping dave in Sync ​

dave depends on two upstream artifacts from halOP: OUIA ID constants and the hal-op:test-suite container image. Three sync commands keep everything up to date.

Commands ​

CommandDescription
pnpm sync:ouiaFetch OuiaIds.java from GitHub and regenerate src/selectors/ids.ts
pnpm sync:imagePull the latest hal-op:test-suite container image
pnpm sync:statusCheck sync state and report what needs updating
pnpm sync:ciCheck OUIA ID drift for CI (fails if ids.ts is out of sync)
pnpm sync:helpShow sync command help

Typical Workflow ​

bash
# Check if everything is up to date
pnpm sync:status

# If OUIA IDs are out of date
pnpm sync:ouia

# If the container image is out of date (or a new build just finished)
pnpm sync:image

# Run tests
pnpm test

What sync:status Checks ​

sync:status checks three things and prints a verdict:

  1. OUIA IDs — compares local src/selectors/ids.ts against upstream OuiaIds.java
  2. CI build — queries the halOP test-suite.yml workflow for the latest run status
  3. Container image — compares local image digest against the remote registry

If everything is current, you'll see "Ready to test". Otherwise it tells you exactly what to run.

OUIA ID Sync Details ​

OUIA ID constants in src/selectors/ids.ts are generated from OuiaIds.java in the hal/foundation repository. The generated file is committed to git so the project works without running sync first.

The sync:ci command is used in CI to detect drift — it regenerates ids.ts from upstream and fails if the result differs from the committed file.

UI test suite for halOP — the WildFly management console