Sorry, for changing the subject slightly. My understanding from the thread so far (correct me if I am wrong) is that there is at least an agreement on merging Accord and TCM in 5.1. I would like to move tickets to their correct target versions and update the dashboard tomorrow so that we have a clear view on what is needed to bring 5.0 to RC. Anybody has a concern with that?
Le jeu. 2 nov. 2023 à 17:04, Benedict <bened...@apache.org> a écrit : > > Projects *MUST* direct outsiders towards *official releases rather than* > raw source repositories, nightly builds, *snapshots, release candidates, > or any other similar packages*. > > Admittedly, “direct” here is ambiguous, but I think the sentiment that > users should only be invited to use voted releases is reasonable either way. > > On 2 Nov 2023, at 15:59, Josh McKenzie <jmcken...@apache.org> wrote: > > > > My reading of ASF policy is that directing users to CEP preview releases > that are not formally voted upon is not acceptable. The policy you quote > indicates they should be intended only for active participants on dev@ > > I disagree with this interpretation; it'd be good to get some > clarification as I don't see the narrow requirement of "developers on dev@". > This interpretation would actively stifle any project's ability to get > early user input and testing on things that are in-development. The primary > reason I read it differently (aside from the negative implications) is the > following text (emphasis mine): > > Projects *SHOULD make available developer resources to support > individuals actively participating in development* or following the dev > list and thus aware of the conditions placed on unreleased materials. > > For example, a user downloading a snapshot release with the unified > compaction strategy in it to test it against their data set and provide > feedback to engineers working on it on the dev ML or dev slack is very much > someone actively participating in the development. It shouldn't just be > contributors or committers actively working on the code who touch it before > it's merged to trunk should it? > > On Thu, Nov 2, 2023, at 10:16 AM, Benedict wrote: > > > My view is that we wait and see what the CI looks like at that time. > > > My reading of ASF policy is that directing users to CEP preview releases > that are not formally voted upon is not acceptable. The policy you quote > indicates they should be intended only for active participants on dev@, > whereas our explicit intention is to enable them to be advertised to users > at the summit. > > > > > On 2 Nov 2023, at 13:27, Josh McKenzie <jmcken...@apache.org> wrote: > > > > I’m not sure we need any additional mechanisms beyond DISCUSS threads, > polls and lazy consensus? > ... > This likely means at least another DISCUSS thread and lazy consensus if > you want to knowingly go against it, or want to modify or clarify what’s > meant. > ... > It can be chucked out or rewoven at zero cost, but if the norms have taken > hold and are broadly understood in the same way, it won’t change much or at > all, because the actual glue is the norm, not the words, which only serve > to broadcast some formulation of the norm. > > 100% agree on all counts. Hopefully this discussion is useful for other > folks as well. > > So - with the clarification that our agreement on green CI represents a > polled majority consensus of the folks participating on the discussion at > the time but not some kind of hard unbendable obligation, is this something > we want to consider relaxing for TCM and Accord? > > This thread ran long (and got detoured - mea culpa) - the tradeoffs seem > like: > > 1. We merge them without green CI and cut a cassandra-5.1 branch so we > can release an alpha-1 snapshot from that branch. This likely leaves > cassandra-5.1 and trunk in an unstable place w/regards to CI. TCM/Accord > devs can be expected to be pulled into fixing core issues / finalizing the > features and the burden for test stabilization "leaking out" across others > in the community who don't have context on their breakage (see: > CASSANDRA-8099, cassandra-4.0 release, cassandra-4.1 release, now push for > cassandra-5.0 QA stabilization). > 2. Push for green CI on Accord / TCM before merge and alpha > availability, almost certainly delaying their availability to the > community. > 3. Cut a preview / snapshot release from the accord feature branch, > made available to the dev community. We could automate creation / update of > docker images with snapshot releases of all HEAD for trunk and feature > branches. > 4. Some other approach I'm not thinking of / missed > > So as Mick asked earlier in the thread: > > Is anyone up for looking into adding a "preview" qualifier to our release > process? > > > I'm in favor of this. If we cut preview snapshots from trunk and all > feature branches periodically (nightly? weekly?), preferably as docker > images, this satisfies the desire to get these features into the hands of > the dev and user community to test them out and provide feedback to the dev > process while also allowing us to keep a high bar for merge to trunk. > > Referencing the ASF Release Policy: > https://www.apache.org/legal/release-policy.html#release-definition, this > is consistent with the guidance: > > During the process of developing software and preparing a release, various > packages are made available to the development community for testing > purposes. Projects MUST direct outsiders towards official releases rather > than raw source repositories, nightly builds, snapshots, release > candidates, or any other similar packages. Projects SHOULD make available > developer resources to support individuals actively participating in > development or following the dev list and thus aware of the conditions > placed on unreleased materials. > > We direct people to the official downloads on the website and add a > section below that references the latest snapshot releases for CEP-approved > feature branch work in progress + trunk. > > Generically, a release is anything that is published beyond the group that > owns it. For an Apache project, that means any publication outside the > development community, defined as individuals actively participating in > development or following the dev list. > > I think so long as we're clear about them being preview / snapshot > releases of in-development work where we're looking for feedback on the dev > process, as well as clearly directing people to the dev ML and > #cassandra-dev on slack, this would be a pretty big win for the project. > > So - that's my bid. What do others think? > > On Wed, Nov 1, 2023, at 8:11 PM, Benedict wrote: > > > So my view is that the community is strongly built on consensus, so > expressions of sentiment within the community have strong normative weight > even without any specific legislative effect. You shouldn’t knowingly go > against what appears to be a consensus (or even widely-held) view, even if > it has no formal weight. So I’m not sure we need any additional mechanisms > beyond DISCUSS threads, polls and lazy consensus? > > Let’s treat your thread as a POLL for arguments sake: lots of folk voted, > and every vote was positive. So clearly there’s strong endorsement for the > approach, or parts thereof, in some form. Given the goal of consensus in > decision-making, it would not be reasonable to ignore this widely held view > on contributions. This likely means at least another DISCUSS thread and > lazy consensus if you want to knowingly go against it, or want to modify or > clarify what’s meant. This just falls naturally out of how we do things > here I think, and is how we go about a lot of business already. It retains > the agility you were talking about, setting norms cheaply. > > It isn’t however a tightly held policy or legislative cudgel, it’s just > what those who were talking and paying attention at the time agreed. It can > be chucked out or rewoven at zero cost, but if the norms have taken hold > and are broadly understood in the same way, it won’t change much or at all, > because the actual glue is the norm, not the words, which only serve to > broadcast some formulation of the norm. > > > > On 1 Nov 2023, at 23:41, Josh McKenzie <jmcken...@apache.org> wrote: > > > > but binding to the same extent 2 committers reviewing something we later > need to revert is binding. > > To elaborate a bit - what I mean is "it's a bar we apply to help establish > a baseline level of consensus but it's very much a 2-way door". Obviously 2 > committers +1'ing code is a formal agreed upon voting mechanism. > > On Wed, Nov 1, 2023, at 7:26 PM, Josh McKenzie wrote: > > Community voting is also entirely by consensus, there is no such thing as > a simple majority community vote, technical or otherwise. > > Ah hah! You're absolutely correct in that this isn't one of our "blessed" > ways we vote. There's nothing written down about "committers are binding, > simple majority" for any specific category of discussion. > > Are we ok with people creatively applying different ways to vote for > things where there's not otherwise guidance if they feel it helps capture > sentiment and engagement? Obviously the outcome of that isn't binding in > the same way other votes by the pmc are, but binding to the same extent 2 > committers reviewing something we later need to revert is binding. > > I'd rather we have a bunch of committers weigh in if we're talking about > changing import ordering, or Config.java structure, or refactoring out > singletons, or gatekeeping CI - things we've had come up over the years > where we've had a lot of people chime in and we benefit from more than just > "2 committers agree on it" but less than "We need a CEP or pmc vote for > this". > > > On Wed, Nov 1, 2023, at 5:10 PM, Benedict wrote: > > > The project governance document does not list any kind of general purpose > technical change vote. There are only three very specific kinds of > community vote: code contributions, CEP and release votes. Community > voting is also entirely by consensus, there is no such thing as a simple > majority community vote, technical or otherwise. I suggest carefully > re-reading the document we both formulated! > > If it is a technical contribution, as you contest, we only need a normal > technical contribution vote to override it - i.e. two committer +1s. If > that’s how we want to roll with it, I guess we’re not really in > disagreement. > > None of this really fundamentally changes anything. There’s a strong norm > for a commit gate on CI, and nobody is going to go about breaking this norm > willy-nilly. But equally there’s no need to panic and waste all this time > debating hypothetical mechanisms to avoid this supposedly ironclad rule. > > We clearly need to address confusion over governance though. The idea that > agreeing things carefully costs us agility is one I cannot endorse. The > project has leaned heavily into the consensus side of the Apache Way, as > evidenced by our governance document. That doesn’t mean things can’t change > quickly, it just means *before those changes become formal requirements *there > needs to be *broad* consensus, as defined in the governing document. > That’s it. > > The norm existed before the vote, and it exists whether the vote was valid > or not. That is how things evolve on the project, we just formalise them a > little more slowly. > > > On 1 Nov 2023, at 20:07, Josh McKenzie <jmcken...@apache.org> wrote: > > > First off, I appreciate your time and attention on this stuff. Want to be > up front about that since these kinds of discussions can get prickly all > too easily. I'm *at least* as guilty as anyone else about getting my back > up on stuff like this. Figuring out the right things to "harden" as shared > contractual ways we behave and what to leave loose and case-by-case is > going to continue to be a challenge for us as we grow. > > The last thing I personally want is for us to have too many extraneous > rules formalizing things that just serve to slow down peoples' ability to > contribute to the project. The flip side of that - for all of us to work in > a shared space and collectively remain maximally productive, some > individual freedoms (ability to merge a bunch of broken code and/or ninja > in things as we see fit, needing 2 committers' eyes on things, etc) will > have to be given up. > > At it's core the discussion we had was prompted by divergence between > circle and ASF CI and our release process dragging on repeatedly during the > "stabilize ASF CI" phase. The "do we require green ci before merge of > tickets" seems like it came along as an intuitive rider; best I can recall > my thinking was "how else could we have a manageable load to stabilize in > ASF CI if we didn't even require green circle before merging things in", > but we didn't really dig into details; from a re-reading now, that portion > of the discussion was just taken for granted as us being in alignment. > Given it was a codifying a norm and everyone else in the discussion > generally agreed, I don't think I or anyone thought to question it. > > > “Votes on project structure *and governance”*. Governance, per Wikipedia, > is "the way rules, norms and actions are structured and sustained.” > > Bluntly, I'm not that worried about what wikipedia or a dictionary says > about the topic. What I'm worried about here is what *we collectively as > a community* think of as governance. "Do we have green CI pre-merge or > not", *to me personally*, didn't qualify as a governance issue but rather > a technical change. I'm open to being convinced otherwise, that things like > that should qualify for a higher bar of voting, but again, I'm leery of > that slowing down other workflow optimizations, changes, or community-wide > impacting improvements people are making. Or muddying the waters to where > people aren't sure what does or doesn't qualify as governance so they end > up not pursuing things they're interested in improving as they're off-put > by the bureaucratic burden of getting supermajority buy-in from pmc members > who are much harder to get to participate in discussions on the ML compared > to showing up for roll-call. :innocent: > > My understanding of "The Apache Way" is that to move at speed and at > scale, we need to trust each other to do the right thing and know we can > back out if things go awry. So if some folks talk through mutating config > through virtual tables for instance, or folks working on TCM put things up > for review and I don't have cycles, I trust the folks doing that work (the > committers working on it or review it) that I personally just stay out of > it knowing that if things need refining going forward we'll do so. > Different things have a different cost to refine and/or back out, sure, but > in this case it's discussions + wiki articles. Not too painful. > > So in this case here - is there a formal counter to that side of the > discussion you'd want to open now? i.e. the case for merging bodies of work > without green CI, when we do that, how we do that, why we do that? We very > well could have missed a very meaningful and useful scenario that would > have changed the collective conversation since nobody brought it up at the > time. We simple majority committer voted in; we can simple majority > committer vote out if we think this is too constricting a policy or if we > want to add an exception to it right? > > That's the blessing and the curse of decisions made with a lower bar; > lower bar to undo. > > And I suppose secondly - if you disagree on whether something qualifies > for the super majority governance bar vs. the simple majority committer > bar... how do we navigate that? > > On Wed, Nov 1, 2023, at 12:33 PM, Benedict wrote: > > > > Your conceptualisation implies no weight to the decision, as a norm is not > binding? > > > The community voting section mentions only three kinds of decision, and > this was deliberate: code contributions, CEP and releases - the latter of > which non-PMC members are only permitted to veto; their votes do not count > positively[1]. Everything else is a PMC decision. > > > > I think you're arguing that voting to change our bar for merging when it > comes to CI falls under "votes on project structure” > > > “Votes on project structure *and governance”*. Governance, per Wikipedia, > is "the way rules, norms and actions are structured and sustained.” > > > I do not see any ambiguity here. The community side provides no basis for > a vote of this kind, while the PMC side specifically reserves this kind of > decision. But evidently we need to make this clearer. > > > Regarding the legitimacy of questioning this now: I have not come up > against this legislation before. The norm of requiring green CI has been > around for a lot longer than this vote, so nothing much changed until we > started questioning the *specifics* of this legislation. At this point, > the legitimacy of the decision also matters. Clearly there is broad support > for a policy of this kind, but is this specific policy adequate? > > > While I endorse the general sentiment of the policy, I do not endorse a > policy that has no wiggle room. I have made every effort in all of my > policy-making to ensure there are loosely-defined escape hatches for the > community to use, in large part to minimise this kind of legalistic logjam, > which is just wasted cycles. > > > > > On 1 Nov 2023, at 15:31, Josh McKenzie <jmcken...@apache.org> wrote: > > > > That vote thread also did not reach the threshold; it was incorrectly > counted, as committer votes are not binding for procedural changes. I > counted at most 8 PMC +1 votes. > > This piqued my curiosity. > > Link to how we vote: > https://cwiki.apache.org/confluence/display/CASSANDRA/Cassandra+Project+Governance > *STATUS: Ratified 2020/06/25* > Relevant bits here: > > On dev@: > > 1. Discussion / binding votes on releases (Consensus: min 3 PMC +1, no > -1) > 2. Discussion / binding votes on project structure and governance > changes (adopting subprojects, how we vote and govern, etc). (super > majority) > > > The thread where we voted on the CI bar Jeremiah referenced: > https://lists.apache.org/thread/2shht9rb0l8fh2gfqx6sz9pxobo6sr60 > Particularly relevant bit: > > Committer / pmc votes binding. Simple majority passes. > > I think you're arguing that voting to change our bar for merging when it > comes to CI falls under "votes on project structure"? I think when I called > that vote I was conceptualizing it as a technical discussion about a shared > norm on how we as committers deal with code contributions, where the > "committer votes are binding, simple majority" applies. > > I can see credible arguments in either direction, though I'd have expected > those concerns or counter-arguments to have come up back in Jan of 2022 > when we voted on the CI changes, not almost 2 years later after us > operating under this new shared norm. The sentiments expressed on the > discuss and vote thread were consistently positive and uncontentious; this > feels to me like it falls squarely under the spirit of lazy consensus only > at a much larger buy-in level than usual: > https://community.apache.org/committers/decisionMaking.html#lazy-consensus > > We've had plenty of time to call this vote and merge bar into question > (i.e. every ticket we merge we're facing the "no regressions" bar), and the > only reason I'd see us treating TCM or Accord differently would be because > they're much larger bodies of work at merge so it's going to be a bigger > lift to get to non-regression CI, and/or we would want a release cut from a > formal branch rather than a feature branch for preview. > > An alternative approach to keep this merge and CI burden lower would have > been more incremental work merged into trunk periodically, an argument many > folks in the community have made in the past. I personally have mixed > feelings about it; there's pros and cons to both approaches. > > All that said, I'm in favor of us continuing with this as a valid and > ratified vote (technical norms == committer binding + simple majority). If > we want to open a formal discussion about instead considering that a > procedural change and rolling things back based on those grounds I'm fine > with that, but we'll need to discuss that and think about the broader > implications since things like changing import ordering, tooling, or other > ecosystem-wide impacting changes (CI systems we all share, etc) would > similarly potentially run afoul of needing supermajority pmc participation > of we categorize that type of work as "project structure" as per the > governance rules. > > On Tue, Oct 31, 2023, at 1:25 PM, Jeremy Hanna wrote: > > I think the goal is to say "how could we get some working version of > TCM/Accord into people's hands to try out at/by Summit?" That's all. > People are eager to see it and try it out. > > On Oct 31, 2023, at 12:16 PM, Benedict <bened...@apache.org> wrote: > > > No, if I understand it correctly we’re in weird hypothetical land where > people are inventing new release types (“preview”) to avoid merging TCM[1] > in the event we want to cut a 5.1 release from the PR prior to the summit > if there’s some handful of failing tests in the PR. > > This may or may not be a waste of everyone’s time. > > Jeremiah, I’m not questioning: it was procedurally invalid. How we handle > that is, as always, a matter for community decision making. > > [1] how this helps isn’t entirely clear > > > On 31 Oct 2023, at 17:08, Paulo Motta <pauloricard...@gmail.com> wrote: > > > Even if it was not formally prescribed as far as I understand, we have > been following the "only merge on Green CI" custom as much as possible for > the past several years. Is the proposal to relax this rule for 5.0? > > On Tue, Oct 31, 2023 at 1:02 PM Jeremiah Jordan <jeremiah.jor...@gmail.com> > wrote: > > You are free to argue validity. I am just stating what I see on the > mailing list and in the wiki. We had a vote which was called passing and > was not contested at that time. The vote was on a process which includes > as #3 in the list: > > > 1. Before a merge, a committer needs either a non-regressing (i.e. no > new failures) run of circleci with the required test suites (TBD; see > below) or of ci-cassandra. > 1. Non-regressing is defined here as "Doesn't introduce any new test > failures; any new failures in CI are clearly not attributable to this > diff" > 2. (NEW) After merging tickets, ci-cassandra runs against the SHA > and the author gets an advisory update on the related JIRA for any new > errors on CI. The author of the ticket will take point on triaging this > new > failure and either fixing (if clearly reproducible or related to their > work) or opening a JIRA for the intermittent failure and linking it in > butler (https://butler.cassandra.apache.org/#/) > > > Which clearly says that before merge we ensure there are no known new > regressions to CI. > > The allowance for releases without CI being green, and merges without the > CI being completely green are from the fact that our trunk CI has rarely > been completely green, so we allow merging things which do not introduce > NEW regressions, and we allow releases with known regressions that are > deemed acceptable. > > We can indeed always vote to override it, and if it comes to that we can > consider that as an option. > > -Jeremiah > > On Oct 31, 2023 at 11:41:29 AM, Benedict <bened...@apache.org> wrote: > > > > That vote thread also did not reach the threshold; it was incorrectly > counted, as committer votes are not binding for procedural changes. I > counted at most 8 PMC +1 votes. > > The focus of that thread was also clearly GA releases and merges on such > branches, since there was a focus on releases being failure-free. But this > predates the more general release lifecycle vote that allows for alphas to > have failing tests - which logically would be impossible if nothing were > merged with failing or flaky tests. > > Either way, the vote and discussion specifically allow for this to be > overridden. > > 🤷♀️ > > > On 31 Oct 2023, at 16:29, Jeremiah Jordan <jeremiah.jor...@gmail.com> > wrote: > > > I never said there was a need for green CI for alpha. We do have a > requirement for not merging things to trunk that have known regressions in > CI. > Vote here: > https://lists.apache.org/thread/j34mrgcy9wrtn04nwwymgm6893h0xwo9 > > > > On Oct 31, 2023 at 3:23:48 AM, Benedict <bened...@apache.org> wrote: > > > > There is no requirement for green CI on alpha. We voted last year to > require running all tests before commit and to require green CI for beta > releases. This vote was invalid because it didn’t reach the vote floor for > a procedural change but anyway is not inconsistent with knowingly and > selectively merging work without green CI. > > If we reach the summit we should take a look at the state of the PRs and > make a decision about if they are alpha quality; if so, and we want a > release, we should simply merge it and release. Making up a new release > type when the work meets alpha standard to avoid an arbitrary and not > mandated commit bar seems the definition of silly. > > > On 31 Oct 2023, at 04:34, J. D. Jordan <jeremiah.jor...@gmail.com> wrote: > > > > That is my understanding as well. If the TCM and Accord based on TCM > branches are ready to commit by ~12/1 we can cut a 5.1 branch and then a > 5.1-alpha release. > Where “ready to commit” means our usual things of two committer +1 and > green CI etc. > > If we are not ready to commit then I propose that as long as everything in > the accord+tcm Apache repo branch has had two committer +1’s, but maybe > people are still working on fixes for getting CI green or similar, we cut a > 5.1-preview build from the feature branch to vote on with known issues > documented. This would not be the preferred path, but would be a way to > have a voted on release for summit. > > -Jeremiah > > On Oct 30, 2023, at 5:59 PM, Mick Semb Wever <m...@apache.org> wrote: > > > > Hoping we can get clarity on this. > > The proposal was, once TCM and Accord merges to trunk, then immediately > branch cassandra-5.1 and cut an immediate 5.1-alpha1 release. > > This was to focus on stabilising TCM and Accord as soon as it lands, hence > the immediate branching. > > And the alpha release as that is what our Release Lifecycle states it to > be. > https://cwiki.apache.org/confluence/display/CASSANDRA/Release+Lifecycle > > My understanding is that there was no squeezing in extra features into 5.1 > after TCM+Accord lands, and there's no need for a "preview" release – we > move straight to the alpha, as our lifecycle states. And we will describe > all usability shortcomings and bugs with the alpha, our lifecycle docs > permit this, if we feel the need to. > > All this said, if TCM does not merge before the Summit, and we want to get > a release into user hands, it has been suggested we cut a preview release > 5.1-preview1 off the feature branch. This is a different scenario, and > only a mitigation plan. > > > > > On Thu, 26 Oct 2023 at 14:20, Benedict <bened...@apache.org> wrote: > > > The time to stabilise is orthogonal to the time we branch. Once we branch > we stop accepting new features for the branch, and work to stabilise. > > My understanding is we will branch as soon as we have a viable alpha > containing TCM and Accord. That means pretty soon after they land in the > project, which we expect to be around the summit. > > If this isn’t the expectation we should make that clear, as it will affect > how this decision is made. > > > On 26 Oct 2023, at 10:14, Benjamin Lerer <b.le...@gmail.com> wrote: > > > > Regarding the release of 5.1, I understood the proposal to be that we cut > an actual alpha, thereby sealing the 5.1 release from new features. Only > features merged before we cut the alpha would be permitted, and the alpha > should be cut as soon as practicable. What exactly would we be waiting for? > > > The problem I believe is about expectations. It seems that your > expectation is that a release with only TCM and Accord will reach GA > quickly. Based on the time it took us to release 4.1, I am simply expecting > more delays (a GA around end of May, June). In which case it seems to me > that we could be interested in shipping more stuff in the meantime > (thinking of CASSANDRA-15254 or CEP-29 for example). > I do not have a strong opinion, I just want to make sure that we all share > the same understanding and fully understand what we agree upon. > > Le jeu. 26 oct. 2023 à 10:59, Benjamin Lerer <b.le...@gmail.com> a écrit : > > I am surprised this needs to be said, but - especially for long-running > CEPs - you must involve yourself early, and certainly within some > reasonable time of being notified the work is ready for broader input and > review. In this case, more than six months ago. > > > It is unfortunately more complicated than that because six month ago > Ekaterina and I were working on supporting Java 17 and dropping Java 8 > which was needed by different ongoing works. We both missed the > announcement that TCM was ready for review and anyway would not have been > available at that time. Maxim has asked me ages ago for a review of > CASSANDRA-15254 <https://issues.apache.org/jira/browse/CASSANDRA-15254> > more than 6 months ago and I have not been able to help him so far. We all > have a limited bandwidth and can miss some announcements. > > The project has grown and a lot of things are going on in parallel. There > are also more interdependencies between the different projects. In my > opinion what we are lacking is a global overview of the different things > going on in the project and some rough ideas of the status of the different > significant pieces. It would allow us to better organize ourselves. > > Le jeu. 26 oct. 2023 à 00:26, Benedict <bened...@apache.org> a écrit : > > > I have spoken privately with Ekaterina, and to clear up some possible > ambiguity: I realise nobody has demanded a delay to this work to conduct > additional reviews; a couple of folk have however said they would prefer > one. > > My point is that, as a community, we need to work on ensuring folk that > care about a CEP participate at an appropriate time. If they aren’t able > to, the consequences of that are for them to bear. > > We should be working to avoid surprises as CEP start to land. To this end, > I think we should work on some additional paragraphs for the governance doc > covering expectations around the landing of CEPs. > > > On 25 Oct 2023, at 21:55, Benedict <bened...@apache.org> wrote: > > > > I am surprised this needs to be said, but - especially for long-running > CEPs - you must involve yourself early, and certainly within some > reasonable time of being notified the work is ready for broader input and > review. In this case, more than six months ago. > > This isn’t the first time this has happened, and it is disappointing to > see it again. Clearly we need to make this explicit in the guidance docs. > > Regarding the release of 5.1, I understood the proposal to be that we cut > an actual alpha, thereby sealing the 5.1 release from new features. Only > features merged before we cut the alpha would be permitted, and the alpha > should be cut as soon as practicable. What exactly would we be waiting for? > > If we don’t have a clear and near-term trigger for branching 5.1 for its > own release, shortly after Accord and TCM merge, then I am in favour of > instead delaying 5.0. > > > On 25 Oct 2023, at 19:40, Mick Semb Wever <m...@apache.org> wrote: > > > I'm open to the suggestions of not branching cassandra-5.1 and/or naming a > preview release something other than 5.1-alpha1. > > But… the codebases and release process (and upgrade tests) do not > currently support releases with qualifiers that are not alpha, beta, or > rc. We can add a preview qualifier to this list, but I would not want to > block getting a preview release out only because this wasn't yet in place. > > Hence the proposal used 5.1-alpha1 simply because that's what we know we > can do today. An alpha release also means (typically) the branch. > > Is anyone up for looking into adding a "preview" qualifier to our release > process? > This may also solve our previous discussions and desire to have quarterly > releases that folk can use through the trunk dev cycle. > > Personally, with my understanding of timelines in front of us to fully > review and stabilise tcm, it makes sense to branch it as soon as it's > merged. It's easiest to stabilise it on a branch, and there's definitely > the desire and demand to do so, so it won't be getting forgotten or > down-prioritised. > > > > On Wed, 25 Oct 2023 at 18:07, Jeremiah Jordan <jeremiah.jor...@gmail.com> > wrote: > > If we do a 5.1 release why not take it as an opportunity to release more > things. I am not saying that we will. Just that we should let that door > open. > > > Agreed. This is the reason I brought up the possibility of not branching > off 5.1 immediately. > > > On Oct 25, 2023 at 3:17:13 AM, Benjamin Lerer <b.le...@gmail.com> wrote: > > The proposal includes 3 things: > 1. Do not include TCM and Accord in 5.0 to avoid delaying 5.0 > 2. The next release will be 5.1 and will include only Accord and TCM > 3. Merge TCM and Accord right now in 5.1 (making an initial release) > > I am fine with question 1 and do not have a strong opinion on which way to > go. > 2. Means that every new feature will have to wait for post 5.1 even if it > is ready before 5.1 is stabilized and shipped. If we do a 5.1 release why > not take it as an opportunity to release more things. I am not saying that > we will. Just that we should let that door open. > 3. There is a need to merge TCM and Accord as maintaining those separate > branches is costly in terms of time and energy. I fully understand that. On > the other hand merging TCM and Accord will make the TCM review harder and I > do believe that this second round of review is valuable as it already > uncovered a valid issue. Nevertheless, I am fine with merging TCM as soon > as it passes CI and continuing the review after the merge. If we cannot > meet at least that quality level (Green CI) we should not merge just for > creating an 5.1.alpha release for the summit. > > Now, I am totally fine with a preview release without numbering and with > big warnings that will only serve as a preview for the summit. > > Le mer. 25 oct. 2023 à 06:33, Berenguer Blasi <berenguerbl...@gmail.com> > a écrit : > > I also think there's many good new features in 5.0 already they'd make a > good release even on their own. My 2 cts. > > On 24/10/23 23:20, Brandon Williams wrote: > > The catch here is that we don't publish docker images currently. The > > C* docker images available are not made by us. > > > > Kind Regards, > > Brandon > > > > On Tue, Oct 24, 2023 at 3:31 PM Patrick McFadin <pmcfa...@gmail.com> > wrote: > >> Let me make that really easy. Hell yes > >> > >> Not everybody runs CCM, I've tried but I've met resistance. > >> > >> Compiling your own version usually involves me saying the words "Yes, > ant realclean exists. I'm not trolling you" > >> > >> docker pull <image> works on every OS and curates a single node > experience. > >> > >> > >> > >> On Tue, Oct 24, 2023 at 12:37 PM Josh McKenzie <jmcken...@apache.org> > wrote: > >>> In order for the project to advertise the release outside the dev@ > list it needs to be a formal release. > >>> > >>> That's my reading as well: > >>> https://www.apache.org/legal/release-policy.html#release-definition > >>> > >>> I wonder if there'd be value in us having a cronned job that'd do > nightly docker container builds on trunk + feature branches, archived for N > days, and we make that generally known to the dev@ list here so folks > that want to poke at the current state of trunk or other branches could do > so with very low friction. We'd probably see more engagement on feature > branches if it was turn-key easy for other C* devs to spin the up and check > them out. > >>> > >>> For what you're talking about here Patrick (a docker image for folks > outside the dev@ audience and more user-facing), we'd want to vote on it > and go through the formal process. > >>> > >>> On Tue, Oct 24, 2023, at 3:10 PM, Jeremiah Jordan wrote: > >>> > >>> In order for the project to advertise the release outside the dev@ > list it needs to be a formal release. That just means that there was a > release vote and at least 3 PMC members +1’ed it, and there are more +1 > than there are -1, and we follow all the normal release rules. The ASF > release process doesn’t care what branch you cut the artifacts from or what > version you call it. > >>> > >>> So the project can cut artifacts for and release a 5.1-alpha1, > 5.1-dev-preview1, what ever we want to version this thing, from trunk or > any other branch name we want. > >>> > >>> -Jeremiah > >>> > >>> On Oct 24, 2023 at 2:03:41 PM, Patrick McFadin <pmcfa...@gmail.com> > wrote: > >>> > >>> I would like to have something for developers to use ASAP to try the > Accord syntax. Very few people have seen it, and I think there's a learning > curve we can start earlier. > >>> > >>> It's my understanding that ASF policy is that it needs to be a project > release to create a docker image. > >>> > >>> On Tue, Oct 24, 2023 at 11:54 AM Jeremiah Jordan < > jeremiah.jor...@gmail.com> wrote: > >>> > >>> If we decide to go the route of not merging TCM to the 5.0 branch. Do > we actually need to immediately cut a 5.1 branch? Can we work on > stabilizing things while it is in trunk and cut the 5.1 branch when we > actually think we are near releasing? I don’t see any reason we can not > cut “preview” artifacts from trunk? > >>> > >>> -Jeremiah > >>> > >>> On Oct 24, 2023 at 11:54:25 AM, Jon Haddad <rustyrazorbl...@apache.org> > wrote: > >>> > >>> I guess at the end of the day, shipping a release with a bunch of > awesome features is better than holding it back. If there's 2 big releases > in 6 months the community isn't any worse off. > >>> > >>> We either ship something, or nothing, and something is probably better. > >>> > >>> Jon > >>> > >>> > >>> On 2023/10/24 16:27:04 Patrick McFadin wrote: > >>> > >>> +1 to what you are saying, Josh. Based on the last survey, yes, > everyone > >>> > >>> was excited about Accord, but SAI and UCS were pretty high on the list. > >>> > >>> > >>> Benedict and I had a good conversation last night, and now I understand > >>> > >>> more essential details for this conversation. TCM is taking far more > work > >>> > >>> than initially scoped, and Accord depends on a stable TCM. TCM is > months > >>> > >>> behind and that's a critical fact, and one I personally just learned > of. I > >>> > >>> thought things were wrapping up this month, and we were in the testing > >>> > >>> phase. I get why that's a topic we are dancing around. Nobody wants to > say > >>> > >>> ship dates are slipping because that's part of our culture. It's > >>> > >>> disappointing and, if new information, an unwelcome surprise, but none > of > >>> > >>> us should be angry or in a blamey mood because I guarantee every one > of us > >>> > >>> has shipped the code late. My reaction yesterday was based on an > incorrect > >>> > >>> assumption. Now that I have a better picture, my point of view is > changing. > >>> > >>> > >>> Josh's point about what's best for users is crucial. Users deserve > stable > >>> > >>> code with a regular cadence of features that make their lives easier. > If we > >>> > >>> put 5.0 on hold for TCM + Accord, users will get neither for a very > long > >>> > >>> time. And I mentioned a disaster yesterday. A bigger disaster would be > >>> > >>> shipping Accord with a major bug that causes data loss, eroding > community > >>> > >>> trust. Accord has to be the most bulletproof of all bulletproof > features. > >>> > >>> The pressure to ship is only going to increase and that's fertile > ground > >>> > >>> for that sort of bug. > >>> > >>> > >>> So, taking a step back and with a clearer picture, I support the 5.0 + > 5.1 > >>> > >>> plan mainly because I don't think 5.1 is (or should be) a fast follow. > >>> > >>> > >>> For the user community, the communication should be straightforward. > TCM + > >>> > >>> Accord are turning out to be much more complicated than was originally > >>> > >>> scoped, and for good reasons. Our first principle is to provide a > stable > >>> > >>> and reliable system, so as a result, we'll be de-coupling TCM + Accord > from > >>> > >>> 5.0 into a 5.1 branch, which is available in parallel to 5.0 while > >>> > >>> additional hardening and testing is done. We can communicate this in a > blog > >>> > >>> post., > >>> > >>> > >>> To make this much more palatable to our use community, if we can get a > >>> > >>> build and docker image available ASAP with Accord, it will allow > developers > >>> > >>> to start playing with the syntax. Up to this point, that hasn't been > widely > >>> > >>> available unless you compile the code yourself. Developers need to > >>> > >>> understand how this will work in an application, and up to this point, > the > >>> > >>> syntax is text they see in my slides. We need to get some hands-on and > that > >>> > >>> will get our user community engaged on Accord this calendar year. The > >>> > >>> feedback may even uncover some critical changes we'll need to make. > Lack of > >>> > >>> access to Accord by developers is a critical problem we can fix soon > and > >>> > >>> there will be plenty of excitement there and start building use cases > >>> > >>> before the final code ships. > >>> > >>> > >>> I'm bummed but realistic. It sucks that I won't have a pony for > Christmas, > >>> > >>> but maybe one for my birthday? > >>> > >>> > >>> Patrick > >>> > >>> > >>> > >>> > >>> On Tue, Oct 24, 2023 at 7:23 AM Josh McKenzie <jmcken...@apache.org> > wrote: > >>> > >>> > >>>> Maybe it won't be a glamorous release but shipping > >>>> 5.0 mitigates our worst case scenario. > >>>> I disagree with this characterization of 5.0 personally. UCS, SAI, > Trie > >>>> memtables and sstables, maybe vector ANN if the sub-tasks on C-18715 > are > >>>> accurate, all combine to make 5.0 a pretty glamorous release IMO > >>>> independent of TCM and Accord. Accord is a true paradigm-shift > game-changer > >>>> so it's easy to think of 5.0 as uneventful in comparison, and TCM > helps > >>>> resolve one of the biggest pain-points in our system for over a > decade, but > >>>> I think 5.0 is a very meaty release in its own right today. > >>>> Anyway - I agree with you Brandon re: timelines. If things take longer > >>>> than we'd hope (which, if I think back, they do roughly 100% of the > time on > >>>> this project), blocking on these features could both lead to a > significant > >>>> delay in 5.0 going out as well as increasing pressure and risk of > burnout > >>>> on the folks working on it. While I believe we all need some balanced > >>>> urgency to do our best work, being under the gun for something with a > hard > >>>> deadline or having an entire project drag along blocked on you is not > where > >>>> I want any of us to be. > >>>> Part of why we talked about going to primarily annual calendar-based > >>>> releases was to avoid precisely this situation, where something that > >>>> *feels* right at the cusp of merging leads us to delay a release > >>>> repeatedly. We discussed this a couple times this year: > >>>> 1: https://lists.apache.org/thread/9c5cnn57c7oqw8wzo3zs0dkrm4f17lm3, > >>>> where Mick proposed a "soft-freeze" for everything w/out exception > and 1st > >>>> week October "hard-freeze", and there was assumed to be lazy consensus > >>>> 2: https://lists.apache.org/thread/mzj3dq8b7mzf60k6mkby88b9n9ywmsgw, > >>>> where we kept along with what we discussed in 1 but added in CEP-30 > to be > >>>> waivered in as well. > >>>> So. We're at a crossroads here where we need to either follow through > with > >>>> what we all agreed to earlier this year, or acknowledge that our best > >>>> intention of calendar-based releases can't stand up to our optimism > and > >>>> desire to get these features into the next major. > >>>> There's no immediate obvious better path to me in terms of what's > best for > >>>> our users. This is a situation of risk tolerance with a lot of > unknowns > >>>> that could go either way. > >>>> Any light that folks active on TCM and Accord could shed in terms of > their > >>>> best and worst-case scenarios on timelines for those features might > help us > >>>> narrow this down a bit. Otherwise, I'm inclined to defer to our past > selves > >>>> and fall back to "we agreed to yearly calendar releases for good > reason. > >>>> Let's stick to our guns." > >>>> On Tue, Oct 24, 2023, at 9:37 AM, Brandon Williams wrote: > >>>> The concern I have with this is that is a big slippery 'if' that > >>>> involves development time estimation, and if it tends to take longer > >>>> than we estimate (as these things tend to do), then I can see a future > >>>> where 5.0 is delayed until the middle of 2024, and I really don't want > >>>> that to happen. Maybe it won't be a glamorous release but shipping > >>>> 5.0 mitigates our worst case scenario. > >>>> Kind Regards, > >>>> Brandon > >>>> On Mon, Oct 23, 2023 at 4:02 PM Dinesh Joshi <djo...@apache.org> > wrote: > >>>>> I have a strong preference to move out the 5.0 date to have accord > and > >>>> TCM. I don’t see the point in shipping 5.0 without these features > >>>> especially if 5.1 is going to follow close behind it. > >>>>> Dinesh > >>>>> On Oct 23, 2023, at 4:52 AM, Mick Semb Wever <m...@apache.org> wrote: > >>>>> > >>>>> The TCM work (CEP-21) is in its review stage but being well past our > >>>> cut-off date¹ for merging, and now jeopardising 5.0 GA efforts, I > would > >>>> like to propose the following. > >>>>> We merge TCM and Accord only to trunk. Then branch cassandra-5.1 and > >>>> cut an immediate 5.1-alpha1 release. > >>>>> I see this as a win-win scenario for us, considering our current > >>>> situation. (Though it is unfortunate that Accord is included in this > >>>> scenario because we agreed it to be based upon TCM.) > >>>>> This will mean… > >>>>> - We get to focus on getting 5.0 to beta and GA, which already has > a > >>>> ton of features users want. > >>>>> - We get an alpha release with TCM and Accord into users hands > quickly > >>>> for broader testing and feedback. > >>>>> - We isolate GA efforts on TCM and Accord – giving oss and > downstream > >>>> engineers time and patience reviewing and testing. TCM will be the > biggest > >>>> patch ever to land in C*. > >>>>> - Give users a choice for a more incremental upgrade approach, > given > >>>> just how many new features we're putting on them in one year. > >>>>> - 5.1 w/ TCM and Accord will maintain its upgrade compatibility > with > >>>> all 4.x versions, just as if it had landed in 5.0. > >>>>> The risks/costs this introduces are > >>>>> - If we cannot stabilise TCM and/or Accord on the cassandra-5.1 > branch, > >>>> and at some point decide to undo this work, while we can throw away > the > >>>> cassandra-5.1 branch we would need to do a bit of work reverting the > >>>> changes in trunk. This is a _very_ edge case, as confidence levels > on the > >>>> design and implementation of both are already tested and high. > >>>>> - We will have to maintain an additional branch. I propose that we > >>>> treat the 5.1 branch in the same maintenance window as 5.0 (like we > have > >>>> with 3.0 and 3.11). This also adds the merge path overhead. > >>>>> - Reviewing of TCM and Accord will continue to happen post-merge. > This > >>>> is not our normal practice, but this work will have already received > its > >>>> two +1s from committers, and such ongoing review effort is akin to GA > >>>> stabilisation work on release branches. > >>>>> I see no other ok solution in front of us that gets us at least both > the > >>>> 5.0 beta and TCM+Accord alpha releases this year. Keeping in mind > users > >>>> demand to start experimenting with these features, and our Cassandra > Summit > >>>> in December. > >>>>> 1) https://lists.apache.org/thread/9c5cnn57c7oqw8wzo3zs0dkrm4f17lm3 > >>> > >>> > > > > > > > >