Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/ast-diff-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dotnet-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .github/workflows/publish-kcltool.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
106 changes: 81 additions & 25 deletions .github/workflows/python-test.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -29,16 +28,14 @@ on:
permissions:
contents: read

env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1

jobs:
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: PyO3/maturin-action@v1
with:
maturin-version: v1.15.0
working-directory: "python"
command: sdist
args: -o dist
Expand All @@ -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:
Expand All @@ -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"
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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.<abi>.so` is placed inside `python/kcl_lib/` alongside its
# Python source. This matters because the tests run with `working-directory:
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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"
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ This way you'll be able to import the above dependency to use the SDK.
<dependency>
<groupId>com.kcl</groupId>
<artifactId>kcl-lib</artifactId>
<version>0.13.1</version>
<version>0.13.2</version>
</dependency>
```

Expand Down Expand Up @@ -256,7 +256,7 @@ This way you'll be able to import the above dependency to use the SDK.
<dependency>
<groupId>com.kcl</groupId>
<artifactId>kcl-lib</artifactId>
<version>0.13.1</version>
<version>0.13.2</version>
</dependency>
```

Expand Down Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
4 changes: 2 additions & 2 deletions cpp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
name = "kcl-lib-cpp"
publish = false
edition = "2024"
version = "0.13.1"
version = "0.13.2"

[lib]
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.
Expand Down
4 changes: 2 additions & 2 deletions cpp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion dart/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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+.
Expand Down
2 changes: 1 addition & 1 deletion docs/lib-vendoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions dotnet/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[package]
name = "kcl-lib-dotnet"
publish = false
version = "0.13.1"
version = "0.13.2"
edition = "2024"

[lib]
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" }
2 changes: 1 addition & 1 deletion dotnet/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
-->

<PropertyGroup>
<Version>0.13.1</Version>
<Version>0.13.2</Version>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<RepositoryUrl>https://github.com/kcl-lang/lib</RepositoryUrl>
<RepositoryType>git</RepositoryType>
Expand Down
2 changes: 1 addition & 1 deletion dotnet/KclLib/KclLib.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PropertyGroup>
<AssemblyName>KclLib</AssemblyName>
<PackageId>KclLib</PackageId>
<Version>0.13.1</Version>
<Version>0.13.2</Version>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<RepositoryUrl>https://github.com/kcl-lang</RepositoryUrl>
Expand Down
2 changes: 1 addition & 1 deletion dotnet/examples/exec-program/exec-program.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="KclLib" Version="0.13.1" />
<PackageReference Include="KclLib" Version="0.13.2" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion go/install/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion hack/download-libs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
Loading
Loading