From 8b3b84674a12a6c2c9e0cc5a3ebe48684b2d1dd9 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Sun, 1 Mar 2026 21:30:22 +0900 Subject: [PATCH 1/7] update --- .github/workflows/ci.yml | 105 ++++++++++++++-------------------- .github/workflows/release.yml | 62 ++++++-------------- rust-toolchain.toml | 3 + 3 files changed, 66 insertions(+), 104 deletions(-) create mode 100644 rust-toolchain.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae4d7a6..8d1c9db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: check-latest: true cache: yarn - name: Install dependencies - run: yarn install + run: yarn install --immutable - name: Run biome check run: yarn biome check format: @@ -51,7 +51,7 @@ jobs: - name: Install taplo run: cargo install taplo-cli --locked - name: Install dependencies - run: yarn install + run: yarn install --immutable - name: Run rustfmt run: cargo fmt --all --check - name: Run taplo @@ -64,7 +64,7 @@ jobs: - name: Install rust uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable with: - toolchain: stable + toolchain: "1.91.0" components: clippy - name: Run clippy run: cargo clippy @@ -74,7 +74,7 @@ jobs: fail-fast: false matrix: settings: - - host: macos-latest + - host: macos-15-intel target: x86_64-apple-darwin build: yarn build --target x86_64-apple-darwin - host: macos-latest @@ -88,63 +88,36 @@ jobs: build: yarn build --target aarch64-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian - build: |- - rustup update stable && - yarn build --target x86_64-unknown-linux-gnu + build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: x86_64-unknown-linux-musl - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - build: |- - # `perl` needs for building openssl - set -e && - apk add perl && - rustup update stable && - yarn build + build: yarn build --target x86_64-unknown-linux-musl -x - host: ubuntu-latest target: aarch64-unknown-linux-gnu - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 - build: |- - # `perl` needs for building openssl - set -e && - apt-get update && - apt-get install -y perl && - unset CC_aarch64_unknown_linux_gnu && - unset CXX_aarch64_unknown_linux_gnu && - rustup update stable && - yarn build --target aarch64-unknown-linux-gnu + build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: aarch64-unknown-linux-musl - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - build: |- - # `perl` needs for building openssl - set -e && - apk add perl && - rustup update stable && - rustup target add aarch64-unknown-linux-musl && - yarn build --target aarch64-unknown-linux-musl + build: yarn build --target aarch64-unknown-linux-musl -x - host: ubuntu-latest target: aarch64-linux-android build: yarn build --target aarch64-linux-android - host: ubuntu-latest target: armv7-linux-androideabi build: yarn build --target armv7-linux-androideabi - name: stable - ${{ matrix.settings.target }} - node@20 + name: build (${{ matrix.settings.target }}) runs-on: ${{ matrix.settings.host }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 - if: ${{ !matrix.settings.docker }} with: node-version-file: ".node-version" check-latest: true cache: yarn - name: Install rust uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable - if: ${{ !matrix.settings.docker }} with: - toolchain: stable + toolchain: 1.91.0 targets: ${{ matrix.settings.target }} - name: Cache cargo uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 @@ -156,18 +129,22 @@ jobs: .cargo-cache target/ key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} - - name: Install dependencies - run: yarn install - - name: Build in docker - uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185 # v3 - if: ${{ matrix.settings.docker }} + - name: Setup zig + uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # 2.2.1 + if: ${{ contains(matrix.settings.target, 'musl') }} + with: + version: 0.14.1 + - name: Install cargo-zigbuild + uses: taiki-e/install-action@288875dd3d64326724fa6d9593062d9f8ba0b131 # 2.67.30 + if: ${{ contains(matrix.settings.target, 'musl') }} + env: + GITHUB_TOKEN: ${{ github.token }} 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' - run: ${{ matrix.settings.build }} + tool: cargo-zigbuild + - name: Install dependencies + run: yarn install --immutable - name: Build run: ${{ matrix.settings.build }} - if: ${{ !matrix.settings.docker }} shell: bash - name: Upload artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 @@ -176,14 +153,14 @@ jobs: path: ${{ env.APP_NAME }}.*.node if-no-files-found: error test-macos-binding: - name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} + name: test-macos (${{ matrix.settings.target }}), node@${{ matrix.node }}) needs: - build strategy: fail-fast: false matrix: settings: - - host: macos-latest + - host: macos-15-intel target: "x86_64-apple-darwin" architecture: "x64" - host: macos-latest @@ -192,6 +169,7 @@ jobs: node: - "18" - "20" + - "22" runs-on: ${{ matrix.settings.host }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -203,7 +181,7 @@ jobs: cache: yarn architecture: ${{ matrix.settings.architecture }} - name: Install dependencies - run: yarn install + run: yarn install --immutable - name: Download artifacts uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: @@ -215,7 +193,7 @@ jobs: - name: Test bindings run: yarn vitest run test-windows-binding: - name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} + name: test-windows (${{ matrix.settings.target }}), node@${{ matrix.node }}) needs: - build strategy: @@ -224,9 +202,12 @@ jobs: settings: - host: windows-latest target: x86_64-pc-windows-msvc + - host: windows-latest + target: aarch64-pc-windows-msvc node: - - '18' - - '20' + - "18" + - "20" + - "22" runs-on: ${{ matrix.settings.host }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -237,7 +218,7 @@ jobs: check-latest: true cache: yarn - name: Install dependencies - run: yarn install + run: yarn install --immutable - name: Download artifacts uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: @@ -249,15 +230,16 @@ jobs: - name: Test bindings run: yarn vitest run test-linux-x64-gnu-binding: - name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} + name: test-linux-x64-gnu (${{ matrix.settings.target }}), node@${{ matrix.node }}) needs: - build strategy: fail-fast: false matrix: node: - - '18' - - '20' + - "18" + - "20" + - "22" runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -268,7 +250,7 @@ jobs: check-latest: true cache: yarn - name: Install dependencies - run: yarn install + run: yarn install --immutable - name: Download artifacts uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: @@ -280,7 +262,7 @@ jobs: - name: Test bindings run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn vitest run test-linux-x64-musl-binding: - name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} + name: test-linux-x64-musl (${{ matrix.settings.target }}), node@${{ matrix.node }}) needs: - build strategy: @@ -313,15 +295,16 @@ jobs: - name: Test bindings run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine yarn vitest run test-linux-aarch64-gnu-binding: - name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} + name: test-linux-aarch64-gnu (${{ matrix.settings.target }}), node@${{ matrix.node }}) needs: - build strategy: fail-fast: false matrix: node: - - '18' - - '20' + - "18" + - "20" + - "22" runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7d9602a..53dbb1b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: settings: - - host: macos-latest + - host: macos-15-intel target: x86_64-apple-darwin build: yarn build --target x86_64-apple-darwin - host: macos-latest @@ -31,63 +31,36 @@ jobs: build: yarn build --target aarch64-pc-windows-msvc - host: ubuntu-latest target: x86_64-unknown-linux-gnu - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian - build: |- - rustup update stable && - yarn build --target x86_64-unknown-linux-gnu + build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: x86_64-unknown-linux-musl - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - build: |- - # `perl` needs for building openssl - set -e && - apk add perl && - rustup update stable && - yarn build + build: yarn build --target x86_64-unknown-linux-musl -x - host: ubuntu-latest target: aarch64-unknown-linux-gnu - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 - build: |- - # `perl` needs for building openssl - set -e && - apt-get update && - apt-get install -y perl && - unset CC_aarch64_unknown_linux_gnu && - unset CXX_aarch64_unknown_linux_gnu && - rustup update stable && - yarn build --target aarch64-unknown-linux-gnu + build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: aarch64-unknown-linux-musl - docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - build: |- - # `perl` needs for building openssl - set -e && - apk add perl && - rustup update stable && - rustup target add aarch64-unknown-linux-musl && - yarn build --target aarch64-unknown-linux-musl + build: yarn build --target aarch64-unknown-linux-musl -x - host: ubuntu-latest target: aarch64-linux-android build: yarn build --target aarch64-linux-android - host: ubuntu-latest target: armv7-linux-androideabi build: yarn build --target armv7-linux-androideabi - name: stable - ${{ matrix.settings.target }} + name: build (${{ matrix.settings.target }}) runs-on: ${{ matrix.settings.host }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 - if: ${{ !matrix.settings.docker }} with: node-version-file: '.node-version' check-latest: true cache: yarn - name: Install rust uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable - if: ${{ !matrix.settings.docker }} with: - toolchain: stable + toolchain: "1.91.0" targets: ${{ matrix.settings.target }} - name: Cache cargo uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 @@ -99,18 +72,21 @@ jobs: .cargo-cache target/ key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} - - name: Install dependencies - run: yarn install - - name: Build in docker - uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185 # v3 - if: ${{ matrix.settings.docker }} + - uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # 2.2.1 + if: ${{ contains(matrix.settings.target, 'musl') }} 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' - run: ${{ matrix.settings.build }} + version: 0.14.1 + - name: Install cargo-zigbuild + uses: taiki-e/install-action@288875dd3d64326724fa6d9593062d9f8ba0b131 # 2.67.30 + if: ${{ contains(matrix.settings.target, 'musl') }} + env: + GITHUB_TOKEN: ${{ github.token }} + with: + tool: cargo-zigbuild + - name: Install dependencies + run: yarn install --immutable - name: Build run: ${{ matrix.settings.build }} - if: ${{ !matrix.settings.docker }} shell: bash - name: Upload artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..1612370 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.91.0" +profile = "default" From 5b9a3094e5553bc4962f2e70e2801078e4b27210 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Mon, 2 Mar 2026 12:19:46 +0900 Subject: [PATCH 2/7] update --- Cargo.lock | 11 +++++++++++ Cargo.toml | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 49fd12c..08835f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,6 +66,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + [[package]] name = "convert_case" version = "0.8.0" @@ -130,6 +139,7 @@ dependencies = [ "bitflags", "chrono", "git2", + "libgit2-sys", "napi", "napi-build", "napi-derive", @@ -481,6 +491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", + "cmake", "libc", "pkg-config", "vcpkg", diff --git a/Cargo.toml b/Cargo.toml index 8edda7a..a6d0dbe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,8 @@ crate-type = ["cdylib"] [dependencies] bitflags = "2.1.0" chrono = "0.4" -git2 = { version = "0.20.2", features = ["vendored-libgit2", "vendored-openssl"] } +git2 = { version = "=0.20.2", features = ["vendored-libgit2", "vendored-openssl"] } +libgit2-sys = { version = "0.18.1", features = ["vendored", "vendored-openssl", "zlib-ng-compat"] } napi = { version = "3.5.0", default-features = false, features = ["napi6", "chrono_date"] } napi-derive = "3.3.0" thiserror = "2.0.3" From d780a9df5d2e7c3c30fcb02c43b879decb6c498f Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Mon, 2 Mar 2026 17:49:47 +0900 Subject: [PATCH 3/7] ci: add support for additional architectures and OS configurations --- .github/workflows/ci.yml | 112 ++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 66 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d1c9db..656a701 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -202,8 +202,10 @@ jobs: settings: - host: windows-latest target: x86_64-pc-windows-msvc - - host: windows-latest + architecture: x64 + - host: windows-11-arm target: aarch64-pc-windows-msvc + architecture: arm64 node: - "18" - "20" @@ -217,6 +219,7 @@ jobs: node-version: ${{ matrix.node }} check-latest: true cache: yarn + architecture: ${{ matrix.architecture }} - name: Install dependencies run: yarn install --immutable - name: Download artifacts @@ -229,49 +232,24 @@ jobs: shell: bash - name: Test bindings run: yarn vitest run - test-linux-x64-gnu-binding: - name: test-linux-x64-gnu (${{ matrix.settings.target }}), node@${{ matrix.node }}) + test-linux-binding: + name: test-linux-binding (${{ matrix.settings.target }}, node@${{ matrix.node }}) needs: - build strategy: fail-fast: false matrix: + target: + - x86_64-unknown-linux-gnu + - x86_64-unknown-linux-musl + - aarch64-unknown-linux-gnu + - aarch64-unknown-linux-musl + - armv7-unknown-linux-gnueabihf node: - "18" - "20" - "22" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Setup node - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 - with: - node-version: ${{ matrix.node }} - check-latest: true - cache: yarn - - name: Install dependencies - run: yarn install --immutable - - name: Download artifacts - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 - with: - name: bindings-x86_64-unknown-linux-gnu - path: . - - name: List packages - run: ls -R . - shell: bash - - name: Test bindings - run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn vitest run - test-linux-x64-musl-binding: - name: test-linux-x64-musl (${{ matrix.settings.target }}), node@${{ matrix.node }}) - needs: - - build - strategy: - fail-fast: false - matrix: - node: - - '18' - - '20' - runs-on: ubuntu-latest + runs-on: ${{ contains(matrix.target, 'aarch64') && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup node @@ -280,46 +258,48 @@ jobs: node-version: ${{ matrix.node }} check-latest: true cache: yarn + - name: Output docker params + id: docker + run: | + node -e " + if ('${{ matrix.target }}'.startsWith('aarch64')) { + console.log('PLATFORM=linux/arm64') + } else if ('${{ matrix.target }}'.startsWith('armv7')) { + console.log('PLATFORM=linux/arm/v7') + } else { + console.log('PLATFORM=linux/amd64') + } + " >> $GITHUB_OUTPUT + node -e " + if ('${{ matrix.target }}'.endsWith('-musl')) { + console.log('IMAGE=node:${{ matrix.node }}-alpine') + } else { + console.log('IMAGE=node:${{ matrix.node }}-slim') + } + " >> $GITHUB_OUTPUT - name: Install dependencies run: | - yarn config set supportedArchitectures.libc "musl" + yarn config set --json supportedArchitectures.cpu '["current", "arm64", "x64", "arm"]' + yarn config set --json supportedArchitectures.libc '["current", "musl", "gnu"]' yarn install - name: Download artifacts uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: - name: bindings-x86_64-unknown-linux-musl + name: bindings-${{ matrix.target }} path: . - name: List packages run: ls -R . shell: bash - - name: Test bindings - run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine yarn vitest run - test-linux-aarch64-gnu-binding: - name: test-linux-aarch64-gnu (${{ matrix.settings.target }}), node@${{ matrix.node }}) - needs: - - build - strategy: - fail-fast: false - matrix: - node: - - "18" - - "20" - - "22" - runs-on: ubuntu-24.04-arm - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Download artifacts - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + - name: Set up QEMU + uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 + if: ${{ contains(matrix.target, 'armv7') }} with: - name: bindings-aarch64-unknown-linux-gnu - path: . - - name: List packages - run: ls -R . - shell: bash - - name: Install dependencies - run: | - yarn config set supportedArchitectures.cpu "arm64" - yarn config set supportedArchitectures.libc "glibc" - yarn install + platforms: all + - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + if: ${{ contains(matrix.target, 'armv7') }} - name: Test bindings - run: yarn vitest run + uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185 # v3 + with: + image: ${{ steps.docker.outputs.IMAGE }} + options: '-v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} --platform ${{ steps.docker.outputs.PLATFORM }}' + run: yarn vitest run From b019ed43f927366bc6b1db9f5e3760e8fed0eb58 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Mon, 2 Mar 2026 21:39:43 +0900 Subject: [PATCH 4/7] exclude --- .github/workflows/ci.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 656a701..1b68298 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -210,6 +210,12 @@ jobs: - "18" - "20" - "22" + exclude: + - settings: + host: windows-latest + target: aarch64-pc-windows-msvc + arch: arm64 + node: "18" runs-on: ${{ matrix.settings.host }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -233,7 +239,7 @@ jobs: - name: Test bindings run: yarn vitest run test-linux-binding: - name: test-linux-binding (${{ matrix.settings.target }}, node@${{ matrix.node }}) + name: test-linux-binding (${{ matrix.target }}, node@${{ matrix.node }}) needs: - build strategy: @@ -244,7 +250,6 @@ jobs: - x86_64-unknown-linux-musl - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl - - armv7-unknown-linux-gnueabihf node: - "18" - "20" From 7d10f67671395e2d7cdf588e1a2a99bb322bf8a4 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Mon, 2 Mar 2026 21:44:13 +0900 Subject: [PATCH 5/7] gnu --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b68298..7a721db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,13 +86,13 @@ jobs: - host: windows-latest target: aarch64-pc-windows-msvc build: yarn build --target aarch64-pc-windows-msvc - - host: ubuntu-latest + - host: ubuntu-20.04 target: x86_64-unknown-linux-gnu build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: x86_64-unknown-linux-musl build: yarn build --target x86_64-unknown-linux-musl -x - - host: ubuntu-latest + - host: ubuntu-20.04 target: aarch64-unknown-linux-gnu build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest From 977b7d2848c2f61c3bd5a07a36a1bdeab921a960 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Mon, 2 Mar 2026 21:50:33 +0900 Subject: [PATCH 6/7] 22.04 --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a721db..2983cbb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,13 +86,13 @@ jobs: - host: windows-latest target: aarch64-pc-windows-msvc build: yarn build --target aarch64-pc-windows-msvc - - host: ubuntu-20.04 + - host: ubuntu-22.04 target: x86_64-unknown-linux-gnu build: yarn build --target x86_64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest target: x86_64-unknown-linux-musl build: yarn build --target x86_64-unknown-linux-musl -x - - host: ubuntu-20.04 + - host: ubuntu-22.04 target: aarch64-unknown-linux-gnu build: yarn build --target aarch64-unknown-linux-gnu --use-napi-cross - host: ubuntu-latest From d6e6f2487f6e97b35a92c995393238fcf1fac700 Mon Sep 17 00:00:00 2001 From: Seokju Na Date: Sun, 10 May 2026 22:46:33 +0900 Subject: [PATCH 7/7] fix --- Cargo.lock | 10 ++++++++++ Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 0c123c4..ebdf0a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,6 +66,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + [[package]] name = "convert_case" version = "0.11.0" @@ -456,6 +465,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", + "cmake", "libc", "pkg-config", "vcpkg", diff --git a/Cargo.toml b/Cargo.toml index 08a6416..9ad5166 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ crate-type = ["cdylib"] [dependencies] bitflags = "2.1.0" chrono = "0.4" -git2 = { version = "=0.20.4", features = ["vendored-libgit2", "vendored-openssl"] } +git2 = { version = "=0.20.4", features = ["vendored-libgit2", "vendored-openssl", "zlib-ng-compat"] } napi = { version = "3.5.0", default-features = false, features = ["napi6", "chrono_date"] } napi-derive = "3.3.0" thiserror = "2.0.3"