Skip to content

protobuf, protoc versioning #9796

Open
Open
@stemann

Description

It seems there were some confusion regarding the version numbering scheme of the protobuf project, the protobuf C++ library, and the libprotobuf-dependent protoc compiler, in #8658 (protoc_jll v26.1), and in particular in #9584 (protoc_jll v105.28.2).

It seems that the protobuf project, and protoc compiler is versioned using major version number >= 21, since protobuf C++ library version 3.21.0: https://protobuf.dev/support/version-support/

And in addition, using major versions > 3, since minor versions v16.2, v.18.3, v19.5, v20.2 (also tagged as v3.x.y, e.g. v3.16.2).

IIUC, #8658 was right (wrt. to the package name and the package version - reflecting the proper protoc compiler version).

Would it be right to migrate to having two JLL's, e.g. protoc_jll containing only the protoc compiler, and protobuf_cpp_jll containing the protobuf C++ library?

An attempt at an overview - and a suggested versioning plan:

flowchart LR

    protobuf_cpp_v3_16_1[protobuf_cpp v3.16.1]
    protobuf_cpp_v3_16_2[protobuf_cpp v3.16.2]
    protobuf_cpp_v3_18_2[protobuf_cpp v3.18.2]
    protobuf_cpp_v3_18_3[protobuf_cpp v3.18.3]
    protobuf_cpp_v3_19_4[protobuf_cpp v3.19.4]
    protobuf_cpp_v3_19_5[protobuf_cpp v3.19.5]
    protobuf_cpp_v3_20_1[protobuf_cpp v3.20.1]
    protobuf_cpp_v3_20_2[protobuf_cpp v3.20.2]
    protobuf_cpp_v3_20_3[protobuf_cpp v3.20.3]
    protobuf_cpp_v3_21_0[protobuf_cpp v3.21.0]
    protobuf_cpp_v4_22_0[protobuf_cpp v4.22.0]

    protoc_v3_16_1[protoc v3.16.1]
    protoc_v16_2[protoc v16.2]
    protoc_v3_18_2[protoc v3.18.2]
    protoc_v18_3[protoc v18.3]
    protoc_v3_19_4[protoc v3.19.4]
    protoc_v19_5[protoc v19.5]
    protoc_v3_20_1[protoc v3.20.1]
    protoc_v20_2[protoc v20.2]
    protoc_v20_3[protoc v20.3]
    protoc_v21_0[protoc v21.0]
    protoc_v22_0[protoc v22.0]

    protoc_v3_16_1 --> protobuf_cpp_v3_16_1
    protoc_v16_2 --> protobuf_cpp_v3_16_2
    protoc_v3_18_2 --> protobuf_cpp_v3_18_2
    protoc_v18_3 --> protobuf_cpp_v3_18_3
    protoc_v3_19_4 --> protobuf_cpp_v3_19_4
    protoc_v19_5 --> protobuf_cpp_v3_19_5
    protoc_v3_20_1 --> protobuf_cpp_v3_20_1
    protoc_v20_2 --> protobuf_cpp_v3_20_2
    protoc_v20_3 --> protobuf_cpp_v3_20_3
    protoc_v21_0 --> protobuf_cpp_v3_21_0
    protoc_v22_0 --> protobuf_cpp_v4_22_0
Loading

References:

Activity

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

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions