Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
10fff4f
move to package format for easier decoupling
gnunicorn Sep 2, 2025
5fd2993
use latest native to connect to server
gnunicorn Sep 3, 2025
d148b68
Merge remote-tracking branch 'origin/main' into ben-native-integratio…
gnunicorn Sep 9, 2025
451b56d
Upgrade to latest frb and fixup local usage
gnunicorn Sep 9, 2025
bc050b8
mini command
gnunicorn Sep 9, 2025
722e34d
next round of implementation
gnunicorn Sep 9, 2025
604e372
bump rust version
gnunicorn Sep 9, 2025
12a2b9f
switch back to released riverpod version
gnunicorn Sep 9, 2025
89bc8fa
status connection indicator
gnunicorn Sep 9, 2025
b8ed044
add system check-ability
gnunicorn Sep 10, 2025
f3a6bcb
autoconnect now that things work again
gnunicorn Sep 10, 2025
3bd81c8
actual linkage
gnunicorn Sep 10, 2025
c84681b
using the new action from the relay repo
gnunicorn Sep 11, 2025
c2ed6fd
more CI fixes
gnunicorn Sep 11, 2025
1a37b55
more CI fixes
gnunicorn Sep 11, 2025
50cb27b
activate autocancel
gnunicorn Sep 12, 2025
6a90630
upgrade to latest zoe-relay package
gnunicorn Sep 12, 2025
12eb0de
verbose flutter build
gnunicorn Sep 12, 2025
eab01d6
fixing flutter builds for the various platforms
gnunicorn Sep 12, 2025
da96981
only check formatting in lib folder
gnunicorn Sep 12, 2025
e236739
fix code sign requirement for mac
gnunicorn Sep 12, 2025
fabecd7
and more missing dependencies
gnunicorn Sep 12, 2025
18410d0
move sqlcipher install to shared action
gnunicorn Sep 12, 2025
6fedf76
fix env vars on macos
gnunicorn Sep 12, 2025
556fc4e
upgrade to latest
gnunicorn Sep 14, 2025
48f8521
fixing macos buildd?
gnunicorn Sep 14, 2025
eef3195
new built system
gnunicorn Sep 14, 2025
c5da9b9
fixing missing framework link
gnunicorn Sep 14, 2025
295d5c5
remove unused disk space for android build
gnunicorn Sep 15, 2025
1b71661
building apk for testing enough
gnunicorn Sep 15, 2025
ea3385a
clean up before adding flutter
gnunicorn Sep 15, 2025
b7a0ae2
Testing prebuilt
gnunicorn Sep 15, 2025
1a4c656
don't clear linux tool cache
gnunicorn Sep 15, 2025
c781843
upgrade to latest libs with proper android build support
gnunicorn Sep 15, 2025
8b17ead
ignore local cargokit overrides
gnunicorn Sep 15, 2025
937c38e
Document the local override for prebuilts in native plugin
gnunicorn Sep 15, 2025
b1475a8
fix linux built
gnunicorn Sep 15, 2025
3098aac
fixing linux clang dependencies
gnunicorn Sep 15, 2025
37adff1
built linux
gnunicorn Sep 15, 2025
e736cee
limiting android built
gnunicorn Sep 15, 2025
6456a11
fix prebuilt support
gnunicorn Sep 15, 2025
8ef2f1f
only build for arm64 maybe
gnunicorn Sep 15, 2025
518e493
try to built all the platforms, don't cancel the others
gnunicorn Sep 15, 2025
a00ebdd
continue wehn test and formatting fail for now
gnunicorn Sep 15, 2025
0730175
disable precompiled binaries for now
gnunicorn Sep 15, 2025
ac7701b
tryint to fix precompiled build
gnunicorn Sep 15, 2025
025c18e
re-add precompilation
gnunicorn Sep 16, 2025
8e5e44f
specify when to run the workflows
gnunicorn Sep 16, 2025
1344b38
run for all pull requests
gnunicorn Sep 16, 2025
ce8a36b
Merge remote-tracking branch 'origin/main' into ben-native-integratio…
gnunicorn Sep 16, 2025
83dfb0e
post merge fix
gnunicorn Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
272 changes: 147 additions & 125 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

70 changes: 31 additions & 39 deletions .github/workflows/codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@ name: Code Generation
on:
push:
paths:
- 'rust/src/**'
- 'flutter_rust_bridge.yaml'
- 'rust/Cargo.toml'
- 'packages/zoe_native/rust/src/**'
- 'packages/zoe_native/flutter_rust_bridge.yaml'
- 'packages/zoe_native/rust/Cargo.toml'
pull_request:
paths:
- 'rust/src/**'
- 'flutter_rust_bridge.yaml'
- 'rust/Cargo.toml'
- 'packages/zoe_native/rust/src/**'
- 'packages/zoe_native/flutter_rust_bridge.yaml'
- 'packages/zoe_native/rust/Cargo.toml'
workflow_dispatch:

env:
FLUTTER_VERSION: '3.35.2'
RUST_VERSION: '1.85.0'
RUST_VERSION: '1.89.0'
FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: '2.11.1'

jobs:
# Validate flutter_rust_bridge code generation
Expand All @@ -25,15 +26,13 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup Rust for codegen
uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: rust
targets: 'x86_64-unknown-linux-gnu'
rust_version: ${{ env.RUST_VERSION }}
workspace_path: 'packages/zoe_native/rust'
components: 'rustfmt'

- name: Setup Flutter
uses: subosito/flutter-action@v2
Expand All @@ -43,12 +42,13 @@ jobs:
cache: true

- name: Install flutter_rust_bridge_codegen
run: cargo install flutter_rust_bridge_codegen --version 2.11.1
run: cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_CODEGEN_VERSION }}

- name: Install dependencies
run: flutter pub get

- name: Generate bindings
working-directory: packages/zoe_native
run: flutter_rust_bridge_codegen generate

- name: Check if generated files are up to date
Expand All @@ -59,12 +59,12 @@ jobs:
fi

- name: Verify Rust compilation
run: |
cd rust
cargo check
working-directory: packages/zoe_native/
run: cargo check --all

- name: Verify Flutter compilation
run: flutter analyze lib/core/rust/
working-directory: packages/zoe_native/
run: flutter analyze lib

# Test cross-platform compatibility
test-codegen-platforms:
Expand All @@ -76,15 +76,12 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
- name: Setup Rust for cross-platform testing
uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main
with:
workspaces: rust
targets: 'x86_64-unknown-linux-gnu'
rust_version: ${{ env.RUST_VERSION }}
workspace_path: 'packages/zoe_native/rust'

- name: Setup Flutter
uses: subosito/flutter-action@v2
Expand All @@ -93,19 +90,14 @@ jobs:
channel: 'stable'
cache: true

- name: Install flutter_rust_bridge_codegen
run: cargo install flutter_rust_bridge_codegen --version 2.11.1

- name: Install dependencies
run: flutter pub get

- name: Test code generation
run: flutter_rust_bridge_codegen generate

- name: Test Rust build
- name: Rust tests
working-directory: packages/zoe_native
run: |
cd rust
cargo build
cargo test

- name: Test Flutter analysis
run: flutter analyze lib/core/rust/
- name: Flutter tests
working-directory: packages/zoe_native
run: flutter test
2 changes: 1 addition & 1 deletion .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

env:
FLUTTER_VERSION: '3.35.2'
RUST_VERSION: '1.85.0'
RUST_VERSION: '1.89.0'

jobs:
# Check for Rust security vulnerabilities
Expand Down
108 changes: 108 additions & 0 deletions .github/workflows/prebuilt-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Build Precompiled Binaries

on:
push:
branches: [ main ]
paths:
- 'packages/zoe_native/rust/src/**'
- 'packages/zoe_native/flutter_rust_bridge.yaml'
- 'packages/zoe_native/rust/Cargo.toml'
- 'packages/zoe_native/Cargo.toml'
- 'packages/zoe_native/Cargo.lock'
workflow_dispatch:

env:
FLUTTER_VERSION: '3.35.2'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
precompile-binaries:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: Linux x64
targets: 'x86_64-unknown-linux-gnu'
- os: ubuntu-latest
name: Android
targets: 'aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-android'
setup_android: true
build_args: '--android-sdk-location "$ANDROID_SDK_ROOT" --android-ndk-version "27.0.12077973" --android-min-sdk-version "21"'
- os: macos-latest
name: iOS
targets: 'aarch64-apple-ios,x86_64-apple-ios,aarch64-apple-ios-sim'
- os: macos-latest
name: MacOS
targets: 'x86_64-apple-darwin,aarch64-apple-darwin'
- os: windows-latest
name: Windows
targets: 'x86_64-pc-windows-msvc'


runs-on: ${{ matrix.os }}
name: Prebuilts for ${{ matrix.name }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Free Disk Space (Ubuntu only)
if: matrix.setup_android
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
android: false

- name: Setup Java (Android builds only)
if: matrix.setup_android
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Setup Rust
uses: acterglobal/zoe-relay/.github/actions/setup-rust-cross-platform@main
with:
targets: ${{ matrix.targets }}
workspace_path: 'packages/zoe_native/rust'
install_android_ndk: ${{ matrix.setup_android }}

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: 'stable'
cache: true

- name: Install cross-compilation dependencies (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y \
gcc-aarch64-linux-gnu \
gcc-mingw-w64-x86-64 \
gcc-mingw-w64-i686

- name: Install Flutter dependencies
working-directory: packages/zoe_native/
run: flutter pub get

- name: Install cargokit build tool dependencies
working-directory: packages/zoe_native/cargokit/build_tool
run: dart pub get

- name: Run precompile binaries
working-directory: packages/zoe_native
env:
PRIVATE_KEY: ${{ secrets.PREBUILTS_PRIVATE_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
dart cargokit/build_tool/bin/build_tool.dart precompile-binaries \
--repository "acterglobal/zoe" \
--manifest-dir "rust" \
--target ${{ matrix.targets }} \
${{ matrix.build_args }}
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:

env:
FLUTTER_VERSION: '3.35.2'
RUST_VERSION: '1.85.0'
RUST_VERSION: '1.89.0'

jobs:
# Build Android release
Expand Down
3 changes: 3 additions & 0 deletions devtools_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:
3 changes: 0 additions & 3 deletions flutter_rust_bridge.yaml

This file was deleted.

15 changes: 15 additions & 0 deletions lib/core/routing/app_router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import 'package:zoe/features/profile/screens/edit_profile_screen.dart';
import 'package:zoe/features/quick-search/screens/quick_search_screen.dart';
import 'package:zoe/features/settings/screens/settings_screen.dart';
import 'package:zoe/features/settings/screens/language_selection_screen.dart';
import 'package:zoe/features/settings/screens/developer_tools_screen.dart';
import 'package:zoe/features/settings/screens/systems_test_screen.dart';
import 'package:zoe/features/sheet/screens/sheet_detail_screen.dart';
import 'package:zoe/features/sheet/screens/sheet_list_screen.dart';
import 'package:zoe/features/task/screens/task_detail_screen.dart';
Expand Down Expand Up @@ -204,6 +206,19 @@ final routerProvider = Provider<GoRouter>((ref) {
builder: (context, state) => const LanguageSelectionScreen(),
),

// Developer tools route
GoRoute(
path: AppRoutes.developerTools.route,
name: AppRoutes.developerTools.name,
builder: (context, state) => const DeveloperToolsScreen(),
),

// Systems test route
GoRoute(
path: AppRoutes.systemsTest.route,
name: AppRoutes.systemsTest.name,
builder: (context, state) => const SystemsTestScreen(),
),
// Profile route
GoRoute(
path: AppRoutes.settingsProfile.route,
Expand Down
2 changes: 2 additions & 0 deletions lib/core/routing/app_routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ enum AppRoutes {
quickSearch('/quick-search'),
settings('/settings'),
settingLanguage('/settings/language'),
developerTools('/developer-tools'),
systemsTest('/developer-tools/systems-test'),
settingsProfile('/settings/profile'),
whatsappGroupConnect('/whatsapp-group-connect/:sheetId');

Expand Down
Loading
Loading