From 1a4d334e4739976c92c64cf98f50b992e183dfcb Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Thu, 11 Sep 2025 00:03:01 +0400 Subject: [PATCH] fix clippy and remove old action yaml --- .github/workflows/napi-sync.yml | 190 -------------------- bindings/javascript/sync/src/generator.rs | 2 +- bindings/javascript/sync/src/lib.rs | 1 + sync/engine/src/database_sync_engine.rs | 2 +- sync/engine/src/database_sync_operations.rs | 12 +- 5 files changed, 8 insertions(+), 199 deletions(-) delete mode 100644 .github/workflows/napi-sync.yml diff --git a/.github/workflows/napi-sync.yml b/.github/workflows/napi-sync.yml deleted file mode 100644 index 7f854cb75..000000000 --- a/.github/workflows/napi-sync.yml +++ /dev/null @@ -1,190 +0,0 @@ -name: Build & publish @tursodatabase/sync - -on: - push: - branches: - - main - tags: - - v* - pull_request: - branches: - - main - -env: - DEBUG: napi:* - APP_NAME: turso-sync-js - MACOSX_DEPLOYMENT_TARGET: "10.13" - -defaults: - run: - working-directory: sync/javascript - -jobs: - build: - timeout-minutes: 20 - strategy: - fail-fast: false - matrix: - settings: - - host: windows-latest - build: | - yarn build --target x86_64-pc-windows-msvc - yarn test - target: x86_64-pc-windows-msvc - - host: ubuntu-latest - target: x86_64-unknown-linux-gnu - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian - build: yarn build --target x86_64-unknown-linux-gnu - - host: macos-latest - target: aarch64-apple-darwin - build: yarn build --target aarch64-apple-darwin - - host: blacksmith-2vcpu-ubuntu-2404-arm - target: aarch64-unknown-linux-gnu - build: yarn build --target aarch64-unknown-linux-gnu - - host: ubuntu-latest - target: wasm32-wasip1-threads - setup: | - rustup target add wasm32-wasip1-threads - wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz - tar -xvf wasi-sdk-25.0-x86_64-linux.tar.gz - build: | - export WASI_SDK_PATH="$(pwd)/wasi-sdk-25.0-x86_64-linux" - export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) - export TARGET_CXXFLAGS="--target=wasm32-wasi-threads --sysroot=$(pwd)/wasi-sdk-25.0-x86_64-linux/share/wasi-sysroot -pthread -mllvm -wasm-enable-sjlj -lsetjmp" - export TARGET_CFLAGS="$TARGET_CXXFLAGS" - yarn build --target wasm32-wasip1-threads - name: stable - ${{ matrix.settings.target }} - node@20 - runs-on: ${{ matrix.settings.host }} - steps: - - uses: actions/checkout@v4 - - name: Setup node - uses: actions/setup-node@v4 - if: ${{ !matrix.settings.docker }} - with: - node-version: 20 - - name: Install - uses: dtolnay/rust-toolchain@stable - if: ${{ !matrix.settings.docker }} - with: - toolchain: stable - targets: ${{ matrix.settings.target }} - - name: Cache cargo - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - .cargo-cache - target/ - key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} - - uses: mlugg/setup-zig@v2 - if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' || matrix.settings.target == 'armv7-unknown-linux-musleabihf' }} - with: - version: 0.13.0 - - name: Setup toolchain - run: ${{ matrix.settings.setup }} - if: ${{ matrix.settings.setup }} - shell: bash - - name: Install dependencies - run: yarn install - - name: Setup node x86 - uses: actions/setup-node@v4 - if: matrix.settings.target == 'x86_64-pc-windows-msvc' - with: - node-version: 20 - architecture: x64 - - name: Build in docker - uses: addnab/docker-run-action@v3 - if: ${{ matrix.settings.docker }} - with: - image: ${{ matrix.settings.docker }} - options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build/sync/javascript" - run: ${{ matrix.settings.build }} - - name: Build - run: ${{ matrix.settings.build }} - if: ${{ !matrix.settings.docker }} - shell: bash - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: turso-sync-js-${{ matrix.settings.target }} - path: | - sync/javascript/${{ env.APP_NAME }}.*.node - sync/javascript/${{ env.APP_NAME }}.*.wasm - if-no-files-found: error - test-linux-x64-gnu-binding: - name: Test turso-sync-js on Linux-x64-gnu - node@${{ matrix.node }} - needs: - - build - strategy: - fail-fast: false - matrix: - node: - - "20" - runs-on: blacksmith-4vcpu-ubuntu-2404 - steps: - - uses: actions/checkout@v4 - - name: Setup node - uses: useblacksmith/setup-node@v5 - with: - node-version: ${{ matrix.node }} - - name: Install dependencies - run: yarn install - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: turso-sync-js-x86_64-unknown-linux-gnu - path: sync/javascript - - name: List packages - run: ls -R . - shell: bash - - name: Test turso-sync-js - run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn test - publish: - name: Publish - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/v') - permissions: - contents: read - id-token: write - needs: - - test-linux-x64-gnu-binding - steps: - - uses: actions/checkout@v4 - - name: Setup node - uses: useblacksmith/setup-node@v5 - with: - node-version: 20 - - name: Install dependencies - run: yarn install - - name: create npm dirs - run: yarn napi create-npm-dirs - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: sync/javascript/artifacts - - name: Move artifacts - run: yarn artifacts - - name: List packages - run: ls -R ./npm - shell: bash - - name: Publish - run: | - npm config set provenance true - if git log -1 --pretty=%B | grep "^Turso [0-9]\+\.[0-9]\+\.[0-9]\+$"; - then - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc - make publish-native - make publish-browser - elif git log -1 --pretty=%B | grep "^Turso [0-9]\+\.[0-9]\+\.[0-9]\+"; - then - echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc - make publish-native-next - make publish-browser-next - else - echo "Not a release, skipping publish" - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/bindings/javascript/sync/src/generator.rs b/bindings/javascript/sync/src/generator.rs index 89045e131..141dec016 100644 --- a/bindings/javascript/sync/src/generator.rs +++ b/bindings/javascript/sync/src/generator.rs @@ -89,7 +89,7 @@ fn resume_sync(holder: &GeneratorHolder, error: Option) -> napi::Result< impl GeneratorHolder { #[napi] pub fn resume_sync(&self, error: Option) -> napi::Result { - resume_sync(&self, error) + resume_sync(self, error) } #[napi] diff --git a/bindings/javascript/sync/src/lib.rs b/bindings/javascript/sync/src/lib.rs index 427333fd2..fd4d88e78 100644 --- a/bindings/javascript/sync/src/lib.rs +++ b/bindings/javascript/sync/src/lib.rs @@ -218,6 +218,7 @@ impl SyncEngine { Ok(()) }); Ok(GeneratorHolder { + #[allow(clippy::arc_with_non_send_sync)] generator: Arc::new(Mutex::new(generator)), response: Arc::new(Mutex::new(None)), }) diff --git a/sync/engine/src/database_sync_engine.rs b/sync/engine/src/database_sync_engine.rs index 71be5d685..488776aad 100644 --- a/sync/engine/src/database_sync_engine.rs +++ b/sync/engine/src/database_sync_engine.rs @@ -577,7 +577,7 @@ impl DatabaseSyncEngine

{ let mut transformed = if self.opts.use_transform { Some( apply_transformation( - &coro, + coro, self.protocol.as_ref(), &local_changes, &replay.generator, diff --git a/sync/engine/src/database_sync_operations.rs b/sync/engine/src/database_sync_operations.rs index ff18e7100..daec39bc4 100644 --- a/sync/engine/src/database_sync_operations.rs +++ b/sync/engine/src/database_sync_operations.rs @@ -752,7 +752,7 @@ pub async fn push_logical_changes( } let mut transformed = if opts.use_transform { - Some(apply_transformation(&coro, client, &local_changes, &generator).await?) + Some(apply_transformation(coro, client, &local_changes, &generator).await?) } else { None }; @@ -779,9 +779,7 @@ pub async fn push_logical_changes( ); assert!( last_change_id.is_none() || last_change_id.unwrap() < change_id, - "change id must be strictly increasing: last_change_id={:?}, change.change_id={}", - last_change_id, - change_id + "change id must be strictly increasing: last_change_id={last_change_id:?}, change.change_id={change_id}" ); rows_changed += 1; // we give user full control over CDC table - so let's not emit assert here for now @@ -945,11 +943,11 @@ pub async fn apply_transformation( ) -> Result> { let mut mutations = Vec::new(); for change in changes { - let replay_info = generator.replay_info(&coro, &change).await?; - mutations.push(generator.create_mutation(&replay_info, &change)?); + let replay_info = generator.replay_info(coro, change).await?; + mutations.push(generator.create_mutation(&replay_info, change)?); } let completion = client.transform(mutations)?; - let transformed = wait_all_results(&coro, &completion).await?; + let transformed = wait_all_results(coro, &completion).await?; if transformed.len() != changes.len() { return Err(Error::DatabaseSyncEngineError(format!( "unexpected result from custom transformation: mismatch in shapes: {} != {}",