Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions pip/pip-347 Extend LTS release process to client SDKs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# 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.