From c6d99863c0b01bc0171c73df75990f437af7e6a6 Mon Sep 17 00:00:00 2001 From: Christien Rioux Date: Sat, 12 Sep 2026 10:22:39 -0400 Subject: [PATCH] move veilid-flutter to pub workspaces --- .dagger/versions.env | 2 + scripts/_lint_all.sh | 24 +- scripts/check_windows.ps1 | 19 +- scripts/ios_build.sh | 12 +- veilid-flutter/example/pubspec.lock | 622 ------------------ veilid-flutter/example/pubspec.yaml | 12 +- .../veilid_integration_test/pubspec.lock | 575 ---------------- .../veilid_integration_test/pubspec.yaml | 4 +- .../packages/veilid_test/.gitignore | 10 - .../packages/veilid_test/pubspec.yaml | 4 +- veilid-flutter/pubspec.yaml | 15 + veilid-flutter/run_integration_tests.sh | 5 +- version_bump.sh | 11 +- 13 files changed, 43 insertions(+), 1272 deletions(-) delete mode 100644 veilid-flutter/example/pubspec.lock delete mode 100644 veilid-flutter/packages/veilid_integration_test/pubspec.lock delete mode 100644 veilid-flutter/packages/veilid_test/.gitignore diff --git a/.dagger/versions.env b/.dagger/versions.env index cb4d1809..ec9d831b 100644 --- a/.dagger/versions.env +++ b/.dagger/versions.env @@ -15,6 +15,7 @@ # --- Rust --- RUST_VERSION="1.92.0" # toolchain the build pins +RUSTUP_VERSION="1.29.1" # rustup-init honours it; auto-install rules changed across releases RUST_MSRV="1.89.0" # minimum a dev's rustc may be RUST_UNIT_TESTS_NIGHTLY_VERSION="nightly-2026-01-01" RUST_PACKAGE_TESTS_NIGHTLY_VERSION="nightly" @@ -25,6 +26,7 @@ EARTHLY_VERSION="0.8.15" # CI downloads this binary; i # --- Cargo tools the build installs (pinned so each gets its own cache tag) --- CARGO_ZIGBUILD_VERSION="0.23.4" # built from source; no musl release to binstall +CARGO_BINSTALL_VERSION="1.23.0" # the installer script honours BINSTALL_VERSION CARGO_MSRV_VERSION="0.19.3" CARGO_NEXTEST_VERSION="0.9.144" CARGO_DOCS_RS_VERSION="1.0.4" diff --git a/scripts/_lint_all.sh b/scripts/_lint_all.sh index b78f3579..747dd864 100755 --- a/scripts/_lint_all.sh +++ b/scripts/_lint_all.sh @@ -17,24 +17,10 @@ scripts/_clippy_x86_64_unknown_linux_gnu_async_std.sh $@ scripts/_clippy_mock_api.sh $@ scripts/_clippy_optional_features.sh $@ -# Flutter analyze for every dart/flutter package in the workspace -FLUTTER_PKGS=( - veilid-flutter - veilid-flutter/example - veilid-flutter/packages/veilid_test - veilid-flutter/packages/veilid_integration_test -) - -# Resolve every package before analyzing any: analyzing a parent walks into the nested packages -# under it, and resolves their imports against their own package config, which pub get creates -for pkg in "${FLUTTER_PKGS[@]}"; do - echo "==> flutter pub get $pkg" - (cd "$pkg" && flutter pub get) -done - -for pkg in "${FLUTTER_PKGS[@]}"; do - echo "==> flutter analyze $pkg" - (cd "$pkg" && flutter analyze) -done +# Flutter analyze for the veilid-flutter pub workspace; one resolution covers every member +echo "==> flutter pub get veilid-flutter" +(cd veilid-flutter && flutter pub get) +echo "==> flutter analyze veilid-flutter" +(cd veilid-flutter && flutter analyze) popd >/dev/null diff --git a/scripts/check_windows.ps1 b/scripts/check_windows.ps1 index 4b9a1739..3844c10e 100644 --- a/scripts/check_windows.ps1 +++ b/scripts/check_windows.ps1 @@ -150,19 +150,14 @@ if (-not $SkipPython) { if (-not $SkipFlutter) { Write-Host 'Running flutter analyze...' - $flutterPkgs = 'veilid-flutter', 'veilid-flutter\example', 'veilid-flutter\packages\veilid_test', 'veilid-flutter\packages\veilid_integration_test' - # Resolve every package before analyzing any, as scripts/_lint_all.sh does - foreach ($pkg in $flutterPkgs) { - Step "flutter pub get $pkg" { - Push-Location (Join-Path $RepoRoot $pkg) - try { flutter pub get } finally { Pop-Location } - } + # One pub workspace: resolving veilid-flutter covers every member, as scripts/_lint_all.sh does + Step "flutter pub get veilid-flutter" { + Push-Location (Join-Path $RepoRoot 'veilid-flutter') + try { flutter pub get } finally { Pop-Location } } - foreach ($pkg in $flutterPkgs) { - Step "flutter analyze $pkg" { - Push-Location (Join-Path $RepoRoot $pkg) - try { flutter analyze } finally { Pop-Location } - } + Step "flutter analyze veilid-flutter" { + Push-Location (Join-Path $RepoRoot 'veilid-flutter') + try { flutter analyze } finally { Pop-Location } } Write-Host 'Running headless mock veilid-flutter integration tests...' diff --git a/scripts/ios_build.sh b/scripts/ios_build.sh index 67cbf363..edf41745 100755 --- a/scripts/ios_build.sh +++ b/scripts/ios_build.sh @@ -9,8 +9,7 @@ CARGO_DIR=$(dirname $CARGO) CARGO_MANIFEST_PATH=$(python3 -c "import os; import json; print(json.loads(os.popen('$CARGO locate-project').read())['root'])") CARGO_WORKSPACE_PATH=$(python3 -c "import os; import json; print(json.loads(os.popen('$CARGO locate-project --workspace').read())['root'])") WORKSPACE_TARGET_PATH=$(python3 -c "import os; print(os.path.realpath(\"$CARGO_WORKSPACE_PATH/../target\"))") -# A relocated cargo target dir (CI caching) moves the lipo inputs with it -TARGET_PATH="${CARGO_TARGET_DIR:-$WORKSPACE_TARGET_PATH}" +TARGET_PATH="$WORKSPACE_TARGET_PATH" PACKAGE_NAME=$1 shift @@ -37,7 +36,6 @@ set -euxo pipefail RUST_ENV=() [ -n "${RUSTUP_HOME:-}" ] && RUST_ENV+=("RUSTUP_HOME=$RUSTUP_HOME") [ -n "${CARGO_HOME:-}" ] && RUST_ENV+=("CARGO_HOME=$CARGO_HOME") -[ -n "${CARGO_TARGET_DIR:-}" ] && RUST_ENV+=("CARGO_TARGET_DIR=$CARGO_TARGET_DIR") LIPOS="" for arch in $ARCHS @@ -83,12 +81,4 @@ lipo $LIPOS -create -output "$TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/lib$PACKAGE # Make most recent dylib available without build mode for flutter cp "$TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/lib$PACKAGE_NAME.a" "$TARGET_PATH/$LIPO_OUT_NAME/lib$PACKAGE_NAME.a" -# Xcode references the lipo outputs by the static workspace path; when the cargo -# target dir is relocated (CI caching), mirror them back where Xcode looks. -if [ "$TARGET_PATH" != "$WORKSPACE_TARGET_PATH" ]; then - mkdir -p "$WORKSPACE_TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/" - cp "$TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/lib$PACKAGE_NAME.a" "$WORKSPACE_TARGET_PATH/$LIPO_OUT_NAME/$BUILD_MODE/" - cp "$TARGET_PATH/$LIPO_OUT_NAME/lib$PACKAGE_NAME.a" "$WORKSPACE_TARGET_PATH/$LIPO_OUT_NAME/" -fi - popd >/dev/null \ No newline at end of file diff --git a/veilid-flutter/example/pubspec.lock b/veilid-flutter/example/pubspec.lock deleted file mode 100644 index 171f8c2d..00000000 --- a/veilid-flutter/example/pubspec.lock +++ /dev/null @@ -1,622 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansicolor: - dependency: "direct main" - description: - name: ansicolor - sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" - url: "https://pub.dev" - source: hosted - version: "2.0.3" - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" - async: - dependency: transitive - description: - name: async - sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 - url: "https://pub.dev" - source: hosted - version: "2.13.1" - async_tools: - dependency: transitive - description: - name: async_tools - sha256: b02e177699fbd10fdeb7871fbf43a147e3f964e50a9b8047d26b53212c16e07e - url: "https://pub.dev" - source: hosted - version: "0.1.17" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - change_case: - dependency: transitive - description: - name: change_case - sha256: e41ef3df58521194ef8d7649928954805aeb08061917cf658322305e61568003 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - characters: - dependency: transitive - description: - name: characters - sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b - url: "https://pub.dev" - source: hosted - version: "1.4.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a - url: "https://pub.dev" - source: hosted - version: "1.4.0" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.dev" - source: hosted - version: "1.1.2" - code_assets: - dependency: transitive - description: - name: code_assets - sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - convert: - dependency: transitive - description: - name: convert - sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.dev" - source: hosted - version: "3.1.2" - crypto: - dependency: transitive - description: - name: crypto - sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf - url: "https://pub.dev" - source: hosted - version: "3.0.7" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" - url: "https://pub.dev" - source: hosted - version: "1.0.9" - equatable: - dependency: transitive - description: - name: equatable - sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" - url: "https://pub.dev" - source: hosted - version: "1.3.3" - ffi: - dependency: transitive - description: - name: ffi - sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - file: - dependency: transitive - description: - name: file - sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 - url: "https://pub.dev" - source: hosted - version: "7.0.1" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_acrylic: - dependency: "direct main" - description: - name: flutter_acrylic - sha256: b3996dbde5abf5823cc9ead4cf2e5267c3181f15585fe47ce4dc4472e7ec827a - url: "https://pub.dev" - source: hosted - version: "1.1.4" - flutter_driver: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - fuchsia_remote_debug_protocol: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - hooks: - dependency: transitive - description: - name: hooks - sha256: eaac480a35ec0814146c2c48d96aaa829e0e44a7662c88ae84c9edf4bc35651f - url: "https://pub.dev" - source: hosted - version: "2.2.0" - integration_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - jni: - dependency: transitive - description: - name: jni - sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f - url: "https://pub.dev" - source: hosted - version: "1.0.0" - jni_flutter: - dependency: transitive - description: - name: jni_flutter - sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" - url: "https://pub.dev" - source: hosted - version: "4.12.0" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" - url: "https://pub.dev" - source: hosted - version: "11.0.2" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" - url: "https://pub.dev" - source: hosted - version: "3.0.10" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - lints: - dependency: transitive - description: - name: lints - sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" - url: "https://pub.dev" - source: hosted - version: "6.1.0" - logging: - dependency: transitive - description: - name: logging - sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.dev" - source: hosted - version: "1.3.0" - loggy: - dependency: "direct main" - description: - name: loggy - sha256: "981e03162bbd3a5a843026f75f73d26e4a0d8aa035ae060456ca7b30dfd1e339" - url: "https://pub.dev" - source: hosted - version: "2.0.3" - macos_window_utils: - dependency: transitive - description: - name: macos_window_utils - sha256: cb918e1ff0b31fdaa5cd8631eded7c24bd72e1025cf1f95c819e483f0057c652 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" - url: "https://pub.dev" - source: hosted - version: "0.12.20" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" - url: "https://pub.dev" - source: hosted - version: "0.13.0" - meta: - dependency: transitive - description: - name: meta - sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" - url: "https://pub.dev" - source: hosted - version: "1.19.0" - native_toolchain_rust: - dependency: transitive - description: - name: native_toolchain_rust - sha256: "8469a0e32a47a5c84b7fd300de9fd0e8082aac76c37922986324f5082a58350d" - url: "https://pub.dev" - source: hosted - version: "1.0.6" - objective_c: - dependency: transitive - description: - name: objective_c - sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" - url: "https://pub.dev" - source: hosted - version: "9.4.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc - url: "https://pub.dev" - source: hosted - version: "2.2.0" - path: - dependency: "direct main" - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - path_provider: - dependency: "direct main" - description: - name: path_provider - sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 - url: "https://pub.dev" - source: hosted - version: "2.1.6" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" - url: "https://pub.dev" - source: hosted - version: "2.3.1" - path_provider_foundation: - dependency: transitive - description: - name: path_provider_foundation - sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" - url: "https://pub.dev" - source: hosted - version: "2.6.0" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" - source: hosted - version: "2.2.1" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" - source: hosted - version: "2.3.0" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" - url: "https://pub.dev" - source: hosted - version: "7.0.2" - platform: - dependency: transitive - description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.dev" - source: hosted - version: "3.1.6" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - process: - dependency: transitive - description: - name: process - sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 - url: "https://pub.dev" - source: hosted - version: "5.0.5" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - quiver: - dependency: transitive - description: - name: quiver - sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 - url: "https://pub.dev" - source: hosted - version: "3.2.2" - record_use: - dependency: transitive - description: - name: record_use - sha256: "1cb8564af8d43b464294411db9217f5ec04891c6f22ee2c32d73ae05e88a6bd2" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" - url: "https://pub.dev" - source: hosted - version: "1.10.2" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.dev" - source: hosted - version: "1.12.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - sync_http: - dependency: transitive - description: - name: sync_http - sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - test_api: - dependency: transitive - description: - name: test_api - sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" - url: "https://pub.dev" - source: hosted - version: "0.7.12" - toml: - dependency: transitive - description: - name: toml - sha256: "35a35f782228656a2af31e8c73d1353cc4ef3d683fd68af1111b44631879c05e" - url: "https://pub.dev" - source: hosted - version: "0.18.0" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 - url: "https://pub.dev" - source: hosted - version: "2.4.2" - veilid: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.5.7" - veilid_integration_test: - dependency: "direct dev" - description: - path: "../packages/veilid_integration_test" - relative: true - source: path - version: "0.1.0" - veilid_test: - dependency: "direct dev" - description: - path: "../packages/veilid_test" - relative: true - source: path - version: "0.1.0" - veilid_xterm: - dependency: "direct main" - description: - name: veilid_xterm - sha256: "0302c817a161eb1c8d3465b6e918e46a15ff5fbde5349551a09036e6667737b2" - url: "https://pub.dev" - source: hosted - version: "4.0.0-veilid.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" - url: "https://pub.dev" - source: hosted - version: "15.2.0" - web: - dependency: transitive - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - webdriver: - dependency: transitive - description: - name: webdriver - sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce - url: "https://pub.dev" - source: hosted - version: "3.1.3" - zmodem: - dependency: transitive - description: - name: zmodem - sha256: "3b7e5b29f3a7d8aee472029b05165a68438eff2f3f7766edf13daba1e297adbf" - url: "https://pub.dev" - source: hosted - version: "0.0.6" -sdks: - dart: ">=3.11.0-0 <4.0.0" - flutter: ">=3.47.1" diff --git a/veilid-flutter/example/pubspec.yaml b/veilid-flutter/example/pubspec.yaml index 220a28d5..af7f6401 100644 --- a/veilid-flutter/example/pubspec.yaml +++ b/veilid-flutter/example/pubspec.yaml @@ -7,7 +7,9 @@ version: 1.0.0+1 publish_to: "none" # Remove this line if you wish to publish to pub.dev environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.10.0 <4.0.0" + +resolution: workspace # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -50,14 +52,6 @@ dev_dependencies: veilid_integration_test: path: ../packages/veilid_integration_test -# Uncomment for deadlock detection; off by default because the per-lock-acquire overhead -# inflates latency on these throughput-heavy tests. -# hooks: -# user_defines: -# veilid: -# features: -# - debug-locks - # The following section is specific to Flutter. flutter: uses-material-design: true diff --git a/veilid-flutter/packages/veilid_integration_test/pubspec.lock b/veilid-flutter/packages/veilid_integration_test/pubspec.lock deleted file mode 100644 index a1114dd4..00000000 --- a/veilid-flutter/packages/veilid_integration_test/pubspec.lock +++ /dev/null @@ -1,575 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" - async: - dependency: transitive - description: - name: async - sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 - url: "https://pub.dev" - source: hosted - version: "2.13.1" - async_tools: - dependency: transitive - description: - name: async_tools - sha256: b02e177699fbd10fdeb7871fbf43a147e3f964e50a9b8047d26b53212c16e07e - url: "https://pub.dev" - source: hosted - version: "0.1.17" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - change_case: - dependency: transitive - description: - name: change_case - sha256: e41ef3df58521194ef8d7649928954805aeb08061917cf658322305e61568003 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - characters: - dependency: transitive - description: - name: characters - sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b - url: "https://pub.dev" - source: hosted - version: "1.4.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a - url: "https://pub.dev" - source: hosted - version: "1.4.0" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.dev" - source: hosted - version: "1.1.2" - code_assets: - dependency: transitive - description: - name: code_assets - sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - convert: - dependency: transitive - description: - name: convert - sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.dev" - source: hosted - version: "3.1.2" - crypto: - dependency: transitive - description: - name: crypto - sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf - url: "https://pub.dev" - source: hosted - version: "3.0.7" - equatable: - dependency: transitive - description: - name: equatable - sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" - url: "https://pub.dev" - source: hosted - version: "1.3.3" - ffi: - dependency: transitive - description: - name: ffi - sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - file: - dependency: transitive - description: - name: file - sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 - url: "https://pub.dev" - source: hosted - version: "7.0.1" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_driver: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - flutter_test: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - fuchsia_remote_debug_protocol: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - hooks: - dependency: transitive - description: - name: hooks - sha256: eaac480a35ec0814146c2c48d96aaa829e0e44a7662c88ae84c9edf4bc35651f - url: "https://pub.dev" - source: hosted - version: "2.2.0" - integration_test: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - jni: - dependency: transitive - description: - name: jni - sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f - url: "https://pub.dev" - source: hosted - version: "1.0.0" - jni_flutter: - dependency: transitive - description: - name: jni_flutter - sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" - url: "https://pub.dev" - source: hosted - version: "4.12.0" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" - url: "https://pub.dev" - source: hosted - version: "11.0.2" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" - url: "https://pub.dev" - source: hosted - version: "3.0.10" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - lints: - dependency: transitive - description: - name: lints - sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" - url: "https://pub.dev" - source: hosted - version: "6.1.0" - logging: - dependency: transitive - description: - name: logging - sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.dev" - source: hosted - version: "1.3.0" - matcher: - dependency: transitive - description: - name: matcher - sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" - url: "https://pub.dev" - source: hosted - version: "0.12.20" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" - url: "https://pub.dev" - source: hosted - version: "0.13.0" - meta: - dependency: transitive - description: - name: meta - sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" - url: "https://pub.dev" - source: hosted - version: "1.19.0" - native_toolchain_rust: - dependency: transitive - description: - name: native_toolchain_rust - sha256: "8469a0e32a47a5c84b7fd300de9fd0e8082aac76c37922986324f5082a58350d" - url: "https://pub.dev" - source: hosted - version: "1.0.6" - objective_c: - dependency: transitive - description: - name: objective_c - sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" - url: "https://pub.dev" - source: hosted - version: "9.4.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc - url: "https://pub.dev" - source: hosted - version: "2.2.0" - path: - dependency: transitive - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - path_provider: - dependency: transitive - description: - name: path_provider - sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 - url: "https://pub.dev" - source: hosted - version: "2.1.6" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" - url: "https://pub.dev" - source: hosted - version: "2.3.1" - path_provider_foundation: - dependency: transitive - description: - name: path_provider_foundation - sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" - url: "https://pub.dev" - source: hosted - version: "2.6.0" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" - source: hosted - version: "2.2.1" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" - source: hosted - version: "2.3.0" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" - url: "https://pub.dev" - source: hosted - version: "7.0.2" - platform: - dependency: transitive - description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.dev" - source: hosted - version: "3.1.6" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - process: - dependency: transitive - description: - name: process - sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 - url: "https://pub.dev" - source: hosted - version: "5.0.5" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - quiver: - dependency: transitive - description: - name: quiver - sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 - url: "https://pub.dev" - source: hosted - version: "3.2.2" - record_use: - dependency: transitive - description: - name: record_use - sha256: "1cb8564af8d43b464294411db9217f5ec04891c6f22ee2c32d73ae05e88a6bd2" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" - url: "https://pub.dev" - source: hosted - version: "1.10.2" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.dev" - source: hosted - version: "1.12.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - sync_http: - dependency: transitive - description: - name: sync_http - sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - test_api: - dependency: "direct main" - description: - name: test_api - sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" - url: "https://pub.dev" - source: hosted - version: "0.7.12" - toml: - dependency: transitive - description: - name: toml - sha256: "35a35f782228656a2af31e8c73d1353cc4ef3d683fd68af1111b44631879c05e" - url: "https://pub.dev" - source: hosted - version: "0.18.0" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 - url: "https://pub.dev" - source: hosted - version: "2.4.2" - veilid: - dependency: "direct main" - description: - path: "../.." - relative: true - source: path - version: "0.5.7" - veilid_test: - dependency: "direct main" - description: - path: "../veilid_test" - relative: true - source: path - version: "0.1.0" - veilid_xterm: - dependency: "direct main" - description: - name: veilid_xterm - sha256: "0302c817a161eb1c8d3465b6e918e46a15ff5fbde5349551a09036e6667737b2" - url: "https://pub.dev" - source: hosted - version: "4.0.0-veilid.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" - url: "https://pub.dev" - source: hosted - version: "15.2.0" - web: - dependency: transitive - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - webdriver: - dependency: transitive - description: - name: webdriver - sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce - url: "https://pub.dev" - source: hosted - version: "3.1.3" - zmodem: - dependency: transitive - description: - name: zmodem - sha256: "3b7e5b29f3a7d8aee472029b05165a68438eff2f3f7766edf13daba1e297adbf" - url: "https://pub.dev" - source: hosted - version: "0.0.6" -sdks: - dart: ">=3.11.0-0 <4.0.0" - flutter: ">=3.47.1" diff --git a/veilid-flutter/packages/veilid_integration_test/pubspec.yaml b/veilid-flutter/packages/veilid_integration_test/pubspec.yaml index 8a7b6813..3ff4896d 100644 --- a/veilid-flutter/packages/veilid_integration_test/pubspec.yaml +++ b/veilid-flutter/packages/veilid_integration_test/pubspec.yaml @@ -4,7 +4,9 @@ version: 0.1.0 publish_to: none environment: - sdk: ">=3.8.0 <4.0.0" + sdk: ">=3.10.0 <4.0.0" + +resolution: workspace dependencies: flutter: diff --git a/veilid-flutter/packages/veilid_test/.gitignore b/veilid-flutter/packages/veilid_test/.gitignore deleted file mode 100644 index 3f8172af..00000000 --- a/veilid-flutter/packages/veilid_test/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock - -.flutter-plugins -.flutter-plugins-dependencies diff --git a/veilid-flutter/packages/veilid_test/pubspec.yaml b/veilid-flutter/packages/veilid_test/pubspec.yaml index 923ece78..a1dfccb0 100644 --- a/veilid-flutter/packages/veilid_test/pubspec.yaml +++ b/veilid-flutter/packages/veilid_test/pubspec.yaml @@ -5,7 +5,9 @@ publish_to: none # repository: https://gitlab.com/veilid/dart_veilid_test environment: - sdk: ">=3.8.0 <4.0.0" + sdk: ">=3.10.0 <4.0.0" + +resolution: workspace # Add regular dependencies here. dependencies: diff --git a/veilid-flutter/pubspec.yaml b/veilid-flutter/pubspec.yaml index b9c0cbe0..79bd4e40 100644 --- a/veilid-flutter/pubspec.yaml +++ b/veilid-flutter/pubspec.yaml @@ -10,6 +10,21 @@ environment: sdk: ">=3.10.0 <4.0.0" flutter: ">=3.47.1" +# Members resolve against this package's .dart_tool, so the build hook keeps one rust output tree +workspace: + - example + - packages/veilid_test + - packages/veilid_integration_test + +# Flutter reads hook user-defines from the workspace root pubspec, so they live here for every member. +# Uncomment for deadlock detection; off by default because the per-lock-acquire overhead +# inflates latency on the throughput-heavy integration tests. +# hooks: +# user_defines: +# veilid: +# features: +# - debug-locks + dependencies: # hook/build.dart compiles veilid-flutter/rust and delivers it as a code asset code_assets: ^1.2.1 diff --git a/veilid-flutter/run_integration_tests.sh b/veilid-flutter/run_integration_tests.sh index 857f7160..2537301e 100755 --- a/veilid-flutter/run_integration_tests.sh +++ b/veilid-flutter/run_integration_tests.sh @@ -26,8 +26,9 @@ $(print_common_integration_test_options) Env: LOG_DIRECTIVES=... Forwarded as --dart-define=LOG_DIRECTIVES (default '#common=debug') -Extra cargo features go in example/pubspec.yaml under \`hooks: user_defines:\`, -which apply to a --live run. This script owns the feature set for a mock run. +Extra cargo features go in veilid-flutter/pubspec.yaml (the workspace root) under +\`hooks: user_defines:\`, which apply to a --live run. This script owns the feature +set for a mock run. EOF } diff --git a/version_bump.sh b/version_bump.sh index 11d3b7ff..3f7abf81 100755 --- a/version_bump.sh +++ b/version_bump.sh @@ -44,20 +44,11 @@ pushd veilid-python 2>/dev/null uv lock popd 2>/dev/null -# Update flutter lockfiles +# Re-resolve the flutter workspace (one lock for the plugin, example and test packages) pushd veilid-flutter 2>/dev/null flutter pub get popd 2>/dev/null -# Update flutter package lockfiles -pushd veilid-flutter/packages/veilid_test 2>/dev/null -flutter pub get -popd 2>/dev/null - -pushd veilid-flutter/packages/veilid_integration_test 2>/dev/null -flutter pub get -popd 2>/dev/null - # Build wasm bundle (debug) — refreshes pkg/package.json with new version # so the local tests/ dependency resolves to the bumped version. pushd veilid-wasm 2>/dev/null