Hi Volkan,

On Tue, 12 Dec 2023 at 13:02, Volkan Yazıcı <vol...@yazi.ci> wrote:
>
> On Tue, Dec 12, 2023 at 11:47 AM Piotr P. Karwasz <piotr.karw...@gmail.com>
> wrote:
>
> >  * we lack a way to classify dependency updates. A concrete example:
> > did the Commons DBCP2 bump to 2.11.0 change anything in
> > `log4j-jdbc-dbcp2`? I don't think so, the artifact compiles with
> > version 2.2.0 of the artifact. We are only stating that
> > `log4j-jdbc-dbcp2` will **also** work with version 2.11.0.
> >
>
> Exactly! Hence, it is clear that this is neither a bug fix, nor a
> deprecation. That is, there is no ambiguity that this goes into a minor
> release.

And here I don't agree. Dependabot upgrades provide **no** benefit to
the generated JAR files. Even the bytecode is exactly the same as
before the upgrade.

What these changes provide is part of our "Secure by default" or
"Up-to-date by default" feature: Log4j artifacts will never freeze our
clients dependencies and will work with the newest versions of the
libraries we depend upon.

If you need to **manually** fix code for the upgrade to work (as you
did for Jackson 2.16.0), then you can change the automatically
generated entry from "fixed/upgraded" to "changed".

> > I don't think this warrants a minor version bump.
> >
>
> This is what I am trying to eliminate Piotr: opinions. When a person starts
> thinking *"Shall this be a patch or minor release?"*, the outcome is
> inherently subjective. We cannot completely get rid of subjective
> assessment, but assist it with guardrails.

These guardrails seem to follow the easy path: let's just do minor
releases, so nobody will tell us we are wrong. If you add ".0.0" to
all Google Chrome versions, Chrome will also follow semver to the
letter. It just loses the spirit.

> > The bump to JDK 17 was necessary, very useful for us, but users don't
> > really care what JDK was used for compilation.
>
>
> What? Users, that is, developers using `logging-parent` as their parent
> project, do certainly care about this change. Why wouldn't they? This is
> *not* a simple change. It took us months to bump the compiler in Log4j. I
> think your statement has an incorrect assumption on who the users of
> `logging-parent` are.

Sorry, I was still talking about Log4j. For `logging-parent` users the
requirement to use JDK 17 is a minor change, but `log4j-core` users do
not care what JDK we are using for compilation. Therefore the switch
to JDK 17 for compilation is not reason enough to bump Log4j to
2.23.0.

> I have the impression that you want to classify library updates that don't
> disrupt the user experience as a patch release. If there is nothing urgent
> about them, why do a patch release at all? Isn't the point of a patch
> release is to fix something, urgently? Piggybacking library updates into
> patch releases defeats the purpose of patch releases and makes the line
> between minor and patch releases blur, and that is the crux of our
> disagreement.

I would do a release at all if it only contains changes in the
dependency versions. The only exception I would make is vulnerable
dependencies, **if** we are affected by the vulnerability. If this is
the case feel free to replace "fixed/upgraded" with "changed" in the
changelog.

In case a dependency upgrade does not influence the bytecode (i.e. our
artifacts still work with the old version), I would simply disregard
the upgrade when computing the required version dump.

Piotr

Reply via email to