diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 83bb6f0..9f614d5 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -28,9 +28,9 @@ runs: - name: Install Task uses: go-task/setup-task@a00fbb05ce67b35648be3c78cbc9fd85354c757e # v2.2.0 with: - version: 3.53.1 - # SHA256 of task_linux_amd64.tar.gz from the v3.53.1 task_checksums.txt. - checksum: a54a408f6861ff921f6e87774180db31bacd8c1e7c944ca696db9fea49a82fc7 + version: 3.54.0 + # SHA256 of task_linux_amd64.tar.gz from the v3.54.0 task_checksums.txt. + checksum: 680859dbb4d881a9c72d4d9a8f510825450849af8567deacd7302c01124416fb - name: Setup Elixir/OTP uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1.24.1 @@ -39,7 +39,7 @@ runs: otp-version: ${{ inputs.otp-version }} - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@02cb101ec7c40f2c49e1d9714d64511d8e1b74de # master + uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 # master with: toolchain: ${{ inputs.rust-toolchain }} components: ${{ inputs.rust-components }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50d7951..4f1eaac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,9 @@ concurrency: env: MIX_ENV: test - ELIXIR_VERSION: "1.20.4" - OTP_VERSION: "29.1.1" - RUST_TOOLCHAIN: "1.98.1" + ELIXIR_VERSION: "1.20.5" + OTP_VERSION: "29.1.2" + RUST_TOOLCHAIN: "1.99.1" jobs: check: @@ -45,7 +45,7 @@ jobs: shell: bash run: | mkdir -p "$HOME/.local/bin" - curl -fsSL https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-x86_64-unknown-linux-gnu.tar.gz \ + curl -fsSL https://github.com/zizmorcore/zizmor/releases/download/v1.32.0/zizmor-x86_64-unknown-linux-gnu.tar.gz \ | tar -xz -C "$HOME/.local/bin" zizmor echo "$HOME/.local/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 8d47806..9a17fcc 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -18,9 +18,9 @@ concurrency: env: MIX_ENV: test - ELIXIR_VERSION: "1.20.4" - OTP_VERSION: "29.1.1" - RUST_TOOLCHAIN: "1.98.1" + ELIXIR_VERSION: "1.20.5" + OTP_VERSION: "29.1.2" + RUST_TOOLCHAIN: "1.99.1" jobs: integration: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 714c095..567de04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ concurrency: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN: "1.98.1" + RUST_TOOLCHAIN: "1.99.1" jobs: detect: @@ -167,7 +167,7 @@ jobs: persist-credentials: false # pinned toolchain installer keeps the Rust version and cross targets reproducible - - uses: dtolnay/rust-toolchain@02cb101ec7c40f2c49e1d9714d64511d8e1b74de # master # zizmor: ignore[superfluous-actions] + - uses: dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8 # master # zizmor: ignore[superfluous-actions] with: toolchain: ${{ env.RUST_TOOLCHAIN }} targets: ${{ matrix.target }} @@ -194,11 +194,11 @@ jobs: - name: Install ROCm / hipBLAS toolkit if: matrix.install_rocm run: | - # ROCm 7.2.3 / Ubuntu 24.04 (noble). Matches the .so versions + # ROCm 7.2.4 / Ubuntu 24.04 (noble). Matches the .so versions # shipped by current nixpkgs and other distros that have moved # off ROCm 6. - wget -q https://repo.radeon.com/amdgpu-install/7.2.3/ubuntu/noble/amdgpu-install_7.2.3.70203-1_all.deb - sudo dpkg -i amdgpu-install_7.2.3.70203-1_all.deb + wget -q https://repo.radeon.com/amdgpu-install/7.2.4/ubuntu/noble/amdgpu-install_7.2.4.70204-1_all.deb + sudo dpkg -i amdgpu-install_7.2.4.70204-1_all.deb sudo apt-get update sudo apt-get install -y --no-install-recommends rocm-dev hipblas-dev rocblas-dev echo "PATH=/opt/rocm/bin:$PATH" >> "$GITHUB_ENV" @@ -305,7 +305,7 @@ jobs: # the release keeps its own copy, so the artifact only has to outlive the release job - name: Upload artifact - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: nif-${{ matrix.id }} path: "*whisper_cpp_native-*.tar.gz" @@ -352,7 +352,7 @@ jobs: group: ${{ github.workflow }}-${{ github.ref }}-release cancel-in-progress: false steps: - - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: pattern: nif-* merge-multiple: true @@ -367,7 +367,7 @@ jobs: # one pinned step handles tag targeting, asset upload, and release notes - name: Create release - uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 # zizmor: ignore[superfluous-actions] + uses: softprops/action-gh-release@8a0cd651e5b2365bd640854a3fa5dfc70e4875f3 # v3.0.4 # zizmor: ignore[superfluous-actions] with: tag_name: ${{ needs.detect.outputs.tag }} # a changed tarball breaks the published Hex checksum file diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index bb4da8c..8045741 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -34,11 +34,11 @@ jobs: - uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1.24.1 env: - INSTALL_DIR_FOR_OTP: ${{ runner.tool_cache }}/setup-beam/otp-29.1.1 - INSTALL_DIR_FOR_ELIXIR: ${{ runner.tool_cache }}/setup-beam/elixir-1.20.4 + INSTALL_DIR_FOR_OTP: ${{ runner.tool_cache }}/setup-beam/otp-29.1.2 + INSTALL_DIR_FOR_ELIXIR: ${{ runner.tool_cache }}/setup-beam/elixir-1.20.5 with: - elixir-version: "1.20.4" - otp-version: "29.1.1" + elixir-version: "1.20.5" + otp-version: "29.1.2" - name: Install dependencies run: | @@ -51,7 +51,7 @@ jobs: - name: Install cargo-audit if: ${{ !cancelled() }} - uses: taiki-e/install-action@dfae9bf3d6f6c6f20ef4ebb3486c01a51341ff12 # v2.87.18 + uses: taiki-e/install-action@cfdb7ed4ccc7c7dce37759eae89dc5674b469b39 # v2.90.3 with: tool: cargo-audit diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d9377e..b2cb4d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,11 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm the old NIF file again before it extracts the new one. Version 0.9.0 wrote over the file in place, which can crash a process that has the NIF loaded. +- The precompiled NIFs are built with Rust 1.99.1 (was 1.98.1), and the + `hipblas` variant with ROCm 7.2.4 (was 7.2.3). CI uses Elixir 1.20.5 and + OTP 29.1.2. Source builds still need Rust 1.98 or later. +- Cargo refresh: `smallvec` 1.16.5 is in the NIF, and `cc` 1.11.1 and `log` + 0.4.35 are build only. `mix.lock` has rustler_precompiled 0.10.1. ### Fixed - `transcribe/3` with `:offset_ms` or `:duration_ms` and no diff --git a/mix.lock b/mix.lock index 8dcf267..b1670b5 100644 --- a/mix.lock +++ b/mix.lock @@ -12,5 +12,5 @@ "makeup_erlang": {:hex, :makeup_erlang, "1.1.0", "835f7e60792e08824cda445639555d7bf1bbbddb1b60b306e33cb6f6db24dc74", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "1cd6780fb1dd1a03979abaed0fe82712b0625118fd5257d3ebbf73f960c73c3c"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, "rustler": {:hex, :rustler, "0.38.0", "7a8906998ff0d28e3021c0a73264abcda719bda344b2e58307c6805b0f87c9b4", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "704c03c1bf66be12b031c5a389347b91c81c5cb819a24b068b0de36fe4a5652a"}, - "rustler_precompiled": {:hex, :rustler_precompiled, "0.10.0", "8f07ff0865cb09a6a0f75e11701e9a46e331e05f737da4e5b01374dcd25b68c0", [:mix], [{:rustler, "~> 0.28", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "c68c9dc732c12acfdf4a7fa06f4e6f48a641179e6be49a474c8a60809929c430"}, + "rustler_precompiled": {:hex, :rustler_precompiled, "0.10.1", "2895d3a3239d612c13c18945c0a693e07de4e8f9bc2b6b2297cba3d6576f9eea", [:mix], [{:rustler, "~> 0.28", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "0efa66bc2a4206aec64a2c422ca0b1d69bdc411c7b359ec928feb889357b4abb"}, } diff --git a/native/whisper_cpp_native/Cargo.lock b/native/whisper_cpp_native/Cargo.lock index 60d027e..b9e02c8 100644 --- a/native/whisper_cpp_native/Cargo.lock +++ b/native/whisper_cpp_native/Cargo.lock @@ -45,9 +45,9 @@ checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "cc" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e055fa6e3e40ad6187ba25b6855eeb635d5271f8e0f0e1e9a5826b8d75bea0" +checksum = "4ff2a8126fff0f8c839080d619675a585e61720bb12d2baceae45769fd66f155" dependencies = [ "find-msvc-tools", "shlex 2.0.1", @@ -173,9 +173,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" +checksum = "5d15f86d12da44cd8d4ec3c73984537eb7f4cadcb9776a575a0a8a05ca11005c" [[package]] name = "memchr" @@ -357,9 +357,9 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "smallvec" -version = "1.16.3" +version = "1.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3dc8af474f516a851ff4bd12db780f948b9250ad37211e4eec0bccea54e01b" +checksum = "149309498a5f7334b12ddae0cad8aba81ce785fe91755068867e017cf98fee46" [[package]] name = "syn"