Skip to content

feat: add local registry flow and desktop examples#71

Draft
f0rr0 wants to merge 76 commits into
mainfrom
f0rr0/reduce-oliphaunt-icu-crate-size
Draft

feat: add local registry flow and desktop examples#71
f0rr0 wants to merge 76 commits into
mainfrom
f0rr0/reduce-oliphaunt-icu-crate-size

Conversation

@f0rr0

@f0rr0 f0rr0 commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • compress the WASIX ICU Cargo payload into a deterministic tar.zst and teach oliphaunt-icu build.rs to consume payload/icu-data.tar.zst, keeping crates.io artifacts under 10 MiB without changing consumers
  • add local registry tooling for CI artifacts from run 28049923289: Verdaccio npm publish, Cargo local git registry, Maven filesystem repo, and SwiftPM staging/skips on Linux
  • add root desktop todo examples for Tauri native, Tauri WASIX, Electron native, and Electron WASIX using hstore/pg_trgm/unaccent
  • align WASIX Cargo artifact crates with the native product shape: liboliphaunt-wasix-portable for the portable runtime and liboliphaunt-wasix-aot-* for target AOT artifacts, while generated extension crates publish as oliphaunt-extension-*-wasix
  • verify all generated Cargo artifact crate publications for native and WASIX release flows, including native part crates and generated WASIX extension crates
  • enforce an optimized liboliphaunt native runtime payload across GitHub release assets, npm packages, Cargo artifact crates, and local registry dry-runs: strip supported native binaries, remove dev-only PostgreSQL install files, keep only the runtime tools Oliphaunt installs, and validate the shape before publish
  • make Rust and TypeScript native server tool resolution use platform executable suffixes so the Windows .exe package shape remains installable

Validation

  • examples/tools/check-examples.sh
  • python3 -m py_compile tools/release/local_registry_publish.py
  • python3 tools/release/local_registry_publish.py download --run-id 28049923289 --preset local-publish --dry-run
  • python3 tools/release/local_registry_publish.py publish --surface cargo --dry-run
  • python3 tools/release/local_registry_publish.py publish --surface cargo
  • python3 tools/release/local_registry_publish.py publish --surface maven
  • python3 tools/release/local_registry_publish.py publish --surface npm
  • python3 tools/release/local_registry_publish.py publish --surface swift --dry-run
  • pnpm --dir examples/tauri run build
  • pnpm --dir examples/tauri-wasix run build
  • pnpm --dir examples/electron run build
  • pnpm --dir examples/electron-wasix run build
  • cargo check --manifest-path examples/tauri-wasix/src-tauri/Cargo.toml
  • cargo check --manifest-path examples/electron-wasix/src-wasix/Cargo.toml
  • cargo metadata --no-deps --locked --format-version 1
  • python3 -m py_compile tools/release/optimize_native_runtime_payload.py tools/release/package_liboliphaunt_cargo_artifacts.py tools/release/release.py tools/release/check_liboliphaunt_release_assets.py tools/release/check_release_metadata.py
  • cargo fmt --check && git diff --check
  • python3 tools/release/check_artifact_targets.py
  • python3 tools/release/check_consumer_shape.py
  • python3 tools/release/check_release_metadata.py
  • bash tools/policy/check-dependency-invariants.sh
  • bash tools/policy/check-native-boundaries.sh
  • bash examples/tools/check-examples.sh
  • python3 tools/release/package_liboliphaunt_wasix_cargo_artifacts.py --output-dir target/oliphaunt-wasix/cargo-artifacts-check-renamed
  • python3 tools/release/package_liboliphaunt_wasix_cargo_artifacts.py --extension-artifact-root target/local-registry-artifacts/oliphaunt-extension-package-artifacts --output-dir target/oliphaunt-wasix/cargo-artifacts-check-renamed-all
  • cargo test -p liboliphaunt-wasix-portable -p liboliphaunt-wasix-aot-x86_64-unknown-linux-gnu --locked
  • cargo test -p oliphaunt-wasix --locked relay_manifest_instructions
  • python3 tools/release/package_liboliphaunt_cargo_artifacts.py --asset-dir target/local-registry-artifacts/liboliphaunt-native-release-assets-linux-x64-gnu --target linux-x64-gnu --output-dir target/liboliphaunt/cargo-artifacts-optimized-check
  • python3 tools/release/optimize_native_runtime_payload.py --check target/liboliphaunt/cargo-package-sources/linux-x64-gnu-extracted --target linux-x64-gnu
  • cargo test -p oliphaunt install_ --lib
  • cargo test -p oliphaunt root::runtime::cache_key --lib
  • pnpm --filter @oliphaunt/ts exec tsc -p tsconfig.build.json --noEmit

Notes

  • Latest WASIX artifact packaging check generated 45 Cargo crates. Largest crate was liboliphaunt-wasix-portable at 9,707,505 bytes; largest generated extension crate was oliphaunt-extension-postgis-wasix at 7,927,325 bytes.
  • Repacking the existing Linux x64 native runtime artifact now generates 8 Cargo part crates instead of 19. Total compressed part-crate bytes are 13,707,073; the largest part is 3,563,233 bytes.
  • The optimized Linux payload strips liboliphaunt.so from 64,603,784 bytes to 13,282,008 bytes, removes runtime/include, prunes runtime/bin to initdb, pg_ctl, pg_dump, postgres, and psql, and drops the extracted payload file count from 1,667 to 699.
  • Registry-backed example metadata requires the oliphaunt-local Cargo registry config; the example policy check passes, and the local registry flow was validated above.
  • Swift publish is skipped on this Linux host because swift is not installed; artifacts are staged.

f0rr0 added 30 commits June 24, 2026 11:17
f0rr0 added 30 commits June 26, 2026 07:56
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