Skip to content

fix: bring example-client-app to holochain 0.6.1-rc.7 so it builds again - #14

Open
zippy wants to merge 1 commit into
chore/self-contained-dev-shellfrom
fix/example-client-app-hc-0.6
Open

fix: bring example-client-app to holochain 0.6.1-rc.7 so it builds again#14
zippy wants to merge 1 commit into
chore/self-contained-dev-shellfrom
fix/example-client-app-hc-0.6

Conversation

@zippy

@zippy zippy commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Why

The Build apps (example-client-app) CI job has failed on every PR since the hc 0.6 update landed in December 2025. The app's zome workspace was never brought along to 0.6: it still pinned hdk 0.6.0 / hdi 0.7.0 / holochain_serialized_bytes 0.0.56 (which pins serde =1.0.219), while the path-dep chain through crates/tauri-plugin-clientruntime-types-ffi pulls holochain_conductor_api 0.6.1-rc.7, which pins hsb =0.0.57 (serde =1.0.228). Two exact serde pins in one graph → failed to select a version for serde, unconditionally. The app's Cargo.lock was still from the 0.5 era (conductor_api 0.5.4), so every build re-resolved and hit the wall.

What

All changes under apps/example-client-app/:

  • Cargo.toml: pin hdk =0.6.1-rc.5 / hdi =0.7.1-rc.5 / holochain_serialized_bytes 0.0.57 — the exact versions the parent workspace's Cargo.lock resolves for holochain 0.6.1-rc.7, so the zome wasm matches the conductor the service ships.
  • Cargo.lock: regenerated, then every floating holochain-family crate (zome_types, integrity_types, sqlite, holo_hash, mr_bundle, nonce, timestamp, …) aligned to the parent lock's versions — zero holochain-family drift between the two lockfiles.
  • .cargo/config.toml (new): getrandom_backend=\"custom\" rustflag for wasm32 — hdk/hdi ≥ 0.6.1 depend on getrandom 0.3, which refuses wasm32-unknown-unknown without a configured backend; the hdk provides the custom one (conductor random_bytes host fn). Same config hc-scaffold generates for new hApps.
  • .gitignore: the blanket /.cargo/ ignore would have silently excluded that config; narrowed to /.cargo/* + !/.cargo/config.toml.
  • src-tauri/src/main.rs: the bin called tauri_app_lib::run() but the lib target is forum_tauri_lib — a rename that never propagated, invisible to CI because tauri android build only compiles the lib. Also drops the WEBKIT_DISABLE_COMPOSITING_MODE workaround (a no-op since webkitgtk 2.46).

Base branch

Stacked on #13 (chore/self-contained-dev-shell): the fresh resolution pulls edition2024 manifests that need cargo ≥ 1.85, which #13's rust 1.88 toolchain provides (main's stale rust-toolchain.toml said 1.81). GitHub will retarget this PR to main automatically when #13 merges.

Verification (in the #13 dev shell)

  • cargo build --release --target wasm32-unknown-unknown --workspace --exclude forum-tauri — zomes build
  • hc app pack workdir --recursiveforum.happ produced
  • cargo ndk -t x86_64 check -p forum-tauri — exit 0 (the compile path the failing CI job exercises)

Note: a host-side cargo check -p forum-tauri can never pass by design — the client plugin is #![cfg(mobile)].

The Build Apps CI job for example-client-app has failed on every PR since
the hc 0.6 update (December 2025): the app's zome workspace still pinned
hdk 0.6.0 / hdi 0.7.0 / holochain_serialized_bytes 0.0.56 (serde
=1.0.219), which cannot co-resolve with holochain_conductor_api
0.6.1-rc.7 (via the path deps into crates/) pinning
holochain_serialized_bytes =0.0.57 (serde =1.0.228). Its Cargo.lock was
still from the 0.5 era (conductor_api 0.5.4), so every build re-resolved
and hit the conflict.

- Pin hdk =0.6.1-rc.5 / hdi =0.7.1-rc.5 / hsb 0.0.57 — the exact
  versions the parent workspace's Cargo.lock resolves for holochain
  0.6.1-rc.7, so the zome wasm matches the conductor the service ships.
- Regenerate the app Cargo.lock, downgrading every floating
  holochain-family crate (zome_types, integrity_types, sqlite, holo_hash,
  mr_bundle, ...) to the parent lock's versions: zero drift between the
  two lockfiles in the holochain family.
- Add .cargo/config.toml with getrandom_backend="custom" for
  wasm32-unknown-unknown: hdk/hdi >= 0.6.1 depend on getrandom 0.3,
  which refuses that target without a configured backend; the hdk
  provides the custom one (conductor random_bytes host fn). Same config
  hc-scaffold generates. Unignore .cargo/config.toml (the blanket
  /.cargo/ ignore was hiding it).
- Fix main.rs: the bin called tauri_app_lib::run() but the lib target is
  forum_tauri_lib (rename never propagated; unnoticed because
  tauri android build only compiles the lib). Also drop the
  WEBKIT_DISABLE_COMPOSITING_MODE workaround — a no-op since
  webkitgtk 2.46.

Verified in the dev shell: zome wasm builds, hc app pack produces
forum.happ, and cargo ndk -t x86_64 check -p forum-tauri passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant