I agree with Ralph's view. It is not just the *view* in itself that I find
appealing, but the (practically) deterministic nature of it. If one would
closely look at Robert's and/or Piotr's explanation of patch-vs-minor
strategy, it is pretty subjective, which is exactly the variable I am
aiming to eliminate. OTOH, Ralph's (or mine) is pretty straight forward:

Will the next release *only* contain deprecations and/or bug fixes? Then it
is a patch release. For all other cases, it is a minor release. [Assuming
we all know and agree on what necessitates a major release.]


I propose sticking to this versioning scheme for all Logging Services
releases and documenting it. Objections? [Or, if I may say,] strong
objections? 😅

On Mon, Dec 11, 2023 at 10:44 PM Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> The rule for this seems extremely simple to me.  The changelog uses
>
> <simpleType name="changeType”>
>         <restriction base="string”>
>                 <enumeration value="added”/>
>                 <enumeration value="changed”/>
>                 <enumeration value="deprecated”/>
>                 <enumeration value="removed”/>
>                 <enumeration value="fixed”/>
>         </restriction>
> </simpleType>
>
> If every entry is deprecated or fixed it is a patch release. Everything
> else is a minor release. Yes, I realize that you can add, change or remove
> things without impacting compatibility but whether it is a patch or minor
> release isn’t about compatibility.
>
> Ralph
>
> > On Dec 11, 2023, at 1:43 PM, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >
> > IMO:
> >
> > A new protected or public anything needs a minor version bump. I think
> that
> > follows sem ver.
> >
> > Gary
> >
> > On Mon, Dec 11, 2023, 1:56 PM Piotr P. Karwasz <piotr.karw...@gmail.com>
> > wrote:
> >
> >> Hi Volkan,
> >>
> >> On Mon, 11 Dec 2023 at 10:26, Volkan Yazıcı <vol...@yazi.ci> wrote:
> >>> *Given a version number `MAJOR.MINOR.PATCH`, increment the:*
> >>>
> >>>
> >>>   - *MAJOR version when you make incompatible API changes*
> >>>      - *MINOR version when you add functionality in a backward
> >> compatible
> >>>      manner*
> >>>      - *PATCH version when you make backward compatible bug fixes*
> >>>
> >>> I think we all agree on what warrants a major version bump. The
> >> definition
> >>> of what constitutes an API, etc. are all open to interpretation, but we
> >>> have a common sense of it in the PMC.
> >>
> >> I think we can split this into a:
> >>
> >> * minimal version dump, dictated by technical reasons (changes in the
> >> methods exposed to the public),
> >> * and a component that can not be automatically detected, which is
> >> due to change of behavior. E.g. I can modify the behavior of the `%i`
> >> converter without touching the public API.
> >>
> >>> We mostly have a problem whether the next release needs a minor or
> patch
> >>> version bump. I propose to refine the official semantics as follows:
> >>>
> >>> Are we making a release to *only* address a set of particular issues?
> >> That
> >>> is, does the following hold?
> >>>
> >>> [next release] = [last release] + [fix1] + [fix2] + ... + [fixN]
> >>>
> >>> If so, this needs a patch version bump. Otherwise, this is a minor
> >> version
> >>> bump.
> >>
> >> What I am having a problem with is the default type of change:
> >>
> >> * for me every release should be a **patch** release, unless there
> >> are reasons to publish a minor release. For example the next Log4j
> >> release should be 2.22.1. This is the old strategy used by Log4j;
> >> * recently this strategy shifted to: every release is a **minor**
> >> release, unless someone justifies that it can be a patch release. All
> >> our repos are currently using a snapshot version that is a minor
> >> version bump from the previous release.
> >>
> >> 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.
> >>
> >> The concrete example of `logging-parent` is hard to discuss, since it
> >> is not written in Java, but a mix of Maven plugins, bash scripts and
> >> Github action workflows. Your fix of the problem we were having with
> >> `META-INF/services/` is pretty nice, but for me it constitutes a bug
> >> fix, not a new feature children project can rely upon. The value of
> >> the contribution does not depend on the version bump it generates,
> >> patch contributions require usually more effort.
> >>
> >> On the other hand if we consider that the `bnd:jar` execution
> >> disappeared from `logging-parent`, this might be considered a major
> >> version change.
> >>
> >> Piotr
> >>
>
>

Reply via email to