The Apache Fory team is pleased to announce the 0.12.0 release. This is a major release that includes 64 PR from 9 distinct contributors. See the Install Page to learn how to get the libraries for your platform.
Highlights
- [Python] Support Python
__getstate__/__setstate__/__reduce__
serialization protocol - [Python] Support serialize python function
- [Java] Use JDK11 for fory-format module
- [Scala]Support default value for scala case/pojo classes when deseralizing
- [Kotlin] Support default value for kotlin data classes when deserializing
Features
- refactor(python): replace Black and Flake8 with Ruff by @esafak in https://github.com/apache/fory/pull/2388
- refactor(python): Unify DataClassSerializer and ComplexObjectSerializer by @esafak in https://github.com/apache/fory/pull/2389
- refactor(python): Simplify require_pyarrow, remove undefined pytest.mark by @esafak in https://github.com/apache/fory/pull/2396
- feat(python): Replace usage of ComplexObjectSerializer with DataClassSerializer by @esafak in https://github.com/apache/fory/pull/2395
- feat(python): Add StatefulSerializer using getstate, setstate by @esafak in https://github.com/apache/fory/pull/2400
- feat(python): Implement ReduceSerializer for reduce support by @esafak in https://github.com/apache/fory/pull/2401
- feat(python): Support codegen with XLANG in DataClassSerializer by @esafak in https://github.com/apache/fory/pull/2405
- perf(Go/python): Type system compatibility upgrade by @pandalee99 in https://github.com/apache/fory/pull/2339
- feat(python): Add FunctionSerializer for function serialization by @esafak in https://github.com/apache/fory/pull/2404
- feat: Implement ObjectSerializer for custom objects by @esafak in https://github.com/apache/fory/pull/2413
- feat(scala): support scala object with default values by @chaokunyang in https://github.com/apache/fory/pull/2412
- refactor(java): refactor java default value support for scala/kotlin by @chaokunyang in https://github.com/apache/fory/pull/2415
- feat(kotlin): support default value for kotlin data class by @chaokunyang in https://github.com/apache/fory/pull/2416
- feat(kotlin): add cache to kotlin default value support by @chaokunyang in https://github.com/apache/fory/pull/2419
- refactor(ci): Migrate CI runner to Python scripts by @esafak in https://github.com/apache/fory/pull/2406
- feat(java): use java11 for fory-format module by @chaokunyang in https://github.com/apache/fory/pull/2448
- feat(python): add register api for python by @chaokunyang in https://github.com/apache/fory/pull/2451
- feat(java): add graalvm 23 ci by @chaokunyang in https://github.com/apache/fory/pull/2463
Bug Fix
- fix: tidy up issues in scala_guide.md by @pjfanning in https://github.com/apache/fory/pull/2374
- fix(java): ClassDef header calculation error by @LiangliangSui in https://github.com/apache/fory/pull/2382
- ci(python): Build manylinux_2_28 wheels using auditwheel by @esafak in https://github.com/apache/fory/pull/2381
- fix: Correct pyarrow installation check and add bazel troubleshooting by @esafak in https://github.com/apache/fory/pull/2418
- fix(go): fix type writing and reading logic in slice by @lzaeh in https://github.com/apache/fory/pull/2427
- fix(rust): fix rust lint error by @chaokunyang in https://github.com/apache/fory/pull/2447
- fix(java): crash when map only contains null value by @LouisLou2 in https://github.com/apache/fory/pull/2444
- fix(java): MemoryBuffer::readChars by @LouisLou2 in https://github.com/apache/fory/pull/2438
- fix(java): fix java deploy with different java versions by @chaokunyang in https://github.com/apache/fory/pull/2449
- fix(java): fix install jdks by @chaokunyang in https://github.com/apache/fory/pull/2450
- fix(java): fix maven deploy by @chaokunyang in https://github.com/apache/fory/pull/2452
- fix(java): fix shade janino duplciate entry by @chaokunyang in https://github.com/apache/fory/pull/2453
- fix(java): fix extension java module conflict by @chaokunyang in https://github.com/apache/fory/pull/2455
- fix(java): fix extension java module conflict by @chaokunyang in https://github.com/apache/fory/pull/2456
- fix(java): fix decode classdef for abstract classes by @chaokunyang in https://github.com/apache/fory/pull/2462
- fix(python): fix pyfory pypi release (#2473) by @chaokunyang in https://github.com/apache/fory/pull/2474
- fix(python): fix py releases macos13 by @chaokunyang in https://github.com/apache/fory/pull/2479
Other Improvements
- chore(Scala): upgrade sbt and plugins by @pjfanning in https://github.com/apache/fory/pull/2379
- chore(python): add more comprehensive test parameters by @pandalee99 in https://github.com/apache/fory/pull/2377
- chore(Scala): remove var that can be mutated by @pjfanning in https://github.com/apache/fory/pull/2385
- chore(Scala): add test for Scala 3 enum by @pjfanning in https://github.com/apache/fory/pull/2386
- chore(Scala): use setup-sbt CI action by @pjfanning in https://github.com/apache/fory/pull/2387
- chore(Scala): refactor scala test so it asserts something by @pjfanning in https://github.com/apache/fory/pull/2390
- chore(Scala): Create DurationTest.scala by @pjfanning in https://github.com/apache/fory/pull/2394
- chore(Java): handle deserialization scenario that currently throws an IndexOutOfBoundsException by @pjfanning in https://github.com/apache/fory/pull/2399
- chore: bump release version to 0.11.2 by @pandalee99 in https://github.com/apache/fory/pull/2403
- chore(deps): bump org.apache.commons:commons-lang3 from 3.12.0 to 3.18.0 in /java/fory-test-core by @dependabot[bot] in https://github.com/apache/fory/pull/2408
- chore(docs): Fix the names of some documents by @pandalee99 in https://github.com/apache/fory/pull/2411
- chore(cpp): fix duplicate copyright by @co63oc in https://github.com/apache/fory/pull/2426
- docs: fix ruff command by @co63oc in https://github.com/apache/fory/pull/2425
- chore: fix typos by @co63oc in https://github.com/apache/fory/pull/2424
- chore(dart): fix typos by @co63oc in https://github.com/apache/fory/pull/2428
- chore: fix typos by @co63oc in https://github.com/apache/fory/pull/2429
- chore: remove incubating by @chaokunyang in https://github.com/apache/fory/pull/2431
- chore: fix typos by @co63oc in https://github.com/apache/fory/pull/2433
- chore: fix typos by @co63oc in https://github.com/apache/fory/pull/2436
- chore: translate comments by @co63oc in https://github.com/apache/fory/pull/2442
- chore(python): add execute doc for cross langauge tests in python by @chaokunyang in https://github.com/apache/fory/pull/2420
- chore(java): arrow 18.3.0 by @stevenschlansker in https://github.com/apache/fory/pull/2458
- chore: prepare commits for releases-0.12 by @chaokunyang in https://github.com/apache/fory/pull/2470
- chore(python): disable import format warning by @chaokunyang in https://github.com/apache/fory/pull/2477
New Contributors
- @co63oc made their first contribution in https://github.com/apache/fory/pull/2426
Full Changelog: https://github.com/apache/fory/compare/v0.11.2...v0.12.0