On Mon, 11 Dec 2023 at 20:33, Volkan Yazıcı <vol...@yazi.ci> wrote:
> > In the end the result (release version number) might be the same, but
> > the burden of proof falls on those advocating for a patch release.
> >
>
> I don't understand what you mean by "the burden of proof falls on those
> advocating for a patch release". Could you elaborate on it, please?

If you were to release Log4j right now from `2.x` what version would
you use? Almost certainly 2.23.0, since:

 * the current snapshot version is 2.23.0-SNAPSHOT,
 * there is a 2.23.0 milestone:
https://github.com/apache/logging-log4j2/milestone/9

The fact that the milestone contains only two patch-level changes is
completely hidden. Either the Release Manager or the PMC members
checking the release would have to go through those issues and prove
that it is a 2.22.1 release.

> As this conversation shows one more time, my main argument is against a
> rule that is too open to interpretation. I prefer to have a rule that has
> practically no room for ambiguity and at the same time makes sense in the
> semver framework.

Ambiguity is natural in the context of semver. We are supposed to
convey a meaning, so we should try to categorize each change properly
and discuss the changes hard to classify.

There is a simple case: if BND says MINOR change, it is usually a
minor change. However a change can always be upgraded due to reasons
besides the public API changes.

Regarding the classification of changes I also tend to look at our doc:

 * if the previous behavior disagreed with the doc, correcting it is a
bug fix (we probably all agree),
 * if we change a previously documented behavior, it is a minor bump
(here we also probably agree),
 * if we change a behavior that was **not** documented (e.g. the
evaluation of lookups in user data ;-), we should discuss about it.

> For the record, do you have a clear definition of your proposal? *"Every
> release should be a patch release"* doesn't really help.

I propose to keep the old strategy: after a release we set the version
number to the next patch release.
Only if we merge a change that requires a minor bump (we can tag
those), we bump the release to the next minor version.

Piotr

PS: Of course the examples for Log4j are a little bit artificial,
since Ralph's PR bumped the release number:
https://github.com/apache/logging-log4j2/pull/2062

Reply via email to