Protobuf

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Protobuf

0.12    2026-07-26
    - Added SECURITY.md
        [Ecosystem Hardening & Parity]
        - Merged Google-Protobuf-WKT into core Protobuf distribution.
        - Bundled standard Well-Known Types (Timestamp, Any, Descriptor, etc.) directly in lib/Google/Protobuf/.


0.11    Wed Jul 22 2026
        [Documentation]
        - Added missing 0.10 release entry to Changes file (reported by Lukas Mai / @mauke).

0.10    Wed Jul 22 2026
        [Core Runtime & Multi-Platform Alignment]
        - Synchronized $VERSION = '0.11' across all 45 sub-module .pm files to resolve DynaLoader version mismatch errors during XS bootstrapping.
        - Process ID Tracking: Added getpid() check in xs/descriptor_pool/pool.c to reinitialize generated_pool_ptr across fork() calls, eliminating segfaults and use-after-free conditions in multi-process/forking servers.
        - RPATH Linker Fix: Single-quoted \$$ORIGIN in Makefile.PL extra_ldflags so make/ld passes literal $ORIGIN to ld.so.
        - Template Toolkit Integration: Refactored blib_libprotobufperl_copy Makefile rule out of Makefile.PL and into makefile.tt template block.
        - Test Proto Automation: Added generate_test_protos rule in makefile.tt and untracked static pre-generated t/generated/*.pm files from Git tracking.

0.09    Sat Jul 18 2026
        [Compatibility & API Layer]
        - Added Google::ProtocolBuffers::Dynamic compatibility API shim (Google::ProtocolBuffers::Dynamic) backed by the high-performance upb C engine.
        - Supported load_file, load_string, map_package, map_message, encode, and decode methods.
        - Enabled automatic dynamic package mapping and class generation for mapped Perl namespaces.
        - Added comprehensive compatibility unit test suite (t/025_dynamic_compat.t).
        - Refactored App::EvalServerAdvanced::Protocol to utilize the new compatibility layer with File::ShareDir path resolution.
        - Special thanks to Ryan Voots (@simcop2387) for testing, feedback, and driving compatibility requirements for App::EvalServerAdvanced.

        [Bug Fixes & Smoker Hardening]
        - Added RT bug tracker URL (https://rt.cpan.org/Dist/Display.html?Queue=Protobuf) to POD documentation across distribution modules.
        - Fixed non-system perl (perlbrew/plenv/custom prefixes) linking errors caused by hardcoded static libperl.a search paths in Makefile.PL (CPAN RT #180139 & RT #178734 reported by Slaven Rezić / @srezic; with key build insights from Ryan Voot...
        - Added -fPIC $Config{cccdlflags} to all C and C++ object compilation rules in Makefile.PL to prevent R_X86_64_TPOFF32 and R_X86_64_PC32 relocation errors under LTO (-flto=auto) and ithread builds (thanks to Lukas Mai / @mauke for catching an...
        - Added Xcode SDK Perl CORE header search fallback in Makefile.PL for macOS Apple Silicon system Perl builds.

0.08    Sat Jul 18 2026
        [CPAN Metadata Correction]
        - Corrected repository URL to GoogleCloudPlatform/google-auth-library-perl.git and added bugtracker URL in Makefile.PL META_MERGE (thanks to Lukas Mai / @mauke for catching stale metadata).

        [Build Systems & Clean Target Hardening]
        - Enhanced Makefile.PL to automatically include bin/protoc-gen-perl-pb in standard Makefile 'all' and 'install' targets via EXE_FILES.
        - Removed tracked ELF 64-bit binary bin/protoc-gen-perl-pb from Git tracking and added to .gitignore.
        - Hardened Makefile.PL realclean target to preserve vendor/ C source headers and output object directory paths.
        - Added git vendor auto-restoration fallback (git checkout -- vendor/) to Makefile.PL when vendor/ directory is missing in a Git workspace.

0.07    Fri Jul 17 2026
        [Core Runtime & Descriptor Engine]
        - Internal release prep and descriptor pool synchronization updates.
        - Improved upb memory arena lifecycle management and string handling across XS calls.


0.06    Fri Jul 17 2026
        [Windows & Multi-Platform Build Hardening]
        - Enhanced Makefile.PL to search system library paths for libperl across Debian, Ubuntu, Fedora, and Arch layouts.
        - Hardened protoc/plugin_main.cc on Windows by setting stdin and stdout to binary mode (_setmode O_BINARY), preventing line-ending corruption during protoc IPC.
        - Sanitized backslashes in compiler include paths (-I) for MinGW and MSWin32 environments.
        - Overrode MY::fixin in Makefile.PL to prevent script rewriting issues on Windows.

        [Code Generator & Type System]
        - Hardened Protobuf::ClassGenerator::_get_type_tiny_code to handle unresolved message type references via capitalized fallback class naming and Any type coercion instead of dying.
        - Updated protoc-gen-perl-pb (protoc/generator.cc) to emit standard Apache 2.0 copyright headers in generated module headers.

        [Architecture & CPAN Cleanup]
        - Streamlined $VERSION declarations: pruned redundant $VERSION variables from generated sub-modules and schema files so CPAN toolchains track versioning exclusively through primary distribution entrypoints.


0.05    Mon Jul  6 2026
        [Windows Portability & Build Hardening]
        - Fixed building and linking of libprotobufperl on Windows (MinGW/Strawberry Perl) by linking with embed_ldflags (containing libperl542.a) and explicitly using .dll extension instead of $Config{dlext} (.xs.dll) for the helper library.
        - Conditionally bypassed linking with -lpcre2-8 on Windows as PCRE2 is not used in the Windows test suite.
        - Implemented the missing PerlUpb_Message_GetFingerprint function in the XS layer.
        - Reordered C test headers to include perl.h before XSUB.h, preventing socket structure and macro redefinition conflicts under MinGW.
        - Updated Makefile.PL and makefile.tt run targets to use Windows-compatible path separators (backslashes) and environment variable syntax (set PATH=... && command).
        - Skipped POSIX-specific and unsupported tests on Windows, including ASan leak tests (036_asan_leak_test.c), tmpfs arena allocators, and tmpfs IPC tests.

        [Documentation]
        - Updated THANKS.md to thank Subinoy Dutta for exercising and verifying the Windows version.

0.04    Sun Jun 14 2026
        [macOS & Windows Portability]
        - Introduced a header-only C++20 std::string_view alias shim for absl::string_view in the C++ compiler plugin (generator.h, helpers.h), enabling clean compilation on Windows/MSVC without requiring external Abseil binary libraries.
        - Bypassed Abseil binary library linking ($absl_libs) in Makefile.PL when compiling on Windows.
        - Added platform detection in Makefile.PL to correctly use the .dylib extension for external libraries on macOS ($extlib_ext = $is_darwin ? 'dylib' : '$(DLEXT)').
        - Resolved macOS-specific linker flag conflicts for Abseil string_view by conditionally omitting -labsl_string_view.
        - Added support for appending .exe to the compiler plugin target in Makefile.PL and corrected the compiler invocation path on Windows.
        - Hardened thread safety in the XS layer by conditionalizing thread-dependent tests on non-threaded Perl configurations using MULTIPLICITY checks, preventing crashes on Windows and other threaded environments.

        [Bug Fixes]
        - Fixed a critical compilation error in Protobuf.xs (XS_Protobuf__Arena__xs_stats) where incorrect thread context passing (aTHX instead of aTHX_) caused syntax errors on single-threaded Perl smoker systems.
        - Fixed the same thread context bug in t/c/integration/050_convert_coro.c across several conversion functions.
        - Resolved a dev-mode build block in Makefile.PL by dynamically adjusting the paths of JIT-vendored plugin.upb.c and descriptor.upb.c to use the correct Google3 translated layout (third_party instead of 3rd_party and net/proto2/proto).
        - Fixed a destructive make clean bug in Makefile.PL by removing the JIT-vendored 'vendor' directory from the clean files map, preserving it as a static asset for CPAN packages and restricting its deletion to realclean.



( run in 1.504 second using v1.01-cache-2.11-cpan-84de2e75c66 )