Skip to content

chore: bump version Releases 0.12.1#2502

Merged
chaokunyang merged 23 commits into
apache:releases-0.12from
pandalee99:releases-0.12
Aug 24, 2025
Merged

chore: bump version Releases 0.12.1#2502
chaokunyang merged 23 commits into
apache:releases-0.12from
pandalee99:releases-0.12

Conversation

@pandalee99
Copy link
Copy Markdown
Contributor

What does this PR do?

Related issues

Does this PR introduce any user-facing change?

  • Does this PR introduce any public API change?
  • Does this PR introduce any binary protocol compatibility change?

Benchmark

chaokunyang and others added 22 commits August 14, 2025 01:58
)

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

Closes apache#2460 

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
…ror (apache#2465)

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

Closes apache#2454 

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
…tLikeSerializer (apache#2466)

<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
## What does this PR do?

This PR introduces a new `MemoryAllocator` interface that allows
customisation of memory allocation strategies in `MemoryBuffer`. This
enables users to implement custom allocation policies.

## Related issues
- Closes apache#2459
- apache#2457 
- Closes apache#2350. 

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

---------

Co-authored-by: Shawn Yang <chaokunyang@apache.org>
## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

Closes apache#2439

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

apache#2381
apache#2472 
Closes apache#2471 

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
## What does this PR do?



## Related issues

Closes apache#2475

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues
apache#2474 
apache#2473
<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
## What does this PR do?

This commit refactors the Python wheel CI and release process to use a
chained workflow model, ensuring that the exact same test and build
process is run for both CI checks and releases.

A new reusable workflow, `.github/workflows/build-and-test-core.yml`, is
introduced. This workflow is triggered on `push` and `pull_request` for
CI purposes, and can also be called by other workflows via
`workflow_call`. It contains the full logic for building, testing, and
packaging the Python wheel across a matrix of operating systems and
Python versions.

The `release.yaml` workflow is refactored to be an orchestrator. On a
new tag, it now calls the `build-and-test-core.yml` workflow to run all
tests. If the tests pass, it proceeds to a separate job to download the
wheel artifacts produced by the test run and publish them to PyPI.

This architecture ensures that every release is automatically and
thoroughly tested in the exact same manner as pull requests, just before
publication.
## Related issues

apache#2472 
apache#2480 

## Does this PR introduce any user-facing change?

No

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Shawn Yang <chaokunyang@apache.org>
<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
…che#2486)

## What does this PR do?

The existing workflow did not build wheels correctly because the python
interpreter installed in the workflow was not used in the container
where the actual building was taking place. The manylinux images already
have every python version pre-installed. We now use them instead.

Key changes include:

- **New Workflows:**
- `build-containerized-pr.yml`: Handles building wheels for pull
requests using containerized environments for Linux.
- `build-containerized-release.yml`: Handles building wheels for
releases using containerized environments for Linux.
- `build-native-pr.yml`: Handles building wheels for pull requests on
macOS and Windows.
- `build-native-release.yml`: Handles building wheels for releases on
macOS and Windows.

- **Removed Workflows:**
- `.github/workflows/build-wheels.yaml`: This generic workflow has been
superseded by the new, more specific workflows.
- `.github/workflows/build-wheels-for-pr.yaml`: Merged into
`build-containerized-pr.yml` and `build-native-pr.yml`.
- `.github/workflows/build-wheels-for-release.yaml`: Merged into
`build-containerized-release.yml` and `build-native-release.yml`.
- `.github/workflows/build-native-pr.yml`: This was a duplicate and is
now handled by the new `build-native-pr.yml`.

- **Script Improvements:**
- `ci/build_linux_wheels.py`: Introduced a new script to manage Linux
wheel building within Docker containers, replacing
`build_manylinux_wheel.sh`. This script now uses explicit Docker image
definitions and a simplified execution model.
- `ci/deploy.sh`: Updated to use `PYTHON_PATH` and `PIP_CMD` for better
Python environment management, and adjusted `pyarrow` installation
versions for different Python versions.
- `ci/run_ci.sh`: Updated to correctly handle Bazel installation paths
(avoiding sudo) and use `curl` for downloading Bazel, since wget is not
in the container.

- **Workflow Triggers:**
- Workflows are now triggered based on their intended purpose (e.g.,
`push` to `main` or tags for releases, `pull_request` events for PR
builds).
- Path filters have been adjusted to ensure workflows trigger only when
relevant files are changed.

## Related issues

Closes apache#2480

## Notes

I also attempted to create musl builds but they failed because the bazel
binaries are incompatible with it. We would need to rebuild bazel for
musllinux.
<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
…d load bean classes (apache#2494)

We dynamically select the key and value type, and tried using this
overload of Encoders.mapEncoder
With the single-arg mapEncoder invocation, bean codec classes are loaded
with `token4BeanLoad`
    
But this overload never loads the bean classes leading to unexpected
exceptions during Map codec compile since bean codecs are not loaded
## What does this PR do?
correct meta_size_mask in doc.
<!--
**Thanks for contributing to Fory.**

**If this is your first time opening a PR on fory, you can refer to
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**

Contribution Checklist

- The **Apache Fory** community has requirements on the naming of pr
titles. You can also find instructions in
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).

- Fory has a strong focus on performance. If the PR you submit will have
an impact on performance, please benchmark it first and provide the
benchmark result here.
-->

## What does this PR do?
fix typos
<!-- Describe the purpose of this PR. -->

## Related issues

<!--
Is there any related issue? Please attach here.

- #xxxx0
- #xxxx1
- #xxxx2
-->

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
…2497)

Incorrect check leads to losing OptionalInt, OptionalLong, and
OptionalDouble values with generated bean implementation
## What does this PR do?

The existing PyPI documentation for `pyfory` was a single line and
uninformative. This change improves the documentation by:

1. Creating a new `python/README.md` with a clear and concise
description of the project, installation instructions, and usage
examples. This file is used to generate the PyPI page description.
2. Moving the developer-focused build and test instructions to a new
`python/CONTRIBUTING.md` file.

This will provide a much better experience for Python developers who
discover `pyfory` on PyPI, similar to the documentation for other
popular libraries like `opendal` and `msgpack`.

## Related issues

Closes apache#2488
## What does this PR do?

<!-- Describe the purpose of this PR. -->

## Related issues

apache#2498

## Does this PR introduce any user-facing change?

<!--
If any user-facing interface changes, please [open an
issue](https://github.com/apache/fory/issues/new/choose) describing the
need to do so and update the document if necessary.
-->

- [ ] Does this PR introduce any public API change?
- [ ] Does this PR introduce any binary protocol compatibility change?

## Benchmark

<!--
When the PR has an impact on performance (if you don't know whether the
PR will have an impact on performance, you can submit the PR first, and
if it will have impact on performance, the code reviewer will explain
it), be sure to attach a benchmark data here.
-->
@chaokunyang chaokunyang merged commit eab2953 into apache:releases-0.12 Aug 24, 2025
57 checks passed
@chaokunyang
Copy link
Copy Markdown
Collaborator

We should not use squash merge for cherry-pick commits fro main branch into release branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants