So what do we do with feature branch merged tickets in this model?  They stay 
on 5.0-target after close and move to 5.0.0 when the epic is merged and closes?

> On May 18, 2023, at 9:33 AM, Josh McKenzie <jmcken...@apache.org> wrote:
> 
>> My mental model, though, is that anything that’s not a concrete release 
>> number is a target version. Which is where 5.0 goes wrong - it’s not a 
>> release so it should be a target, but for some reason we use it as a 
>> placeholder to park work arriving in 5.0.0.
> Ahhhhhhhhhhh.
> 
>> So tickets go to 5.0-target if they target 5.0, and to 5.0.0 once they are 
>> resolved (with additional labels as necessary)
> Adding -target would definitely make things more clear. If we moved to "5.0 
> == unreleased, always move to something on commit" then you still have to 
> find some external source to figure out what's going on w/our versioning.
> 
> I like 5.0-target. Easy to query for "FixVersion = 5.0-target AND type != 
> 'Bug'" to find stragglers after GA is cut to move to 5.1-target.
> 
> Still have the "update children FixVersion for feature branch when branch is 
> merged" bit but that's not so onerous.
> 
> On Thu, May 18, 2023, at 10:28 AM, Benedict wrote:
>> 
>> The .x approach only breaks down for unreleased majors, for which all of our 
>> intuitions breakdown and we rehash it every year.
>> 
>> My mental model, though, is that anything that’s not a concrete release 
>> number is a target version. Which is where 5.0 goes wrong - it’s not a 
>> release so it should be a target, but for some reason we use it as a 
>> placeholder to park work arriving in 5.0.0.
>> 
>> If we instead use 5.0.0 for this purpose, we just need to get 5.0-alpha1 
>> labels added when those releases are cut.
>> 
>> Then I propose we break the confusion in both directions by scrapping 5.0 
>> entirely and introducing 5.0-target.
>> 
>> So tickets go to 5.0-target if they target 5.0, and to 5.0.0 once they are 
>> resolved (with additional labels as necessary)
>> 
>> Simples?
>> 
>>> On 18 May 2023, at 15:21, Josh McKenzie <jmcken...@apache.org> wrote:
>>> 
>>>> My personal view is that 5.0 should not be used for any resolved tickets - 
>>>> they should go to 5.0-alpha1, since this is the correct release for them. 
>>>> 5.0 can then be the target version, which makes more sense given it isn’t 
>>>> a concrete release.
>>> Well now you're just opening Pandora's box about our strange idioms with 
>>> FixVersion usage. ;)
>>> 
>>>> every ticket targeting 5.0 could use fixVersion 5.0.x, since it is pretty 
>>>> clear what this means.
>>> I think this diverges from our current paradigm where "5.x" == next feature 
>>> release, "5.0.x" == next patch release (i.e. bugfix only). Not to say it's 
>>> bad, just an adjustment... which if we're open to adjustment...
>>> 
>>> I'm receptive to transitioning the discussion to that either on this thread 
>>> or another; IMO we remain in a strange and convoluted place with our 
>>> FixVersioning. My understanding of our current practice:
>>> .x is used to denote target version. For example: 5.x, 5.0.x, 5.1.x, 4.1.x
>>> When a ticket is committed, the FixVersion is transitioned to resolve the X 
>>> to the next unreleased version in which it'll release
>>> Weird Things are done to make this work for the release process and release 
>>> manager on feature releases (alpha, beta, etc)
>>> There's no clear fit for feature branch tickets in the above schema
>>> 
>>> And if I take what I think you're proposing here and extrapolate it out:
>>> .0 is used to denote target version. For example: 5.0. 5.0.0. 5.1.0. 4.1.0
>>> This appears to break down for patch releases: we _do_ release .0 versions 
>>> of them rather than alpha/beta/etc, so a ticket targeting 4.1.0 would 
>>> initially mean 2 different things based on resolved vs. unresolved status 
>>> (resolved == in release, unresolved == targeting next unreleased) and that 
>>> distinction would disappear on resolution (i.e. resolved + 4.1.0 would no 
>>> longer definitively mean "contained in .0 release")
>>> When a release is cut, we bulk update FixVersion ending in .0 to the 
>>> release version in which they're contained (not clear how to disambiguate 
>>> the things from the above bullet point)
>>> For feature releases, .0 will transition to -alpha1
>>> One possible solution would be to just no longer release a .0 version of 
>>> things and reserve .0 to indicate "parked". I don't particularly like that 
>>> but it's not the worst.
>>> 
>>> Another possible solution would be to just scrap this approach entirely and 
>>> go with:
>>> FixVersion on unreleased _and still advocated for tickets_ always targets 
>>> the next unreleased version. For other tickets where nobody is advocating 
>>> for their work / inclusion, we either FixVersion "Backlog" or close as 
>>> "Later"
>>> When a release is cut, roll all unresolved tickets w/that FixVersion to the 
>>> next unreleased FixVersion
>>> When we're gearing up to a release, we can do a broad pass on everything 
>>> that's unreleased w/the next feature releases FixVersion and move tickets 
>>> that are desirable but not blockers to the next unreleased FixVersion 
>>> (patch for bug, minor/major for improvements or new features)
>>> CEP tickets target the same FixVersion (i.e. next unreleased Feature 
>>> release) as their parents. When the parent epic gets a new FixVersion on 
>>> resolution, all children get that FixVersion (i.e. when we merge the CEP 
>>> and update its FixVersion, we bulk update all children tickets)
>>> 
>>> On Thu, May 18, 2023, at 9:08 AM, Benedict wrote:
>>>> 
>>>> I don’t think we should over complicate this with special CEP release 
>>>> targets. If we do, they shouldn’t be versioned.
>>>> 
>>>> My personal view is that 5.0 should not be used for any resolved tickets - 
>>>> they should go to 5.0-alpha1, since this is the correct release for them. 
>>>> 5.0 can then be the target version, which makes more sense given it isn’t 
>>>> a concrete release.
>>>> 
>>>> But, in lieu of that, every ticket targeting 5.0 could use fixVersion 
>>>> 5.0.x, since it is pretty clear what this means. Some tickets that don’t 
>>>> hit 5.0.0 can then be postponed to a later version, but it’s not like this 
>>>> is burdensome. Anything marked feature/improvement and 5.0.x gets bumped 
>>>> to 5.1.x.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> On 18 May 2023, at 13:58, Josh McKenzie <jmcken...@apache.org> wrote:
>>>>> 
>>>>> CEP-N seems like a good compromise. NextMajorRelease bumps into our 
>>>>> interchangeable use of "Major" and "Minor" from a semver perspective and 
>>>>> could get confusing. Suppose we could do NextFeatureRelease, but at that 
>>>>> point why not just have it linked to the CEP and have the epic set.
>>>>> 
>>>>> On Thu, May 18, 2023, at 12:26 AM, Caleb Rackliffe wrote:
>>>>>> ...otherwise I'm fine w/ just the CEP name, like "CEP-7" for SAI, etc.
>>>>>> 
>>>>>> On Wed, May 17, 2023 at 11:24 PM Caleb Rackliffe 
>>>>>> <calebrackli...@gmail.com <mailto:calebrackli...@gmail.com>> wrote:
>>>>>> So when a CEP slips, do we have to create a 5.1-cep-N? Could we just 
>>>>>> have a version that's "NextMajorRelease" or something like that? It 
>>>>>> should still be pretty easy to bulk replace if we have something else to 
>>>>>> filter on, like belonging to an epic?
>>>>>> 
>>>>>> On Wed, May 17, 2023 at 6:42 PM Mick Semb Wever <m...@apache.org 
>>>>>> <mailto:m...@apache.org>> wrote:
>>>>>> 
>>>>>> 
>>>>>> On Tue, 16 May 2023 at 13:02, J. D. Jordan <jeremiah.jor...@gmail.com 
>>>>>> <mailto:jeremiah.jor...@gmail.com>> wrote:
>>>>>> Process question/discussion. Should tickets that are merged to CEP 
>>>>>> feature branches, like  
>>>>>> https://issues.apache.org/jira/browse/CASSANDRA-18204, have a fixver of 
>>>>>> 5.0 on them After merging to the feature branch?
>>>>>> 
>>>>>> For the SAI CEP which is also using the feature branch method the 
>>>>>> "reviewed and merged to feature branch" tickets seem to be given a 
>>>>>> version of NA.
>>>>>> 
>>>>>> Not sure that's the best “waiting for cep to merge” version either?  But 
>>>>>> it seems better than putting 5.0 on them to me.
>>>>>> 
>>>>>> Why I’m not keen on 5.0 is because if we cut the release today those 
>>>>>> tickets would not be there.
>>>>>> 
>>>>>> What do other people think?  Is there a better version designation we 
>>>>>> can use?
>>>>>> 
>>>>>> On a different project I have in the past made a “version number” in 
>>>>>> JIRA for each long running feature branch. Tickets merged to the feature 
>>>>>> branch got the epic ticket number as their version, and then it got 
>>>>>> updated to the “real” version when the feature branch was merged to 
>>>>>> trunk.
>>>>>> 
>>>>>> 
>>>>>> Thanks for raising the thread, I remember there was some confusion early 
>>>>>> wrt features branches too.
>>>>>> 
>>>>>> To rehash, for everything currently resolved in trunk 5.0 is the correct 
>>>>>> fixVersion.  (And there should be no unresolved issues today with 5.0 
>>>>>> fixVersion, they should be 5.x)
>>>>>> 
>>>>>> When alpha1 is cut, then the 5.0-alpha1 fixVersion is created and 
>>>>>> everything with 5.0 also gets  5.0-alpha1. At the same time 5.0-alpha2, 
>>>>>> 5.0-beta, 5.0-rc, 5.0.0 fixVersions are created. Here both 5.0-beta and 
>>>>>> 5.0-rc are blocking placeholder fixVersions: no resolved issues are left 
>>>>>> with this fixVersion the same as the .x placeholder fixVersions. The 
>>>>>> 5.0.0 is also used as a blocking version, though it is also an eventual 
>>>>>> fixVersion for resolved tickets. Also note, all tickets up to and 
>>>>>> including 5.0.0 will also have the 5.0 fixVersion.
>>>>>> 
>>>>>> A particular reason for doing things the way they are is to make it easy 
>>>>>> for the release manager to bulk correct fixVersions, at release time or 
>>>>>> even later, i.e. without having to read the ticket or go talk to authors 
>>>>>> or painstakingly crawl CHANGES.txt.
>>>>>> 
>>>>>> For feature branches my suggestion is that we create a fixVersion for 
>>>>>> each of them, e.g. 5.0-cep-15
>>>>>> Yup, that's your suggestion Jeremiah (I wrote this up on the plane 
>>>>>> before I got to read your post properly).
>>>>>> 
>>>>>> (As you say) This then makes it easy to see where the code is (or what 
>>>>>> the patch is currently being based on). And when the feature branch is 
>>>>>> merged then it is easy to bulk replace it with trunk's fixVersion, e.g.  
>>>>>> 5.0-cep-15 with 5.0
>>>>>> 
>>>>>> The NA fixVersion was introduced for the other repositories, e.g. 
>>>>>> website updates.

Reply via email to