Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f6d1e86
feat(java): support object stream serialization for graalvm (#2464)
chaokunyang Aug 13, 2025
80ffbeb
fix(java): fix map/list element type same with collection type jit er…
chaokunyang Aug 14, 2025
19180e9
refactor(java): rename abstract collection/map serializers to Map/Lis…
chaokunyang Aug 14, 2025
461d5f8
fix(python): fix gh action pypi publish (#2468)
chaokunyang Aug 14, 2025
373e712
feat(memory): add customizable MemoryAllocator interface (#2467)
adriacabeza Aug 14, 2025
9a246c5
fix(java): fix row encoder for private struct (#2469)
chaokunyang Aug 14, 2025
9004a03
fix(python): fix pyfory pypi release (#2473)
chaokunyang Aug 14, 2025
1e01b9a
chore(python): disable pyfory.format import warning (#2476)
chaokunyang Aug 15, 2025
68b9f08
fix(python): fix py release on macos 13 (#2478)
chaokunyang Aug 15, 2025
bef364a
feat: Chain wheel test/build and release workflows (#2483)
esafak Aug 17, 2025
b84255f
chore: bump release version to 0.12.0 (#2489)
chaokunyang Aug 18, 2025
c7cd352
fix(ci): Build python wheels using interpreters in manylinux2014 (#2486)
esafak Aug 19, 2025
6b6486d
feat(python): set default languge to python for pyfory (#2490)
chaokunyang Aug 19, 2025
66a2e78
feat(python): add register api to python (#2491)
chaokunyang Aug 19, 2025
2c912cd
fix(java): Encoders.mapEncoder(TypeRef, TypeRef, TypeRef, Fory) shoul…
stevenschlansker Aug 21, 2025
6f54e19
docs: fix meta_size_mask (#2495)
urlyy Aug 22, 2025
1735e4d
chore: fix typos (#2496)
Asnowww Aug 22, 2025
0922ec7
fix(java): row format generated bean types handling Optional (#2497)
stevenschlansker Aug 22, 2025
08dad96
docs: Improve pyfory PyPI documentation (#2498)
esafak Aug 23, 2025
49746f3
docs(python): add row format doc (#2499)
chaokunyang Aug 23, 2025
50f5d4d
fix: Fix the issue of addListener not releasing the lock (#2500)
open-snail Aug 23, 2025
a0b1c21
bump version
pandalee99 Aug 24, 2025
2cf852f
resolve merge conflicts: accept all changes from releases-0.12 branch
pandalee99 Aug 24, 2025
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
35 changes: 35 additions & 0 deletions .github/workflows/build-containerized-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Build Containerized PR Wheels
on:
pull_request:
paths: [ci/**, python/**, .github/workflows/**]
push:
branches: [main]
paths: [ci/**, python/**, .github/workflows/**]

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v5
- name: Build and test wheels
run: ./ci/build_linux_wheels.py --arch ${{ runner.arch }}
41 changes: 41 additions & 0 deletions .github/workflows/build-containerized-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Build Containerized Release Wheels
on:
push:
tags: ['v*'] # NO PATH FILTER - critical for releases

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v5
- name: Bump version
run: ./ci/deploy.sh bump_py_version
- name: Install bazel
run: ./ci/run_ci.sh install_bazel
- name: Build and test wheels
run: ./ci/build_linux_wheels.py --arch ${{ runner.arch }} --release
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pyfory-wheels-${{ matrix.os }}-${{ runner.arch }}-${{ github.ref_name }}
path: dist/*.whl
53 changes: 53 additions & 0 deletions .github/workflows/build-native-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Build Native PR Wheels
on:
pull_request:
paths: [ci/**, python/**, .github/workflows/**]
push:
branches: [main]
paths: [ci/**, python/**, .github/workflows/**]

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest]
python-version: ['3.8', '3.13']
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install bazel
if: runner.os != 'Windows'
run: ./ci/run_ci.sh install_bazel
- name: Install bazel (Windows)
if: runner.os == 'Windows'
run: ./ci/run_ci.sh install_bazel_windows
shell: bash
- name: Build wheel
run: ./ci/deploy.sh build_pyfory
shell: bash
- name: Install and verify wheel
shell: bash
run: |
python -m pip install --upgrade pip
pip install dist/*.whl
python -c "import pyfory; print(pyfory.__version__)"
56 changes: 56 additions & 0 deletions .github/workflows/build-native-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Build Native Release Wheels
on:
push:
tags: ['v*'] # NO PATH FILTER - critical for releases

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v5
- name: Bump version
run: ./ci/deploy.sh bump_py_version
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install bazel
if: runner.os != 'Windows'
run: ./ci/run_ci.sh install_bazel
- name: Install bazel (Windows)
if: runner.os == 'Windows'
run: ./ci/run_ci.sh install_bazel_windows
shell: bash
- name: Build wheel
run: ./ci/deploy.sh build_pyfory
- name: Install and verify wheel
shell: bash
run: |
python -m pip install --upgrade pip
pip install dist/*.whl
python -c "import pyfory; print(pyfory.__version__)"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: pyfory-wheels-${{ matrix.os }}-${{ matrix.python-version }}-${{ github.ref_name }}
path: dist/*.whl
26 changes: 13 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
matrix:
java-version: ["8", "11", "17", "21", "24"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
# String in openj9 1.8 share byte array by offset, fory doesn't allow it.
java-version: ["21"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
Expand All @@ -107,7 +107,7 @@ jobs:
matrix:
java-version: ["21"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
Expand All @@ -128,7 +128,7 @@ jobs:
matrix:
java-version: ["17", "21", "23"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: graalvm/setup-graalvm@v1
with:
java-version: ${{ matrix.java-version }}
Expand All @@ -152,7 +152,7 @@ jobs:
matrix:
java-version: ["8", "11", "17", "21"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
Expand All @@ -171,7 +171,7 @@ jobs:
name: Scala CI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK8
uses: actions/setup-java@v4
with:
Expand All @@ -189,7 +189,7 @@ jobs:
name: Integration Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK8
uses: actions/setup-java@v4
with:
Expand All @@ -210,7 +210,7 @@ jobs:
os: [ubuntu-latest, macos-13, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
Expand All @@ -237,7 +237,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
Expand All @@ -252,7 +252,7 @@ jobs:
os: [ubuntu-latest, macos-13, macos-14, windows-2022] # macos-13: x86, macos-14: arm64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
Expand All @@ -267,7 +267,7 @@ jobs:
python-version: [3.8, 3.12, 3.13.3]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-13, macos-14, windows-2022]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
Expand All @@ -286,7 +286,7 @@ jobs:
matrix:
go-version: ["1.13", "1.18"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
Expand All @@ -308,7 +308,7 @@ jobs:
name: Code Style Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-java-snapshot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
if: github.repository == 'apache/fory'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Maven Central Repository
uses: actions/setup-java@v4
with:
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/release-python.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Publish Python

on:
workflow_run:
workflows: ["Build Containerized Release Wheels", "Build Native Release Wheels"]
types: [completed]

permissions:
contents: read
id-token: write

jobs:
publish-wheels:
name: Publish Wheels
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Download all wheel artifacts
uses: actions/download-artifact@v5
with:
path: downloaded_wheels

- name: Move wheels to a single directory
shell: bash
run: |
mkdir dist
find downloaded_wheels -type f -name "*.whl" -exec mv {} dist/ \;
ls -R dist

- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-')
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
verbose: true
verify-metadata: false
packages-dir: dist

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-')
with:
skip-existing: true
verify-metadata: false
packages-dir: dist
Loading
Loading