FWIW, I prefer that a project (any project, not just Maven) have a documented 
versioning policy that says something like “We use Semantic Versioning [1]. We 
don’t skip version numbers for things someone said a future release might 
contain. We do have guidance that specifies what is guaranteed to be backward 
compatible and what is not. That guidance is …”.

That said, a release manager is pretty much always free to do what they choose. 
It is up to the PMC to accept or reject a release based on whatever criteria 
the PMC has decided upon. 

In the end though, I am going to support those who are doing the hard work.

Ralph

[1] https://semver.org/

> On Apr 20, 2021, at 11:12 AM, Romain Manni-Bucau <rmannibu...@gmail.com> 
> wrote:
> 
> Well, i'd like we close this topic by an action and not let it die if
> possible.
> That said, as mentionned originally, what I want we write and publish is
> what we guarantee.
> I tried to write what i'd like to see/would expect as an user but if the
> agreement is that there will be no guarantee i'm fine with that too - would
> be happy to have some help on the wording for such a statement though.
> This kind of statement also solves the issue and would close this thread
> for me.
> 
> I like the idea of Benjamin of listing support companies but I think it is
> worth another page maybe (linked from the previous one/history page Hervé
> mentionned).
> 
> Would this kind of solution work for everybody? To be concrete:
> 
> 1. we write on history page that there is no guarantee of version for a
> security fix (Ex: if the fix requires a new feature it will likely not hit
> a patch release but a minor one using semver semantic)
> 2. we create a support page
> 
> Wdyt?
> 
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance>
> 
> 
> Le mar. 20 avr. 2021 à 20:03, Benjamin Marwell <bmarw...@apache.org> a
> écrit :
> 
>> I tend to agree to Robert, although I find your idea appealing and do
>> understand the motivation.
>> 
>> If you look at some Eclipse projects, they also refer you to companies like
>> IBM if you want anything beyond [1].
>> 
>> Ben
>> 
>> [1]: e.g.
>> https://adoptopenjdk.net/support.html
>> 
>> On Tue, 20 Apr 2021, 19:55 Robert Scholte, <rfscho...@apache.org> wrote:
>> 
>>> Romain,
>>> 
>>> I still don't like this approach.
>>> 
>>> What you're asking tend to look like contracts and SLA's and as long as
>>> we're maintaining Maven with a very small group of volunteers and aren't
>>> backed full time by some company we shouldn't do this.
>>> If there are companies that use Maven and want this kind of commitment,
>> we
>>> need to start a different discussion.
>>> E.g. could/should I (or any other Maven developer) start to offer Maven
>>> Support contracts and under what conditions?
>>> 
>>> Keep in mind that you are the only that keeps pushing this topic.
>>> I noticed that it frustrates some and that it they loose their motivation
>>> to work on Maven.
>>> Please reconsider if it is still worth the discussion or that you can
>>> solve it for yourself.
>>> 
>>> thanks,
>>> Robert
>>> On 19-4-2021 20:05:53, Romain Manni-Bucau <rmannibu...@gmail.com> wrote:
>>> Le lun. 19 avr. 2021 à 17:20, Benjamin Marwell a
>>> écrit :
>>> 
>>>>> Do we write 3.6 and 4 are active and maintained branches currently or
>>>> do we
>>>>> drop 3.x with first 4.x release?
>>>> 
>>>> Dropping 3.x with the first 4.x release would not make sense from the
>>>> point you presented earlier.
>>>> I'd drop 3.x as soon as we reach 4.1.0.
>>>> 
>>> 
>>> I can agree but it also means we define what is 4.1.0 and since we "jump"
>>> versions it will require us to better respect what we plan (I think it is
>>> very good, don't take it wrong).
>>> 
>>> 
>>>> 
>>>>> maintenance branches on demands
>>>> My vote would be to cherry pick security fixes for the previous minor
>>>> version.
>>>> E.g. if we release 4.0.1, also release a 3.8.2 (assuming the current
>>>> latest versions are 4.0.0. and 3.8.1).
>>>> 
>>>> I mean, we can try this for a single release and see if we like it.
>>>> If not, we can still drop this again and revert back to "on demand"
>>>> maintenance branches.
>>>> 
>>>> Backporting features does not make sense (imo) how maven treats
>> releases.
>>>> 
>>> 
>>> I think it is the whole point: what when we fix a security issue by a new
>>> feature -> "does not make sense" (quoting your words but that's what was
>>> the outcome for 3.8.1) and it is exactly the issue I face and I want we
>>> fix: no predictability on stable maven versions with a minimal
>> maintenance
>>> "guaranteed" (no security issue opened in CVE databases).
>>> So I think we either write we backport the security fixes in last 2
>>> maintained branches with some duration (we can align on java LTS duration
>>> for example which should be close to our major breaking changes) or we
>>> write we don't care and only maintain the last release branch and it is
>> the
>>> only one guaranteed to get fixes (which kind of means there will be no
>>> anticipation of version but it is known upfront).
>>> Indeed I'm not a fan of such "you will see" policies but it clarifies the
>>> point which is my main blocker at the moment at least we can justify our
>>> last behavior.
>>> This is really the answer I'm after: explicit what we do and continue or
>>> make us more rigorous in the future.
>>> 
>>> That said I note the "we can still revert back" point which is surely a
>>> very good one so idea can be to write "we will do xxxx" and add a banner
>> on
>>> top saying "experimental policy until XXXX" (for example for a year) and
>> we
>>> can change the policy (and update the deadline) within this duration if
>> it
>>> does not fit. This would enable us to test and validate the policy with
>> an
>>> error right and let the user know it upfront.
>>> 
>>> So proposal can be:
>>> 
>>> [Experimental policy until June 2022]
>>> 1. We maintain two major releases, ie 3.x and 4.x as of today (no minor
>> in
>>> particular, just the highest one)
>>> 2. We maintain versions and notify the EOL 3 years before it is reached
>> (so
>>> if we want to EOL v3 in 2025 we will notify users in 2022)
>>> 3. We backport and release security fixes (new feature or not) in all
>>> maintained branches
>>> 
>>> Wdyt?
>>> 
>>> 
>>>> 
>>>> Am So., 18. Apr. 2021 um 22:45 Uhr schrieb Romain Manni-Bucau
>>>> :
>>>>> 
>>>>> Hi all,
>>>>> 
>>>>> Back on this topic - which prepares v4 releases too btw.
>>>>> 
>>>>> What do we finally write?
>>>>> 
>>>>> That maven will always fix the latest (stable) version and can
>> release
>>>>> maintenance branches on demands (lazily)?
>>>>> 
>>>>> Do we write 3.6 and 4 are active and maintained branches currently or
>>> do
>>>> we
>>>>> drop 3.x with first 4.x release?
>>>>> 
>>>>> Indeed I'd like the 2 branches option but I am fine with whatever
>>> policy
>>>>> while written and clear for end users upfront. I'd love we solve that
>>>>> before next release if possible cause it always create pointless work
>>> due
>>>>> to the blurry exchanges on this topic over our website and the
>> net/mail
>>>>> archives.
>>>>> 
>>>>> 
>>>>> Le lun. 5 avr. 2021 à 19:51, Romain Manni-Bucau
>>>> a
>>>>> écrit :
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Le lun. 5 avr. 2021 à 17:42, Ralph Goers
>>>> a
>>>>>> écrit :
>>>>>> 
>>>>>>> I don’t understand the point. The very next version of Maven did
>> get
>>>> the
>>>>>>> security fix. Just because the release manager decided to follow a
>>>> peculiar
>>>>>>> version numbering practice unique to Maven doesn’t mean there is a
>>>> problem.
>>>>>>> 
>>>>>> 
>>>>>> This had been an issue only because the versioning policy of maven
>> is
>>>>>> undefined.
>>>>>> If defined it is perfectly fine for me.
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> I don’t know what you mean by random, nor do I know what you mean
>>> by a
>>>>>>> stability statement. AFAIK Maven has been very stable from the 2.x
>>>> versions
>>>>>>> through the 3.x versions. In some ways too stable, which is why
>>>> introducing
>>>>>>> new concepts that have been wanted for years is so hard.
>>>>>>> 
>>>>>> 
>>>>>> Last statements tend to mean that once 4.x will be there, 3.x will
>> be
>>>>>> forgotten and no more maintained.
>>>>>> Since it is a breaking change and if you picked 3.x today it is a
>> big
>>>> deal
>>>>>> since you have no guarantee you can upgrade without a lot of
>>>> investment and
>>>>>> get security fixes when needed by just upgrading (and potentially
>>>> tuning a
>>>>>> bit the conf but not by rewriting the poms for ex).
>>>>>> 
>>>>>> For 2.x -> 3.x time, the 2.x was maintained some years.
>>>>>> This is very close to the LTS concept, and this is mainly this kind
>>> of
>>>>>> statement I'm trying to get to let projects plan properly and not
>>> have
>>>>>> maven on their road too easily.
>>>>>> If properly defined it will not impact much maven dev but can save
>> a
>>>> lot
>>>>>> of time for enterprises and enable them to properly setup their
>>>> projects in
>>>>>> time.
>>>>>> 
>>>>>> So overall the definition points are still the same:
>>>>>> 
>>>>>> 1. which versions are maintained (ie can get security fixes - new
>>>> features
>>>>>> are not required to be in the box here)
>>>>>> 2. for how long
>>>>>> 3. what does mean version (major.minor.*, major.* for ex) in 1.
>>>>>> 
>>>>>> "3.x will be supported for 3 more years when 4.x is out and
>>> maintained
>>>>>> major versions are guaranteed to get security fixes" is a kind of
>>>> statement
>>>>>> which solves that - we can also use N=current and N+1 in the
>>> statement
>>>> to
>>>>>> not stick it to 3 and 4.
>>>>>> "4.x is the current released branch, other branch will never be
>>>> released
>>>>>> anymore" does not work for me for example IMHO (but we can put it
>> on
>>>> vote
>>>>>> if that's the community desire).
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> FWIW, my employer’s repository manager still uses http since it is
>>>> behind
>>>>>>> a VPN. After trying 3.8.1 I found I had to specify mirrors for all
>>> the
>>>>>>> repos even though they are not defined in pom’s. Apparently the
>> fix
>>>> also
>>>>>>> affects repositories defined in settings.xml.
>>>>>>> 
>>>>>> 
>>>>>> Yes because it is a mirror and wildcard one.
>>>>>> Using a custom global settings - to override default one - is a
>>>> solution
>>>>>> if you know all http repositories you want to force to be blocked
>>> (can
>>>> be
>>>>>> hard since you never know all of them by definition and mirroring
>>> does
>>>> not
>>>>>> support custom patterns but can be a quick workaround to upgrade
>>>> without
>>>>>> blocking builds).
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> Ralph
>>>>>>> 
>>>>>>>> On Apr 5, 2021, at 12:28 AM, Romain Manni-Bucau
>>>> rmannibu...@gmail.com>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Hmm, general/common asf way of doing is to move forward until
>>> users
>>>> ask
>>>>>>>> (and if so any branch is patched while a pr is done).
>>>>>>>> If maven does not follow that practise it cant say "last version
>>>> will
>>>>>>> get
>>>>>>>> the security fix" too because it means "we dont care of users,
>> to
>>>> get
>>>>>>> the
>>>>>>>> cve fix you will have to rewrite your build".
>>>>>>>> So at least a major stability statement is required IMO with
>> some
>>>> lts
>>>>>>>> statement and eol on majors.
>>>>>>>> Without that using maven sounds random for projects, no?
>>>>>>>> 
>>>>>>>> Le dim. 4 avr. 2021 à 22:13, Bernd Eckenfels
>>>> e...@zusammenkunft.net> a
>>>>>>>> écrit :
>>>>>>>> 
>>>>>>>>> I agree, maven does not need to concern itself with branches as
>>>> long
>>>>>>> as it
>>>>>>>>> stays fairly forward drop-in compatible.
>>>>>>>>> 
>>>>>>>>> Having said that, things like changing the policy for handling
>>> http
>>>>>>> might
>>>>>>>>> not be that drop-in, but on the other hand it’s just a config
>>>> option
>>>>>>> and
>>>>>>>>> does not require complicated (plugin) dependency updates.
>>>>>>>>> 
>>>>>>>>> I do wonder if the version number should better reflect such
>>>>>>> incompatible
>>>>>>>>> requirement changes. (And if somebody really wants to provide
>>>> security
>>>>>>>>> fixes for those incompatible older branches why not, but I
>> don’t
>>>> think
>>>>>>> you
>>>>>>>>> can require them from a project which does not offer them by
>>>> themself).
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> http://bernd.eckenfels.net
>>>>>>>>> ________________________________
>>>>>>>>> Von: Ralph Goers
>>>>>>>>> Gesendet: Sunday, April 4, 2021 9:55:50 PM
>>>>>>>>> An: Maven Developers List
>>>>>>>>> Betreff: Re: Security/Versioning policy proposal
>>>>>>>>> 
>>>>>>>>> More than likely you will get whatever the next version number
>>>> happens
>>>>>>> to
>>>>>>>>> be. I can’t think of a case where Maven needed to go back and
>>>> patch a
>>>>>>> prior
>>>>>>>>> release. That could happen however, if Maven was modified to
>>>> require
>>>>>>> Java
>>>>>>>>> 11 to run and a security fix had to be applied to the last
>>> version
>>>>>>>>> supporting Java 8.
>>>>>>>>> 
>>>>>>>>> Ralph
>>>>>>>>> 
>>>>>>>>>> On Apr 4, 2021, at 6:25 AM, Romain Manni-Bucau
>>>> rmannibu...@gmail.com
>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Le dim. 4 avr. 2021 à 14:10, Robert Scholte
>>>> a
>>>>>>>>> écrit :
>>>>>>>>>> 
>>>>>>>>>>> To me all releases can contain security fixes.
>>>>>>>>>>> Depending on the risk of the CVE we can decide to do a
>> release
>>>> with
>>>>>>> only
>>>>>>>>>>> those fixes (see Maven 3.0.5 and 3.8.1)
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> I get that but it does not help users to pick versions and to
>>> get
>>>> any
>>>>>>>>>> stability in their build - which is the goal of this thread.
>>>>>>>>>> Since you rejected a 3.6.4 for last CVE hitting us I have to
>>>> admit I
>>>>>>>>> have a
>>>>>>>>>> hard time to formalize it.
>>>>>>>>>> Best I come up is "we'll do what we want" which is hopefully
>>> just
>>>> a
>>>>>>>>>> complete misinterpretation of what you mean but hope shows how
>>>>>>> clueless I
>>>>>>>>>> am with such a statement at the moment.
>>>>>>>>>> Can you try to refine it please?
>>>>>>>>>> 
>>>>>>>>>> Concretely, today I'm starting with a 3.8.1, what am I
>> expecting
>>>> to
>>>>>>> use
>>>>>>>>> in
>>>>>>>>>> 5 years for this project trying to get security fixes and
>> being
>>>> stable
>>>>>>>>> (ie
>>>>>>>>>> 4.x is assumed excluded?)?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> Robert
>>>>>>>>>>> 
>>>>>>>>>>> On 4-4-2021 12:14:39, Romain Manni-Bucau
>>>>>>> wrote:
>>>>>>>>>>> Le dim. 4 avr. 2021 à 12:09, Robert Scholte a écrit :
>>>>>>>>>>> 
>>>>>>>>>>>> I doubt we can or should make any promises, only intentions.
>>>>>>>>>>>> If we would have it, I wonder if it cover our choice to skip
>>>> 3.7.0.
>>>>>>>>>>>> To me we need to keep that flexibility.
>>>>>>>>>>>> 
>>>>>>>>>>>> I want to reverse the approach: what could users expect as
>>>>>>> differences
>>>>>>>>>>>> between version x and y.
>>>>>>>>>>>> 
>>>>>>>>>>>> For Maven shouldn't be more complex than:
>>>>>>>>>>>> bugfix release-change should be safe "just replace" release
>>> with
>>>>>>>>> bugfixes
>>>>>>>>>>>> and internal improvements.
>>>>>>>>>>>> minor release-change should represent relevant new features
>> or
>>>> (as
>>>>>>> we
>>>>>>>>> saw
>>>>>>>>>>>> for 3.8.x) possible breaking builds that can be fixed with
>>>>>>>>> configuration.
>>>>>>>>>>>> major release-change represents changes to the architecture
>>> that
>>>>>>> might
>>>>>>>>>>>> change the behavior.
>>>>>>>>>>>> as far as I know this defends all Maven releases up until
>> now.
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> Does not cover the last release - and is actually the issue
>> I'm
>>>>>>>>> suffering
>>>>>>>>>>> from right now and why i'd like we cover this case: security
>>>> fixes.
>>>>>>> As
>>>>>>>>> of
>>>>>>>>>>> today it is a mix between patch (bugfix) and minor lines
>> AFAIK
>>>> but
>>>>>>> I'd
>>>>>>>>> like
>>>>>>>>>>> we explicit it (even just saying on each line "can include
>>>>>>> bugfixes").
>>>>>>>>>>> Said differently: the reverse approach you mention only cover
>>> the
>>>>>>>>> feature
>>>>>>>>>>> evolution but not the most important for versioning policy:
>> the
>>>>>>> security
>>>>>>>>>>> policy which is the one which hurt right now.
>>>>>>>>>>> As an user, I want to be able to anticipate the versions i
>> can
>>>> need
>>>>>>>>> staying
>>>>>>>>>>> as much as possible on a stable version (original version)
>> but
>>>>>>>>> upgrading to
>>>>>>>>>>> get security fixes.
>>>>>>>>>>> If it is fine for you to mention lines 1 and 2 can include
>>>> security
>>>>>>>>> fixes
>>>>>>>>>>> i'd be to add this paragraph on the history page maybe?
>>>>>>>>>>> 
>>>>>>>>>>> wdyt?
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> In case of plugins: the major represents the minimal
>> required
>>>>>>> version
>>>>>>>>> of
>>>>>>>>>>>> Maven.
>>>>>>>>>>>> 
>>>>>>>>>>>> Robert
>>>>>>>>>>>> On 4-4-2021 11:28:30, Romain Manni-Bucau wrote:
>>>>>>>>>>>> Hi Elliotte,
>>>>>>>>>>>> 
>>>>>>>>>>>> My goal is to write what we can promise and users can rely
>> on
>>> to
>>>>>>> work.
>>>>>>>>>>>> If we can only promise any major release will get all
>> security
>>>> fixes
>>>>>>>>>>>> whatever are the minor/patch versions, be it.
>>>>>>>>>>>> I just want what we do to be explicit.
>>>>>>>>>>>> 
>>>>>>>>>>>> Hervé proposed to reference history page of website, it can
>>> be a
>>>>>>> good
>>>>>>>>>>> start
>>>>>>>>>>>> with one or two more sentences to solve that.
>>>>>>>>>>>> 
>>>>>>>>>>>> Le sam. 3 avr. 2021 à 23:50, Elliotte Rusty Harold a
>>>>>>>>>>>> écrit :
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, Apr 2, 2021 at 4:21 PM Romain Manni-Bucau
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> What about starting from something like
>>>>>>>>>>>>>> http://tomee.apache.org/security/security.html for our
>>>> versioning
>>>>>>>>>>>>> policy.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Goal is really to let user plan their versioning policy
>> and
>>>> ensure
>>>>>>>>>>>> there
>>>>>>>>>>>>> is
>>>>>>>>>>>>>> no big surprises in the needed upgrades to have bugfixes.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> TBH I don't think we have enough developer time and
>>> commitment
>>>> to
>>>>>>>>>>> promise
>>>>>>>>>>>>> this.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Elliotte Rusty Harold
>>>>>>>>>>>>> elh...@ibiblio.org
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>> 
>>> ---------------------------------------------------------------------
>>>>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>> 
>>>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>> 
>>>> 
>>> 
>> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to