Skip to main content

Development and release

Repository layout​

PathResponsibility
src/Published TypeScript/React Native source
example/Native Expo reference app and manual verification surface
doc/Docusaurus site
tests/ and src/**/testsUnit and protocol tests
.github/workflows/ci.ymlPull request lint, typecheck, tests, native export, and docs build
.github/workflows/deliver.ymlManual package delivery and example-app updates
.github/workflows/sync-docs-to-builder.ymlMirrors doc/docs markdown to the builder corpus

Local checks​

Run the checks that match the change:

yarn lint
yarn build
yarn test
yarn prepare
yarn doc build

Documentation changes must at least pass yarn doc build and git diff --check. Bluetooth or health changes also need protocol/service tests and physical-device verification where possible.

Version and publishing safety​

The package version is stored in the root package.json. Documentation-only changes do not require a version bump. Package publishing is controlled by the manual Deliver workflow; merging a pull request is not a substitute for approving a release.

Before a release:

  1. Confirm the intended package version and @ovok/core peer range.
  2. Build the library and docs.
  3. Run the unit tests.
  4. Verify the generated package contents.
  5. Trigger Deliver with the exact version and an explicit publish choice.
  6. Verify the published package with npm view @ovok/native at the exact version.

Do not run a local release command casually: the configured release tool can create a git tag, GitHub release, and npm publication.

Documentation source of truth​

The public surface is defined by src/index.tsx and the module index files. Device support is defined by SUPPORTED_DEVICES and its declarations. The example app is the reference for native configuration and provider composition. When a page claims an export or prop, verify it against those files before merging.