F42 Change Proposal: Protobuf 5.x/6.x (system-wide)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wiki - https://fedoraproject.org/wiki/Changes/Protobuf_5.x/6.x
Discussion thread -
https://discussion.fedoraproject.org/t/f42-change-proposal-protobuf-5-x-6-x-system-wide/140620

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==
Update Protobuf to the latest version (5.x), and 6.x if it arrives in
time before freeze in Q1 2025. Note that Protobuf's versioning is
complicated, C++ and Python are at version 5, other language bindings
at version 4, and they all embed the version of `protoc`; we are using
the C++ version here so we can reference its
[https://protobuf.dev/support/version-support/#cpp support policy].

A compatibility package, `protobuf3` will be packaged for current
`protobuf` dependencies, but will be marked as deprecated as v3 EOLed
in March 2024.

== Owner ==
* Name: [[User:salimma|Michel Lind]], [[User:jonathanspw|Jonathan
Wright]], [[User:ngompa|Neal Gompa]]
* Email: michel@xxxxxxxxxxxxxxx, jonathan@xxxxxxxxxxxxx, ngompa13@xxxxxxxxx


== Detailed Description ==
`protobuf` has historically been a problem to maintain in Fedora
because upstream aggressively releases new versions; we hope to make
it easier to keep up by providing compatibility packages for the older
major version as soon as a new major version of `protobuf` C++ is out.

Specifically, we will start by packaging `protobuf3` for legacy use
cases and updating `protobuf` to version 5, then when version 6 is
out, immediately package `protobuf5` and update `protobuf` to version
6.

Older `protobuf` versions will be marked as `deprecated()` as soon as
upstream considers them out of support, and once this happens we have
the option of retiring them as soon as either there is a major
security issue affecting it or, in Rawhide, as soon as there are no
longer any dependent package.

We will add version suffixes for the binary packages for `protobuf`
5.x/6.x, and if we don't see any issue, for the compat `protobuf3`
subpackages as well.

== Feedback ==


== Benefit to Fedora ==
Other packagers and users benefit from having an up to date version of
Protobuf. This would unblock updating several dependent packages.

== Scope ==
* Proposal owners:
** Package `protobuf3`
** Provide a COPR for testing
** Update `protobuf` in COPR
** Rebuild dependents in a COPR to make sure this work
** Send PRs to packages that need to be adapted to build against `protobuf3`
** (stretch) send PRs to packages to switch them to use `protobuf` 5.x/6.x

* Other developers:
** Help update your own packages to ideally use `protobuf` 5.x/6.x or
at least to switch them to use `protobuf3`
** Report packaging issues

* Release engineering: [https://pagure.io/releng/issue/12506 #12506]

* Policies and guidelines: N/A (not needed for this Change)

* Trademark approval: N/A (not needed for this Change)

* Alignment with the Fedora Strategy:


== Upgrade/compatibility impact ==
This should have minimal impact for users. The only issue would be if
a package transitively depends on both `protobuf` 3.x and 5.x/6.x at
build time.



== Early Testing (Optional) ==
Do you require 'QA Blueprint' support? N


== How To Test ==

== User Experience ==
Users will benefit from having newer packages available that are
currently blocked on the stale `protobuf` version


== Dependencies ==
70 source RPMs

 <nowiki>$ fedrq whatrequires protobuf-devel --src
CuraEngine-1:5.4.0-7.fc42.src
CuraEngine_grpc_definitions-0.1.0-7.fc42.src
HepMC3-3.3.0-2.fc41.src
OliveTin-2022.11.14-8.fc40.src
actor-framework-1.0.1-1.fc42.src
android-tools-1:35.0.1-2.fc41.src
bear-3.1.5-2.fc42.src
bloaty-1.1-38.fc42.src
buildbox-1.2.33-1.fc42.src
caffe-1.0^git20200212.9b89154-14.fc42.src
chatty-0.8.5-1.fc42.src
chromiumos-platform-0~20240902git67bc17e-4.fc42.src
clementine-1.4.0~rc2-10.fc42.src
cockatrice-2.9.0-5.fc41.src
credentials-fetcher-1.3.6-0.fc40.src
criu-4.0-3.fc42.src
dnsdist-1.9.7-1.fc42.src
fcitx5-mozc-2.17.2102.102.1-36.20230508git242b4f7.fc42.src
gazebo-10.2.0-11.fc42.src
grpc-1.48.4-41.fc42.src
hidviz-0.2-6.fc41.src
ignition-msgs-1.0.0-21.fc41.src
ignition-transport-4.0.0-22.fc41.src
kf5-kitinerary-23.08.5-3.fc42.src
kismet-0.0.2023.07.R1-7.fc41.src
kitinerary-24.12.0-1.fc42.src
kosmindoormap-24.12.0-1.fc42.src
libarcus-5.3.0-5.fc41.src
libcompizconfig-1:0.8.18-14.fc41.src
libopenshot-0.3.3-4.fc42.src
liborc-2.0.3-1.fc42.src
libphonenumber-8.13.50-3.fc42.src
libzypp-17.34.1-4.fc42.src
marble-1:24.12.0-1.fc42.src
merkaartor-0.20.0-3.fc42.src
meson-1.5.1-1.fc42.src
mmsd-tng-2.5.0-4.fc41.src
mosh-1.4.0-6.fc41.src
mozc-2.29.5111.102-11.fc42.src
mumble-1.4.287-5.fc41.src
mypaint-2.0.1-11.fc41.src
nanopb-0.4.9-1.fc42.src
ncid-1.17-3.fc42.src
ncnn-20240820-1.fc42.src
netdata-2.0.3-2.fc42.src
onnx-1.15.0-4.fc41.src
onnxruntime-1.17.3-6.fc42.src
opencv-4.10.0-7.fc42.src
opentrep-0.07.16-1.fc42.src
osgearth-3.7-2.fc42.src
osmpbf-1.5.1-4.fc41.src
paraview-5.12.1-8.fc42.src
pdns-4.9.2-2.fc42.src
pdns-recursor-5.1.2-2.fc42.src
perfetto-48.0-1.fc42.src
perl-Alien-ProtoBuf-0.09-24.fc41.src
plasma-dialer-1:6.2.4-1.fc42.src
pokerth-1.1.2-30.fc41.src
protobuf-c-1.5.0-4.fc41.src
protozero-1.7.1-9.fc41.src
python-torch-2.5.0-1.fc42.src
python-torchaudio-2.4.1-2.fc42.src
qt6-qtgrpc-6.8.1-2.fc42.src
raceintospace-2.0.0-12.rc1.fc41.src
ricochet-1.1.4-36.fc41.src
root-6.32.08-2.fc42.src
rust-tonic-types-0.12.3-1.fc42.src
spacebar-1:6.2.4-1.fc42.src
srpc-0.10.3-1.fc42.src
usbguard-1.1.3-2.fc41.src
</nowiki>



== Contingency Plan ==

* Contingency mechanism:
The minimum change we can do is update `protobuf` to the latest 3.x,
but that still requires some compatibility testing and leave us with
an obsolete version

* Contingency deadline:
Beta freeze

* Blocks release?
Yes


== Documentation ==
N/A

== Release Notes ==

-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney

-- 
_______________________________________________
devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-announce-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux