Hello community,

I want to discuss the option of providing milestone (i.e. version-M1,
version-M2) releases on a semi frequent (top of my head would be
approximately monthly and/or once enough changes get merged into main but
of course open to discuss) basis.

The context behind this is it was raised elsewhere[1] that full releases
are not going to be as frequent as the community expects (I personally
don't fully agree with this, I think that release cadence can change over
time especially if more people volunteer as a release manager and/or voting
for releases but that's another debate). Given where we are at now if we
only expect to have releases at best every half year then I don't think
it's constructive/practical for users to wait such long periods of time to
use merged unreleased features in a more serious manner.

People might raise that nothing needs to be done since we provide snapshots
however we currently have been approached from INFRA that our snapshot
strategy needs to change, tl;dr is that you shouldn't be expecting
SNAPSHOT's to be available for any significant period of time (hence the
suggestion for milestones).

Building locally is of course another option, but given how brittle it is
to build a proper binary of Pekko (as has been shown before with mistakes
done during releases). There is also the fact that Pekko is a multi module
project which means that if you want to test changes to one module that has
to be propagated to other modules you end up having to do manual dependency
management while building locally from source.

Milestone's provide another big advantage which also means validating
changes that are merged into Pekko don't break downstream Pekko modules.
With our current strategy we pin the downstrain Pekko modules to the full
upstream release and this only ever gets updated when a next release occurs
which given what I said earlier would be very infrequent. This leaves a
large span of time where essentially we don't validate that merged upstream
Pekko changes, meaning that we only figure out potential problems all at
once when the next release gets initiated. Instead if we pubish
semi-frequent milestones, we can then update Pekko's downstream modules to
use those milestones as they are released which would let us catch
potential problems sooner.

There are also some details to consider, i.e. do the milestone's binaries
need to be signed or not? If we don't care about signing the milestones, we
can easily publish them from a github action in the same way snapshots are
but with an automatic trigger (i.e. someone pushes a milestone tag). This
is by far the least friction approach since releasing a milestone would
literally be done just by the click of a button, otherwise someone would
need to build, sign and publish locally, which isn't a huge deal rather
just a slight annoyance.

[1] https://lists.apache.org/thread/b57nmyrg5xhgdv3gnbq2o9s6wsqf31q6
-- 

Matthew de Detrich

*Aiven Deutschland GmbH*

Immanuelkirchstraße 26, 10405 Berlin

Amtsgericht Charlottenburg, HRB 209739 B

Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen

*m:* +491603708037

*w:* aiven.io *e:* matthew.dedetr...@aiven.io

Reply via email to