diff --git a/.github/workflows/ast-diff-test.yaml b/.github/workflows/ast-diff-test.yaml index 8494cabd..1fc7c849 100644 --- a/.github/workflows/ast-diff-test.yaml +++ b/.github/workflows/ast-diff-test.yaml @@ -182,6 +182,7 @@ jobs: if: matrix.binding == 'python' uses: PyO3/maturin-action@v1 with: + maturin-version: v1.15.0 command: develop working-directory: lib/python env: diff --git a/.github/workflows/dotnet-test.yaml b/.github/workflows/dotnet-test.yaml index 3fc6cb03..3213184e 100644 --- a/.github/workflows/dotnet-test.yaml +++ b/.github/workflows/dotnet-test.yaml @@ -185,4 +185,4 @@ jobs: if: "startsWith(github.ref, 'refs/tags/')" run: | cd dotnet/KclLib/bin/Release - dotnet nuget push KclLib.0.13.1.nupkg -k ${{ secrets.NUGET_API_KEY }} -s https://api.nuget.org/v3/index.json + dotnet nuget push KclLib.0.13.2.nupkg -k ${{ secrets.NUGET_API_KEY }} -s https://api.nuget.org/v3/index.json diff --git a/.github/workflows/publish-kcltool.yaml b/.github/workflows/publish-kcltool.yaml index 420343ce..bcf3bd9a 100644 --- a/.github/workflows/publish-kcltool.yaml +++ b/.github/workflows/publish-kcltool.yaml @@ -29,7 +29,7 @@ on: env: KCL_CLI_VERSION: v0.12.10 KCL_LIB_REF: v0.12.5 - PACKAGE_VERSION: 0.13.1 + PACKAGE_VERSION: 0.13.2 jobs: build: diff --git a/.github/workflows/python-test.yaml b/.github/workflows/python-test.yaml index 5230b242..d2c843a6 100644 --- a/.github/workflows/python-test.yaml +++ b/.github/workflows/python-test.yaml @@ -1,8 +1,7 @@ -# This file is autogenerated by maturin v1.5.1 -# To update, run -# -# maturin generate-ci github -# +# Derived from `maturin generate-ci github`, but hand-maintained since: +# the wheel jobs gained a Python-version dimension and the `test` job carries +# comments explaining why it builds in place. Re-running the generator would +# drop both, so edit this file directly and keep it in sync with maturin's shape. name: python-test on: @@ -29,9 +28,6 @@ on: permissions: contents: read -env: - PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 - jobs: sdist: runs-on: ubuntu-latest @@ -39,6 +35,7 @@ jobs: - uses: actions/checkout@v7 - uses: PyO3/maturin-action@v1 with: + maturin-version: v1.15.0 working-directory: "python" command: sdist args: -o dist @@ -48,6 +45,21 @@ jobs: name: sdist-${{ github.run_id }} path: python/dist + # These jobs build a wheel for *every* interpreter available to maturin, + # not one -- `--find-interpreter` means "find them all", and it picks up + # whatever the image ships plus anything on PATH. That is where the + # cp310..cp315 / pp311 spread comes from; there is no version matrix here + # and adding one would only duplicate wheels the default build already + # produces. Interpreters below `requires-python` are skipped outright -- + # maturin never probes them -- so the 3.9 in the Linux images is not built. + # + # Linux x86_64 runs in the native manylinux image, which ships 3.9 through + # 3.15 (plus free-threaded 3.14t/3.15t and PyPy 3.11), so its cp315 comes + # for free. The macOS runner image also carries 3.15. The Windows image + # stops at 3.14, so that job installs 3.15 explicitly below -- setup-python + # adds to what maturin discovers rather than replacing it. Linux aarch64 + # needs its own steps for the same reason, but for a different one; see + # below. linux: runs-on: ubuntu-latest strategy: @@ -57,6 +69,7 @@ jobs: - uses: actions/checkout@v7 - uses: PyO3/maturin-action@v1 with: + maturin-version: v1.15.0 target: ${{ matrix.target }} manylinux: auto working-directory: "python" @@ -65,6 +78,42 @@ jobs: env: # Workaround ring 0.17 build issue CFLAGS_aarch64_unknown_linux_gnu: "-D__ARM_ARCH=8" + # aarch64 is a cross build, so maturin-action runs it in + # ghcr.io/rust-cross/manylinux2014-cross:aarch64 rather than the native + # quay.io/pypa/manylinux2014_x86_64 image the x86_64 leg uses. That + # cross image does have 3.15 and 3.15t, but --find-interpreter never + # offers them -- it reports 3.10 through 3.14, 3.14t and PyPy 3.11 and + # stops. Naming them explicitly resolves, so the two steps below build + # them by hand. Without them aarch64 Linux ships no 3.15 wheel at all, + # which is the gap #404 is about. + - name: Build the aarch64 CPython 3.15 wheel + if: matrix.target == 'aarch64' + uses: PyO3/maturin-action@v1 + with: + maturin-version: v1.15.0 + target: aarch64 + manylinux: auto + working-directory: "python" + command: build + args: --release -o dist -i python3.15 + env: + # Workaround ring 0.17 build issue + CFLAGS_aarch64_unknown_linux_gnu: "-D__ARM_ARCH=8" + # Free-threaded 3.15 on aarch64. The x86_64 leg gets cp315t from the + # native image; this asks the cross image the same question. + - name: Build the aarch64 free-threaded 3.15 wheel + if: matrix.target == 'aarch64' + uses: PyO3/maturin-action@v1 + with: + maturin-version: v1.15.0 + target: aarch64 + manylinux: auto + working-directory: "python" + command: build + args: --release -o dist -i python3.15t + env: + # Workaround ring 0.17 build issue + CFLAGS_aarch64_unknown_linux_gnu: "-D__ARM_ARCH=8" - name: Upload wheels-linux-${{ matrix.target }}-${{ github.run_id }} uses: actions/upload-artifact@v7 with: @@ -75,8 +124,16 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v7 + # The Windows image tops out at 3.14. Without this the cp315 wheel + # never gets built; with it maturin finds 3.10-3.14 from the image + # plus 3.15 here. + - name: Set up Python 3.15 + uses: actions/setup-python@v7 + with: + python-version: "3.15" - uses: PyO3/maturin-action@v1 with: + maturin-version: v1.15.0 working-directory: "python" command: build args: --release -o dist --find-interpreter @@ -92,6 +149,7 @@ jobs: - uses: actions/checkout@v7 - uses: PyO3/maturin-action@v1 with: + maturin-version: v1.15.0 working-directory: "python" command: build target: universal2-apple-darwin @@ -103,18 +161,21 @@ jobs: path: python/dist test: - name: Test on ${{ matrix.os }} + name: Test on ${{ matrix.os }} / ${{ matrix.python }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] + # "3.x" is the runner default; 3.15 is the newest CPython the wheels + # ship, and the newest is the one most likely to break. + python: [ "3.x", "3.15" ] steps: - uses: actions/checkout@v7 - name: Set up Python uses: actions/setup-python@v7 with: - python-version: "3.x" + python-version: ${{ matrix.python }} # Build the extension in-place via maturin develop so that the compiled # `_kcl_lib..so` is placed inside `python/kcl_lib/` alongside its # Python source. This matters because the tests run with `working-directory: @@ -127,9 +188,9 @@ jobs: run: | python -m venv .venv if [ "$RUNNER_OS" = "Windows" ]; then - .venv/Scripts/pip install maturin pytest + .venv/Scripts/pip install maturin==1.15.0 pytest else - .venv/bin/pip install maturin pytest + .venv/bin/pip install maturin==1.15.0 pytest fi - name: Build extension in-place with maturin working-directory: "python" @@ -159,22 +220,17 @@ jobs: id-token: write needs: [ macos, linux, windows ] steps: + # Collect every wheel leg in one step. The explicit per-name list this + # replaces had to be hand-edited for every new target, platform, or + # Python version; the pattern picks all of them up. `merge-multiple` + # keeps them flat in python/dist rather than nesting a directory per + # artifact. `wheels-` deliberately excludes the sdist artifact, which is + # published separately and not wanted here. - uses: actions/download-artifact@v8 with: - name: wheels-linux-x86_64-${{ github.run_id }} - path: python/dist - - uses: actions/download-artifact@v8 - with: - name: wheels-linux-aarch64-${{ github.run_id }} - path: python/dist - - uses: actions/download-artifact@v8 - with: - name: wheels-windows-${{ github.run_id }} - path: python/dist - - uses: actions/download-artifact@v8 - with: - name: wheels-macos-${{ github.run_id }} + pattern: wheels-*-${{ github.run_id }} path: python/dist + merge-multiple: true - name: Publish to PyPI # The issue https://github.com/pypa/gh-action-pypi-publish/issues/310 has not tagged a release yet # Use the commit hash to get the temporary fix diff --git a/Cargo.toml b/Cargo.toml index a98c48e5..2772e993 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-lang" -version = "0.13.1" +version = "0.13.2" edition = "2024" readme = "README.md" documentation = "kcl-lang.io" @@ -11,12 +11,12 @@ license = "Apache-2.0" [dependencies] anyhow = "1" -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-evaluator = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-loader = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-runtime = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-primitives = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-evaluator = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-loader = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-runtime = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-primitives = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } [dev-dependencies] serde_json = "1" diff --git a/README.md b/README.md index 31b07c4e..5fd1f61d 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ This way you'll be able to import the above dependency to use the SDK. com.kcl kcl-lib - 0.13.1 + 0.13.2 ``` @@ -256,7 +256,7 @@ This way you'll be able to import the above dependency to use the SDK. com.kcl kcl-lib - 0.13.1 + 0.13.2 ``` @@ -340,7 +340,7 @@ For CMake, you can use FetchContent to add KCL C++ Lib to your project. FetchContent_Declare( kcl-lib GIT_REPOSITORY https://github.com/kcl-lang/lib.git - GIT_TAG v0.13.1 + GIT_TAG v0.13.2 SOURCE_SUBDIR cpp ) FetchContent_MakeAvailable(kcl-lib) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index e7574a0c..8253aba7 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(kcl-lib VERSION 0.13.1 LANGUAGES C CXX) +project(kcl-lib VERSION 0.13.2 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/cpp/Cargo.toml b/cpp/Cargo.toml index 04420d69..2f0fd22e 100644 --- a/cpp/Cargo.toml +++ b/cpp/Cargo.toml @@ -2,7 +2,7 @@ name = "kcl-lib-cpp" publish = false edition = "2024" -version = "0.13.1" +version = "0.13.2" [lib] crate-type = ["staticlib"] @@ -10,7 +10,7 @@ crate-type = ["staticlib"] [dependencies] anyhow = "1.0" cxx = "1.0" -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } # Used to encode the empty `ListMethodArgs` and decode `ListMethodResult` # through the universal `kcl_api::call` dispatcher since `KclServiceImpl` # does not expose a typed `list_method` wrapper. diff --git a/cpp/README.md b/cpp/README.md index 51e8128b..4e1dbfcd 100644 --- a/cpp/README.md +++ b/cpp/README.md @@ -12,7 +12,7 @@ You can use FetchContent to add KCL C++ Lib to your project. FetchContent_Declare( kcl-lib GIT_REPOSITORY https://github.com/kcl-lang/lib.git - GIT_TAG v0.13.1 + GIT_TAG v0.13.2 SOURCE_SUBDIR cpp ) FetchContent_MakeAvailable(kcl-lib) @@ -24,7 +24,7 @@ Or you can download the source code and add it to your project. mkdir third_party cd third_party git clone https://github.com/kcl-lang/lib.git -git checkout v0.13.1 +git checkout v0.13.2 ``` ```shell diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 0ce24d4f..52c485e4 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -6,7 +6,7 @@ description: > the universal protobuf dispatcher shipped as a prebuilt `libkcl` shared library (see `go/lib/` in the parent repository). The Dart runtime never builds any Rust code. -version: 0.13.1 +version: 0.13.2 environment: # protoc_plugin 25.x and protobuf 6.x both require Dart SDK 3.7+. diff --git a/docs/lib-vendoring.md b/docs/lib-vendoring.md index 3be3d0c9..ff6fa8fd 100644 --- a/docs/lib-vendoring.md +++ b/docs/lib-vendoring.md @@ -21,7 +21,7 @@ hack/download-libs.sh linux-arm64 # named platforms ``` The version defaults to `KCL_VERSION` in `go/install/install.go`; pass -`--version v0.13.1` to pin a different one. Platforms that +`--version v0.13.2` to pin a different one. Platforms that [kcl-lang/kcl][kcl] publishes are downloaded from its release; the two iOS static archives are cross-compiled from this repository's `c/` crate with cargo, so `--all` needs a macOS host. diff --git a/dotnet/Cargo.toml b/dotnet/Cargo.toml index 1f4a65c3..ce3b1ecd 100644 --- a/dotnet/Cargo.toml +++ b/dotnet/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib-dotnet" publish = false -version = "0.13.1" +version = "0.13.2" edition = "2024" [lib] @@ -9,4 +9,4 @@ crate-type = ["cdylib"] doc = false [dependencies] -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } diff --git a/dotnet/Directory.Build.props b/dotnet/Directory.Build.props index 82c2d623..ca8fe9fb 100644 --- a/dotnet/Directory.Build.props +++ b/dotnet/Directory.Build.props @@ -8,7 +8,7 @@ --> - 0.13.1 + 0.13.2 Apache-2.0 https://github.com/kcl-lang/lib git diff --git a/dotnet/KclLib/KclLib.csproj b/dotnet/KclLib/KclLib.csproj index fe37e1b5..67676403 100644 --- a/dotnet/KclLib/KclLib.csproj +++ b/dotnet/KclLib/KclLib.csproj @@ -11,7 +11,7 @@ KclLib KclLib - 0.13.1 + 0.13.2 true snupkg https://github.com/kcl-lang diff --git a/dotnet/examples/exec-program/exec-program.csproj b/dotnet/examples/exec-program/exec-program.csproj index e189f9a3..4dcff449 100644 --- a/dotnet/examples/exec-program/exec-program.csproj +++ b/dotnet/examples/exec-program/exec-program.csproj @@ -9,7 +9,7 @@ - + diff --git a/go/install/install.go b/go/install/install.go index f501b049..c085fa74 100644 --- a/go/install/install.go +++ b/go/install/install.go @@ -9,7 +9,7 @@ import ( "github.com/gofrs/flock" ) -const KCL_VERSION = "v0.13.1" +const KCL_VERSION = "v0.13.2" func getVersion() string { return fmt.Sprintf("%s-%s-%s", KCL_VERSION, runtime.GOOS, runtime.GOARCH) diff --git a/hack/download-libs.sh b/hack/download-libs.sh index f408a459..84120db7 100755 --- a/hack/download-libs.sh +++ b/hack/download-libs.sh @@ -13,7 +13,7 @@ # hack/download-libs.sh linux-arm64 darwin-arm64 # named platforms # hack/download-libs.sh --wasm # kcl.wasm (npm package) # hack/download-libs.sh --all # every platform, incl. iOS -# hack/download-libs.sh --version v0.13.1 # pin a version +# hack/download-libs.sh --version v0.13.2 # pin a version # # --all includes the two iOS static archives, which have no prebuilt source # and are cross-compiled from c/ with cargo (macOS hosts only). diff --git a/java/Cargo.toml b/java/Cargo.toml index 181eb6bc..32c2ae27 100644 --- a/java/Cargo.toml +++ b/java/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib-jni" publish = false -version = "0.13.1" +version = "0.13.2" edition = "2024" [lib] @@ -19,6 +19,6 @@ lazy_static = "1.4.0" prost = "0.14.1" prost-types = "0.14.1" -kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-sema = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-sema = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } diff --git a/java/README.md b/java/README.md index 1a57e5f3..8f7bff02 100644 --- a/java/README.md +++ b/java/README.md @@ -26,7 +26,7 @@ This way you'll be able to import the above dependency to use the SDK. io.kcl-lang kcl-lib - 0.13.1 + 0.13.2 ``` diff --git a/java/pom.xml b/java/pom.xml index fc855364..cdbfe9d9 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -5,7 +5,7 @@ io.kcl-lang kcl-lib - 0.13.1 + 0.13.2 KCL Arifact Library for Java KCL is an open-source constraint-based record and functional language mainly diff --git a/julia/Project.toml b/julia/Project.toml index d526127a..3079259d 100644 --- a/julia/Project.toml +++ b/julia/Project.toml @@ -1,6 +1,6 @@ name = "KclLib" uuid = "739c31e6-accf-4447-b2e8-a9920cc4cdad" -version = "0.13.1" +version = "0.13.2" [deps] Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" diff --git a/julia/README.md b/julia/README.md index d15f32b4..dcc89980 100644 --- a/julia/README.md +++ b/julia/README.md @@ -112,7 +112,7 @@ result = ping(PingArgs(value="Hello, KCL!")) ```julia result = get_version() -println(result.version_info) # "Version: 0.13.1-...\nPlatform: ...\nGitCommit: ..." +println(result.version_info) # "Version: 0.13.2-...\nPlatform: ...\nGitCommit: ..." ``` ### exec_program @@ -431,7 +431,7 @@ println(result.method_name_list) core registers under `KclService` regardless of what the spec says. The wrapper follows the registration, so it calls `BuiltinService.ListMethod`; `KclService.ListMethod` is not registered and makes the dispatcher raise -`unknown method name`. Against the prebuilt `libkcl` v0.13.1 this returns the +`unknown method name`. Against the prebuilt `libkcl` v0.13.2 this returns the full 28-entry table, reported by fully-qualified name. ### Raw call diff --git a/kotlin/Cargo.toml b/kotlin/Cargo.toml index 181eb6bc..32c2ae27 100644 --- a/kotlin/Cargo.toml +++ b/kotlin/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib-jni" publish = false -version = "0.13.1" +version = "0.13.2" edition = "2024" [lib] @@ -19,6 +19,6 @@ lazy_static = "1.4.0" prost = "0.14.1" prost-types = "0.14.1" -kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-sema = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-parser = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-sema = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } diff --git a/kotlin/README.md b/kotlin/README.md index 56e2bdbb..9859e0e5 100644 --- a/kotlin/README.md +++ b/kotlin/README.md @@ -26,7 +26,7 @@ This way you'll be able to import the above dependency to use the SDK. io.kcl-lang kcl-lib-kotlin - 0.13.1 + 0.13.2 ``` diff --git a/kotlin/pom.xml b/kotlin/pom.xml index 3589a658..5b15f42b 100644 --- a/kotlin/pom.xml +++ b/kotlin/pom.xml @@ -5,7 +5,7 @@ io.kcl-lang kcl-lib-kotlin - 0.13.1 + 0.13.2 KCL Arifact Library for Kotlin KCL is an open-source constraint-based record and functional language mainly diff --git a/lua/Cargo.toml b/lua/Cargo.toml index dd5da465..5e6bd6ab 100644 --- a/lua/Cargo.toml +++ b/lua/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-lib-lua" -version = "0.13.1" +version = "0.13.2" edition = "2024" publish = false @@ -24,4 +24,4 @@ mlua = { version = "0.12", features = [ "module", "macros", ], default-features = false, optional = true } -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } diff --git a/lua/kcl_lib-0.13.1-3.rockspec b/lua/kcl_lib-0.13.2-3.rockspec similarity index 97% rename from lua/kcl_lib-0.13.1-3.rockspec rename to lua/kcl_lib-0.13.2-3.rockspec index 25378685..2f279297 100644 --- a/lua/kcl_lib-0.13.1-3.rockspec +++ b/lua/kcl_lib-0.13.2-3.rockspec @@ -1,4 +1,4 @@ -local package_version = "0.13.1" +local package_version = "0.13.2" local rockspec_revision = "3" rockspec_format = "3.0" diff --git a/nodejs/Cargo.toml b/nodejs/Cargo.toml index 33002837..f4561cd4 100644 --- a/nodejs/Cargo.toml +++ b/nodejs/Cargo.toml @@ -1,13 +1,13 @@ [package] edition = "2024" name = "kcl-nodejs-lib" -version = "0.13.1" +version = "0.13.2" [lib] crate-type = ["cdylib"] [dependencies] -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix napi = { version = "2.12.2", default-features = false, features = ["napi4"] } napi-derive = "2.12.2" diff --git a/nodejs/examples/exec-program/package.json b/nodejs/examples/exec-program/package.json index 7fd2adcd..c1f1e67d 100644 --- a/nodejs/examples/exec-program/package.json +++ b/nodejs/examples/exec-program/package.json @@ -12,6 +12,6 @@ "dist/" ], "dependencies": { - "@kcl-lib/native": "0.13.1" + "@kcl-lib/native": "0.13.2" } } diff --git a/nodejs/npm/darwin-arm64/package.json b/nodejs/npm/darwin-arm64/package.json index 7d57062d..caad506b 100644 --- a/nodejs/npm/darwin-arm64/package.json +++ b/nodejs/npm/darwin-arm64/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-darwin-arm64", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "darwin" ], diff --git a/nodejs/npm/darwin-x64/package.json b/nodejs/npm/darwin-x64/package.json index ceb3152c..1ed87776 100644 --- a/nodejs/npm/darwin-x64/package.json +++ b/nodejs/npm/darwin-x64/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-darwin-x64", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "darwin" ], diff --git a/nodejs/npm/linux-arm64-gnu/package.json b/nodejs/npm/linux-arm64-gnu/package.json index a5b96c57..3552d08d 100644 --- a/nodejs/npm/linux-arm64-gnu/package.json +++ b/nodejs/npm/linux-arm64-gnu/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-linux-arm64-gnu", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "linux" ], diff --git a/nodejs/npm/linux-x64-gnu/package.json b/nodejs/npm/linux-x64-gnu/package.json index 51efe919..08f6ca24 100644 --- a/nodejs/npm/linux-x64-gnu/package.json +++ b/nodejs/npm/linux-x64-gnu/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-linux-x64-gnu", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "linux" ], diff --git a/nodejs/npm/win32-arm64-msvc/package.json b/nodejs/npm/win32-arm64-msvc/package.json index 5834a3de..33832c45 100644 --- a/nodejs/npm/win32-arm64-msvc/package.json +++ b/nodejs/npm/win32-arm64-msvc/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-win32-arm64-msvc", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "win32" ], diff --git a/nodejs/npm/win32-x64-msvc/package.json b/nodejs/npm/win32-x64-msvc/package.json index c33511cd..9d0940b7 100644 --- a/nodejs/npm/win32-x64-msvc/package.json +++ b/nodejs/npm/win32-x64-msvc/package.json @@ -1,7 +1,7 @@ { "name": "@kcl-lib/native-win32-x64-msvc", "repository": "https://github.com/kcl-lang/lib", - "version": "0.13.1", + "version": "0.13.2", "os": [ "win32" ], diff --git a/nodejs/package.json b/nodejs/package.json index 23791aca..c222e23a 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@kcl-lib/native", - "version": "0.13.1", + "version": "0.13.2", "repository": "https://github.com/kcl-lang/lib", "license": "Apache-2.0", "main": "index.js", @@ -94,13 +94,13 @@ "access": "public" }, "optionalDependencies": { - "@kcl-lib/native-win32-x64-msvc": "0.13.1", - "@kcl-lib/native-darwin-x64": "0.13.1", - "@kcl-lib/native-linux-x64-gnu": "0.13.1", - "@kcl-lib/native-darwin-arm64": "0.13.1", - "@kcl-lib/native-linux-arm64-gnu": "0.13.1", - "@kcl-lib/native-linux-arm64-musl": "0.13.1", - "@kcl-lib/native-linux-x64-musl": "0.13.1", - "@kcl-lib/native-win32-arm64-msvc": "0.13.1" + "@kcl-lib/native-win32-x64-msvc": "0.13.2", + "@kcl-lib/native-darwin-x64": "0.13.2", + "@kcl-lib/native-linux-x64-gnu": "0.13.2", + "@kcl-lib/native-darwin-arm64": "0.13.2", + "@kcl-lib/native-linux-arm64-gnu": "0.13.2", + "@kcl-lib/native-linux-arm64-musl": "0.13.2", + "@kcl-lib/native-linux-x64-musl": "0.13.2", + "@kcl-lib/native-win32-arm64-msvc": "0.13.2" } } diff --git a/nodejs/src/lib.rs b/nodejs/src/lib.rs index d9413890..89d53303 100644 --- a/nodejs/src/lib.rs +++ b/nodejs/src/lib.rs @@ -763,7 +763,7 @@ pub fn list_method() -> Result { * Like `list_method` above, this routes through the universal `kcl_api::call` * dispatcher rather than a typed `KclServiceImpl` wrapper. It was written when * the pinned `kcl-api` revision predated `KclService.FormatTestReport`. The pin -* is now 0.13.1, which has both the typed wrapper and the generated messages; +* is now 0.13.2, which has both the typed wrapper and the generated messages; * the hand-rolled encoding is kept because it is already covered by tests, and * it collapses to the typed call wherever that is tidier. `FormatTestReportArgs` * is a single length-delimited field 1 carrying a `TestResult`, and @@ -838,7 +838,7 @@ pub fn format_test_report(args: FormatTestReportArgs) -> Result=1.5,<2.0"] +# 1.14 is the first release that knows about Python 3.15; 1.15.0 is what CI +# pins. The old floor of 1.5 predates both the pyo3 pin it was working around +# and any CPython this project targets. +requires = ["maturin>=1.14,<2.0"] build-backend = "maturin" [project] name = "kcl_lib" -version = "0.13.1" -requires-python = ">=3.7" +version = "0.13.2" +# protobuf 7.x needs Python >=3.10, so a 3.9 build of this wheel could never +# install. pyo3 0.30 would support 3.9, but that would be a lie. +requires-python = ">=3.10" classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", diff --git a/python/src/lib.rs b/python/src/lib.rs index d44b06ec..e159e8c4 100644 --- a/python/src/lib.rs +++ b/python/src/lib.rs @@ -21,7 +21,7 @@ fn call_with_plugin_agent<'a>( /// A Python module implemented in Rust. #[pymodule] -fn _kcl_lib(_py: Python, m: &PyModule) -> PyResult<()> { +fn _kcl_lib(m: &Bound<'_, PyModule>) -> PyResult<()> { m.add_function(wrap_pyfunction!(call, m)?)?; m.add_function(wrap_pyfunction!(call_with_plugin_agent, m)?)?; Ok(()) diff --git a/ruby/Cargo.toml b/ruby/Cargo.toml index ebb09811..31013951 100644 --- a/ruby/Cargo.toml +++ b/ruby/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-lib-ruby" -version = "0.13.1" +version = "0.13.2" edition = "2024" publish = false @@ -10,5 +10,5 @@ crate-type = ["cdylib"] [dependencies] anyhow = "1" -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } magnus = "0.7" diff --git a/ruby/lib/kcl_lib/version.rb b/ruby/lib/kcl_lib/version.rb index 6bf2ae29..6d173a36 100644 --- a/ruby/lib/kcl_lib/version.rb +++ b/ruby/lib/kcl_lib/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module KclLib - VERSION = "0.13.1" + VERSION = "0.13.2" end diff --git a/swift/Cargo.toml b/swift/Cargo.toml index e4bc50a0..6c642998 100644 --- a/swift/Cargo.toml +++ b/swift/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-lib-c" -version = "0.13.1" +version = "0.13.2" edition = "2024" publish = false @@ -12,4 +12,4 @@ doc = false cbindgen = "0.26.0" [dependencies] -kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.1" } +kcl-api = { git = "https://github.com/kcl-lang/kcl", version = "0.13.2" } diff --git a/wasm/README.md b/wasm/README.md index 62cb706a..077a9001 100644 --- a/wasm/README.md +++ b/wasm/README.md @@ -40,7 +40,7 @@ import { load, invokeKCLCall, invokeKCLVersion } from "@kcl-lib/wasm"; const inst = await load(); // Read the KCL version baked into the artifact. -console.log(invokeKCLVersion(inst)); // -> "0.13.1" +console.log(invokeKCLVersion(inst)); // -> "0.13.2" // Dispatch any KclService.* RPC by name. The `args` field must be the // protobuf-encoded `Args` message, and the returned string is @@ -74,7 +74,7 @@ import { load, ping, lintPath, getVersion } from "@kcl-lib/wasm"; const inst = await load(); console.log(ping(inst, { value: "hello" }).value); // -> "hello" -console.log(getVersion(inst).version); // -> "0.13.1" +console.log(getVersion(inst).version); // -> "0.13.2" // File-based methods operate on the WASI sandbox filesystem. const result = lintPath(inst, { paths: ["/test.k"] }); @@ -240,7 +240,7 @@ MemFS()` instance to `load()` to set up the sandbox filesystem. `panic=abort` caveat above applies to plugin errors specifically, because the runtime reports them by panicking. - **`Generate*` and `FormatTestReport` are registered and run.** The - bundled v0.13.1 artifact advertises them in `listMethod` and the + bundled v0.13.2 artifact advertises them in `listMethod` and the consistency runner asserts them for real. Two of them still diverge from the native goldens and are reported as skips with the measured reason: `GenerateProto` emits a referenced schema twice, and `GenerateDoc` diff --git a/wasm/package.json b/wasm/package.json index e63ae271..72d3433f 100644 --- a/wasm/package.json +++ b/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@kcl-lib/wasm", - "version": "0.13.1", + "version": "0.13.2", "description": "KCL WASM module", "files": [ "kcl.wasm", diff --git a/zig/build.zig.zon b/zig/build.zig.zon index 0c83b094..d03f64c8 100644 --- a/zig/build.zig.zon +++ b/zig/build.zig.zon @@ -11,7 +11,7 @@ // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication. - .version = "0.13.1", + .version = "0.13.2", // Together with name, this represents a globally unique package // identifier. This field is generated by the Zig toolchain when the