Releases: ndsev/zserio
Zserio v2.18.0
Zserio Core 2.18.0
- Enhanced to support missing enumeration cases in the choices
- Improved Zserio Encoding Guide document
- Improved Zserio Language Overview document
- Improved license document to clarify licensing of user schemas and generated code
C++ Extension 1.3.0
- Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods
- Activated new warning
-Wswitch-enumfor all supported compilers (gcc, clang and MSVC) - Fixed includes in the runtime library to resolve compilation error using g++15
- Fixed generated code when
-withoutWriterCodeand-withSetterCodeis used
Java Extension 1.2.0
- Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods
- Fixed ByteStreamWriter and ByteStreamReader to allow serialisation/deserialisation of big blobs up to 2GB
- Fixed JSON import to support fully the parameterized types
Python Extension 1.1.0
- Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods
Fixes
#678 - The getBitPosition method in the ByteArrayBitStreamBase class may throw a java.lang.NegativeArraySizeException
#687 - JSON import fails for the byte parameterized types in Java
#691 - C++ compilation error with g++15 caused by including but using int64_t instead of std::int64_t
#709 - C++ is not compilable for parameterized types using -withSetterCode
#710 - non const class attributes for setting via const parameter
New Features
#566 - SQLite API: Make Row Reader more efficient and backward compatible
#711 - Missing enumeration switch-cases after activating gcc -Wswitch-enum
Improvements
#576 - Consider to update gtest to newer version
#677 - Improve Zserio Encoding Guide for packed arrays
#679 - Improve Zserio Language Overview document
#704 - Document unicode escape syntax
#712 - Clarification needed on licensing of user schemas and generated code
Zserio v2.17.0
Zserio Core 2.17.0
- Enhanced implementation of Zserio templates to support generation of native templates
Improvements
#702 - Implement support for generating native templates
Zserio v2.16.1
Zserio Core 2.16.1
- Enhanced extension loading to accept all extensions located in the working directory (directory where the zserio.jar or zserio_core.jar is located)
C++ Extension 1.2.1
- Implemented new command line option
-withSettersCode|-withoutSettersCodewhich enables/disables generation of the setters and additional constructors - Fixed generation of the choices with only default case
- Fixed generation of the optional strings with default value
- Fixed generation of the extended optionals with default value
Java Extension 1.1.4
- Fixed generation of the optional uint32_t with default value
Python Extension 1.0.5
- Dropped support of Python 3.8
- Introduced support for Python 3.13
Fixes
#694 - Wrong generated C++ code for choices with only default case
#699 - Wrong generated C++ code for optional strings with default value
#700 - Wrong generated C++ code for extended optionals with default value
#701 - Wrong generated Java code for optional uint32_t with default value
New Features
#690 - Zserio option without writing methods is disabling as well generation of setter methods
Improvements
#674 - Consider to load jar extensions automatically from the working directory
#688 - Drop support of Python 3.8
#689 - Provide support for Python 3.13
Zserio v2.16.0
Zserio Core 2.16.0
- Extended
lengthofoperator functionality to work with strings and bytes - Fixed code comments for the extended members
C++ Extension 1.2.0
- Implemented left shift operator using multiplication for signed values
- Fixed type info expressions which contain strings
- Fixed choice tag name clashing in packed unions and choices
Java Extension 1.1.3
- Fixed choice tag name clashing in packed unions and choices
Doc Extension 1.0.4
- Fixed missed documentation comments for the extended members
Fixes
#667 - Choice tag name clashing in ZserioPackingContext
#668 - Doc Strings Missing for 'extend' Fields in HTML Documentation
#675 - Some type info expressions are not correctly generated when the expression contains strings
New Features
#670 - Extend lengthof operator to work with strings
Improvements
#671 - Consider to implement left shift operator by multiplication in C++
Zserio v2.15.0
Zserio Core 2.15.0
- Improved warning message for optional fields
- Disabled most of the expressions in offsets
- Fixed checking of duplicated offsets
- Fixed checking of offset usage in expressions
C++ Extension 1.1.0
- Implemented generation of parsing information code using new command line option
-withParsingInfoCode - Improved generated
constliterals to beconstexpr - Fixed possibility of passing large parameters by value for packed arrays
- Fixed violations of several MISRA C++ 2023 rules
- Fixed auto optional fields generated without writer code using command line option
-withoutWriterCode
Java Extension 1.1.2
- Improved documentation
- Fixed auto optional fields generated without writer code using command line option
-withoutWriterCode
Python Extension 1.0.3
- Improved documentation
- Fixed auto optional fields generated without writer code using command line option
-withoutWriterCode
Fixes
#168 - Improve offset expression checking
#571 - Improve warning message for optional fields
#586 - Fix MISRA C++ 2023 rule 8.2.5 "reinterpret_cast shall not be used"
#605 - Fix MISRA C++ 2023 rule 7.0.5 "Integral promotion or the usual arithmetic conversions shall not change the type signedness"
#607 - Fix MISRA C++ 2023 rule 0.1.2 "The value returned by a function shall be used"
#609 - Fix MISRA C++ 2023 rule 6.4.1 "A variable declared in an inner scope shall not hide a variable declared in an outer scope"
#624 - Unexpected error message when using '-withReflectionCode'
#627 - Fix MISRA C++ 2023 rule 8.2.6 "An object with integral, enumerated, or pointer to void type shall not be cast to a pointer type"
#628 - Fix MISRA C++ 2023 rule 7.0.3 "The numerical value of a character shall not be used"
#630 - Fix MISRA C++ 2023 rule 7.0.4 "The operands of bitwise operators and shift operators shall be appropriate"
#631 - Fix MISRA C++ 2023 rule 6.7.1 "Local variables shall not have static storage duration"
#632 - Fix MISRA C++ 2023 rule 13.3.3 "The parameters in all declarations or overrides of a function shall either be unnamed or have identical names"
#633 - Fix MISRA C++ 2023 rule 12.3.1 "The union keyword shall not be used"
#634 - Fix MISRA C++ 2023 rule 28.6.2 "Forwarding references and std::forward shall be used together"
#635 - Fix MISRA C++ 2023 rule 5.10.1 "User-defined identifiers shall have an appropriate form"
#637 - Fix MISRA C++ 2023 rule 15.0.1 "Special member functions shall be provided appropriately"
#639 - Fix MISRA C++ 2023 rule 19.2.2 "The #include directive shall be followed by either a or "filename" sequence"
#640 - Offsets should not be allowed in expressions
#645 - Duplicated offsets should be disabled
#654 - Optional Fields without Writer Coder Result in Invalid Generated Code
#657 - Big Parameters passed by value (more than the threshold value of 128 bytes)
#660 - Fix MISRA C++ 2023 rule 7.11.2 "An array passed as a function argument shall not decay to a pointer"
New Features
#652 - Emit Source Positions for Compounds
Improvements
#509 - All generated c++ const literals should be constexpr
#597 - Docs: Improve README.md documentation for Java/Python/HTML/XML generator
#618 - Update documentation of bitmask types that they does not have to be always prefixed
#641 - Disallow most of the expressions in offsets
#665 - Separate test schemas to the different repository core enhancement
Zserio v2.14.1
C++ Extension 1.0.2
- Fixed checking of the number of bits for dynamic bit fields in runtime library
- Fixed moving of the variables in the reflectable in runtime library
- Fixed MSVC warnings
- Fixed MISRA C++ 2023 rules 9.3.1 and 0.1.2
- Fixed SonarCloud rules for bitwise operators
- Fixed all sign-coversion warnings reported by gcc compilers
Java Extension 1.1.1
- Fixed checking of the number of bits for dynamic bit fields in runtime library
- Fixed checking of the compound parameters in packed arrays
Python Extension 1.0.2
- Fixed checking of the number of bits for dynamic bit fields in runtime library
- Fixed enumerations in runtime library to solve the backward incompatible change in
EnumTypeimplementation of the new Python version 3.12.3
Fixes
#513 - Runtime libraries don't check numBits properly during serialization / deserialization
#587 - MSVC produces some warnings in CI builds
#588 - Benchmarks do not compile with MinGW in Debug mode (CI build)
#589 - Set cpp allocator tests do not work in CI build with MSVC in Debug
#595 - Python runtime tests fail for new Python 3.12.3
#599 - C++ runtime tests fail for C++11 using MinGW 7.5.0
#606 - Fix MISRA C++ 2023 rule 9.3.1 "The body of an iteration-statement or a selection-statement shall be a compound-statement"
#607 - Fix MISRA C++ 2023 rule 0.1.2 "The value returned by a function shall be used"
#614 - Check for minimum C++ standard version doesn't work
#616 - Java doesn't check compound parameters which are used deep in packed arrays
#621 - Local variables in C++ runtime reflectable are not automatically moved
#622 - Solve SonarCloud rule "Results of ~ and << operations on operands of underlying types unsigned char..."
#623 - Solve SonarCloud rule "Bitwise operators should not be applied to signed operands"
#625 - Fix all sign-conversion warnings reported by gcc compiler
Improvements
#620 - Improve documentation about C++ custom memory management
Zserio v2.14.0
Zserio Core 2.14.0
- Reformatting of the Java sources according to the clang-format rules
C++ Extension 1.0.1
- Support for Conan 2.x deployment
- Official support of the C++17 standard for clang, minGW and MSVC compilers
- Updating documentation (serialization API, additional API)
- Replacement of the cppcheck and CodeQL static analysis tools by the SonarCloud
- Fixed all conversion warnings fired from old gcc 8.0 compiler
- Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
- Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
- Reformatting of the C++ and Java sources according to the clang-format rules
Java Extension 1.1.0
- Partial implementation of Zserio subtypes in the generated Java code
- Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
- Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
- Reformatting of the Java sources according to the clang-format rules
Python Extension 1.0.1
- Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
- Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
- Official support of Python 3.12
- Reformatting of the Java sources according to the clang-format rules
- Reformatting of the Python sources according to the black rules
Doc Extension 1.0.1
- Fixed a bug that caused generation failure when choices have cases expressed by constants
- Reformatting of the Java sources according to the clang-format rules
XML Extension 1.0.1
- Reformatting of the Java sources according to the clang-format rules
Fixes
#559 - Json: Scientific notation decode error
#568 - MSVC 2017 Conformance Mode does not compile C++ runtime library
#581 - JSON reader fails in case of empty extern field
#582 - JSON reader fails in case of empty bytes field
#586 - Fix MISRA C++ 2023 rule 8.2.5 "reinterpret_cast shall not be used"
#592 - When the parameter of choice type is constant, document generation fails
#593 - Fix MISRA C++ 2023 rule 15.1.3 "Conversion operators and constructors that are callable with a single argument shall be explicit"
#596 - C++ runtime tests fail for C++17 using MSVC v142
New Features
#533 - Zserio Conan 2.x Deployment and Integration of CMake Helper
#574 - Add SonarCloud support to scan C++ runtime
#578 - Consider to implement subtype classes in Java
Improvements
#82 - Modernize CMake configuration
#333 - add_zserio_module cmake function
#504 - Consider to remove cppcheck static analysis tool
#558 - Add clang-format tool to check all C++ sources
#560 - Provide Zserio CMake helper for easier integration to CMake based projects
#561 - Add clang-format tool to check all Java sources
#563 - Add readability-identifier-length rule to clang-tidy tool
#567 - Add support for Python 3.12
#569 - Docs: Add more info to EOF exception
#573 - Enhance C++ configuration to support compilation using C++17 standard
#575 - Consider to split GitHub Actions according to the generators
#579 - Enable conversion warnings for gcc compiler
#583 - Docs: Add section about PMR allocators in C++ documentation
#594 - Consider to remove CodeQL queries for AUTOSAR
#603 - Add black tool to check all Python sources
Zserio v2.13.0
Zserio Core 2.13.0
- New Zserio Compatibility Guide which defines
- New version numbers for all supported Zserio extensions
- New binary encoding version
- New JSON encoding version
- Official support of Java 11 and Java 17
C++ Extension 1.0.0
- Introducing of new extension version together with binary and JSON encoding versions
- Size optimization of generated objects which are not packed in the schema
- Brand new less than operator using this ordering
- Fix of move constructors for parameterized types
- Fix of JSON bitmasks reading
- Fix problems related to using-based function references in runtime library for MSVC (C++20)
- Official support of MSVC 2019 and clang 14
Java Extension 1.0.0
- Introducing of new extension version together with binary and JSON encoding versions
- Size optimization of generated objects which are not packed in the schema
- Fix of new SpotBugs 4.8.2 issues
- Official support of Java 11 and Java 17
- Potential API incompatibilities with previous version:
- All generated classes are now declared as
finalbecause of SpotBugsCT_CONSTRUCTOR_THROWissue
- All generated classes are now declared as
Python Extension 1.0.0
- Introducing of new extension version together with binary and JSON encoding versions
- Size optimization of generated objects which are not packed in the schema
Doc Extension 1.0.0
- Introducing of new extension version
XML Extension 1.0.0
- Introducing of new extension version
Fixes
#532 - Move constructor of parameterized types can throw
#536 - Cannot compile zserio using "building by hand" instructions: javadoc error
#538 - Fix problems related to using-based function references (C++ 20)
#547 - C++ fails to read JSON bitmask with more than 2 values
New Features
#288 - Add less than operator to c++ emitted code
#456 - zserio compatibility management and mechanisms
Improvements
#516 - Generated objects which are not packed does not need to define packing interface
#535 - Update officially support clang compiler to version 14.0.6
#544 - Add official support for MSVC 2019
#545 - Add official support for Java 17
#549 - Add official support for Java 11
#551 - Upgrade SpotBugs version from 3.1.12 to 4.8.2
#552 - Solve SpotBugs issue UWF_UNWRITTEN_FIELD in generated code
#553 - Solve SpotBugs issue CT_CONSTRUCTOR_THROW in generated code
Zserio v2.12.0
The main goal of this release is to publish the following brand new features in the language:
- Extended Members at the end of top level structure
- Deprecated and removed annotations
- New warning if packed union has no packable fields using specifier [unpackable-union]
The release contains as well new documentation:
This release contains the following improvements in generated code:
- Optimization of memory allocations during parsing of huge packed arrays in C++, Java and Python code
- Checking of correctness of C++ runtime library version during compilation in C++ code
This release contains the following improvements in runtime libraries:
- Improving runtime test coverage in C++
- Improving arrays implementation in C++
Fixes
#506 - Fix C++ warning in generated SQL table code with validation
New Features
#482 - Solve backward compatible extension at the end of top level structures
#486 - New keywords for compatibility: removed, deprecated
#528 - Add new warning for packed unions which has no packable fields
Improvements
#13 - initializeOffsets method does not resize offset arrays
#328 - Schema evolution in zserio
#377 - Consider to create separated Zserio encoding guide documentation
#406 - Define and document supported tool chains for all target languages
#464 - The value ranges of the varsize are 2^36 (68,719,476,736)
#471 - Add a description about the JSON mapping used by zserio
#485 - Investigate GitHub analysis tool which can check Autosar C++
#500 - zserio logo not suitable for dark mode
#503 - Improve C++ runtime test coverage
#508 - Improve arrays implementation in C++ runtime library
#519 - ZSERIO_RUNTIME_64BIT looks obsolete in 2.11.0
#520 - zserio_ant_task.compile jdk17 deprecation on AccessController
#524 - Optimize memory allocations for packed arrays
#525 - Enhance unpackable warning to report clearly that packed keyword is ignored
#529 - Check correct C++ runtime library version during compilation
Zserio v2.11.0
The main goal of this release is to improve Functional Safety in C++ generator. This covers:
- New GitHub badges for test coverage of Zserio runtime libraries
- Public test coverage reports for C++, Java and Python at GitHub Pages
- Integration of clang-tidy static analysis tool using this configuration
This release contains the following improvement in generated code:
- Adding new method to convert enum string to value in generated C++, Java and Python code
This release contains as well two important bug fixes for C++ generator:
- Fix allocation strategy not to fragment allocated memory
- Fix move/copy constructors not to keep dangling pointers in generated objects
Fixes
#479 - Allocated memory can be fragmented during parsing in C++
#501 - Dangling pointer after move/copy constructor of dynamic bit field arrays
New Features
#487 - Add method to retrieve enum value from enum string directly
#492 - Add clang-tidy to the C++ static code analysis c++
Improvements
#491 - Provide test coverage statistics in release assets enhancement
#493 - Documentation on when C++ exceptions are thrown