https://github.com/apache/pulsar/pull/22578

---


# PIP-347: Extend LTS release process to client SDKs

## Motivation

PIP-175 [1] has introduced the concept of LTS releases in Pulsar, with a
defined cadence of feature and LTS release and setting a clear expectation
in terms of support window for each release.

The first Pulsar LTS release to follow this model was 3.0 in April 2023
and it will be followed by 4.0 release in October 2024.

Users have been very appreciative of these models and it has simplified the
work of maintainers, now that there are less active versions to support.

While for the Pulsar Java client SDK, we are implicitly adopting the LTS
model, that
is not true for any other Pulsar client SDK, officially supported by the
Pulsar
PMC.

This leaves all the non-Java client SDKs with different release cadences,
versioning and there is no support policy stated.


## Goal

The goal of this proposal is to align the support window for non-Java
client
SDKs to the same LTS model introduced in PIP-175.

The interested clients are:
 * C++ https://github.com/apache/pulsar-client-cpp
 * Python https://github.com/apache/pulsar-client-python
 * Go https://github.com/apache/pulsar-client-go
 * NodeJS https://github.com/apache/pulsar-client-node
 * .NET https://github.com/apache/pulsar-dotpulsar
 * Reactive https://github.com/apache/pulsar-client-reactive

All the above client libraries should switch to the 4.0 version now, to
mark the
first LTS release, then they will do 5.0 18 months after.

Users of these client SDK should be expecting bug fixes for 24 months and
security for 36 months on the LTS release branches.

This will set a clear expectation for users when deciding on a Pulsar SDK
version to use.


## Changes

All non-Java client SDKs managed by Pulsar PMC, will be starting to follow
the
same LTS release cadence established by Pulsar server releases.

The alignment will be done only in terms of LTS releases. Feature releases
will
be done independently, with no requirement for quarterly feature releases.
Each
client SDK maintainer team (even though there is no formal team, there is
typically a smaller group of committers/PMCs closely following each
language SDK)
will do feature and patch releases as needed.

The only new requirement will be to perform LTS releases every 18 months.

There will be no additional requirement or additional explicit support
window
for client SDKs feature releases.


## Note

Similarly as for Pulsar server LTS releases, the major version digit bump
does
not signify any breaking changes and does not necessarily imply any "big"
new
features are introduced in a release.

The compatibility between client and brokers running in different major
versions
will always be guaranteed, when using the lowest common denominator of
supported features.


---

[1]: PIP-175 https://github.com/apache/pulsar/issues/15966


--
Matteo Merli
<mme...@apache.org>

Reply via email to