Re: Cassandra project biweekly status update 2022-06-14

2022-06-28 Thread Josh McKenzie
> I think it is good to document further things and keep on doing it in time 
> when discussions happen. I can see this being a benefit both for users and 
> Cassandra developers.
Strong +1 from me here. Having guidance for people working on the codebase to 
understand what is and isn't considered a public API will help inform how we 
shape these things and keep things stable for our userbase.

On Sun, Jun 26, 2022, at 12:58 PM, Ekaterina Dimitrova wrote:
> “+1 to always, by default, maintaining compatibility.”
>  +1
> 
> “We also have the discussion wrt what are breaking changes. Are we intending 
> to evolve what interfaces and behaviour we provide, and to what degree, 
> compatibility over via these discussions/votes?”
> 
> While I do agree we cannot really have a fully exhaustive list, I think it is 
> good to document further things and keep on doing it in time when discussions 
> happen. I can see this being a benefit both for users and Cassandra 
> developers.
> 
> 
> On Thu, 16 Jun 2022 at 18:25, Mick Semb Wever  wrote:
>> 
>> 
>>> We've agreed in the past that we want to maintain compatibility and that 
>>> all changes will be done with compatibility in mind (see 
>>> https://cwiki.apache.org/confluence/display/CASSANDRA/Release+Lifecycle), 
>>> but we haven't clarified how we make the call on when to bump to next 
>>> major. 
>> 
>> 
>> +1 to always, by default, maintaining compatibility.
>> 
>> Note, a major bump isn't only about compatibility breakages per se, but a) 
>> time to clean up deprecated code, and b) delineating upgrade paths. 
>>  
>>> The Release Lifecycle states "Introducing a backward incompatibility change 
>>> needs dev community approval via voting [voting open for 48 hours]." But 
>>> this is under a section called "Outstanding questions beyond the scope of 
>>> this document", maybe it's about time we finalize this and update this 
>>> document?
>> 
>> 
>> IIRC, though i can easily be wrong, this was meant for breaking changes 
>> within a major, e.g. after a beta release. Not that the same formality 
>> cannot also be applied to trunk dev, as it ensures a desired visibility, 
>> though I wonder if we will solve it in practice most of the time with the 
>> preceding [DISCUSS] thread.
>> 
>> We also have the discussion wrt what are breaking changes. Are we intending 
>> to evolve what interfaces and behaviour we provide, and to what degree, 
>> compatibility over via these discussions/votes?


Cassandra project biweekly status update 2022-06-28

2022-06-28 Thread Josh McKenzie
Slower past couple of weeks; a lot of focus on burning down failing tests.

We're at 5 weeks without a build lead (details on the role here: 
https://cwiki.apache.org/confluence/display/CASSANDRA/Build+Lead). I've taken 
on the role a few times myself this year already and it's really helpful to get 
a solid understanding of where some of the weaknesses in our CI infra are, 
where some test infra and code is brittle or weak, and to help keep visibility 
in the project to test failures as we burn them down leading up to 4.1's GA. 
Please don't hesitate to reach out via email or slack if you have the bandwidth 
to help out (a few hours over the course of the week) and I'll be happy to 
mentor anyone through their first run as build lead.


Checking in on 4.1:
https://butler.cassandra.apache.org/#/

At about 10 failures up from 8 last check in 2 weeks ago. It's been pretty 
consistent and a lot of folks are working on burning those down; 4.1 ci has 
been a lot more stable recently: 
https://ci-cassandra.apache.org/job/Cassandra-4.1/.

Still have 28 tickets that are beta blockers here: 
https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=484&quickFilter=2454.
 4 in need of review down from 6 last time. It looks like almost all the 
tickets are either trivial or test fixes.


[New contributor Getting Started]
Check out the 12 unassigned tickets we have marked as beta blockers - many are 
great candidates for someone new to the project and will help us move towards 
our goal of releasing 4.1: 
https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=484&quickFilter=2454&quickFilter=2160

Reference the "Getting started" guide on our website for help with setting up 
your environment: https://cassandra.apache.org/_/development/index.html, and 
the dev community hangs out on https://the-asf.slack.com in #cassandra-dev. We 
have 13 @cassandra_mentors in the chat room, and feel free to float any 
questions you have to the channel at large as we're a 24/7 type of community 
around the world.


[Dev list Digest]
https://lists.apache.org/list?dev@cassandra.apache.org:lte=2w:

The thread about slow custom unit tests running on Mac OS X continues here: 
https://lists.apache.org/thread/tt2mmkvp5p0os9k15lwssdbsbqff28s6. This isn't 
something I've personally seen running on OSX (outside a containerized / docker 
environment) but if anyone's run into this type of issue, please chime in!

The last biweekly status email 
(https://lists.apache.org/thread/tt2mmkvp5p0os9k15lwssdbsbqff28s6) brought over 
conversation from JIRA about when we make backwards API breaking changes. That 
conversation is still ongoing; a couple of days ago Ekaterina advocated for us 
documenting what we consider "public API's" and investing energy into keeping 
that up to date and I have to say I agree. All too often you can make a change 
to a tool or subsystem without realizing there would be external parsers or 
code coupled with that output or interfaces; the more clarity we can provide 
both for devs working on C* and consumers of these APIs, the smoother working 
on this will be for all of us.

The conversation on the shape of the syntax for CEP-15's multi-key transactions 
seems to be winding down 
(https://lists.apache.org/thread/khr33obyxvfhfpjoyzgwbmh7535mf7hv). A lot of 
great discussion, probing, and collaboration's gone on on that thread. If you 
have an opinion, perspective, or question that hasn't been covered already in 
that thread please pipe up as this is going to be a new foundational primitive 
for us in the database so the cost of revving that API in the future is high.

Last but not least, there's been discussion around the Cassandra Corner / 
Apache Cassandra Corner podcast, nominal use of the mark, whether it needs the 
Apache branding on it or not, who has access, etc. 
(https://lists.apache.org/thread/m4j3r8sofpqsqdgfjkjfr2rjc5w0bqj2). It's 
fantastic to see things like this in the community, for the community, and 
coordinated openly with the dev community at large and the PMC. Thanks Aaron 
for everything you're doing with that podcast and being such a great partner to 
everyone!


[CI Trends]
https://butler.cassandra.apache.org/#/

Let's diff last biweekly update vs this

3.0: 13 -> 10
3.11: 23 -> 19
4.0: 2 -> 3
4.1: 8 -> 19 (flaky CI run, probably ~ 10)
trunk: 20 -> 16

So all but 4.1 trending in the direction we want. A ton of focus is on 4.1 
right now so I don't see that as a long-term problem; let's keep up the 
pressure!


[Release progress]
https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=484&quickFilter=2175

4.1 alpha:
Forbidding writetimes and ttl functions for multicell columns hit in 
CASSANDRA-17628, applying back to the 3.0 line as well.

4.1 beta:
3 test failure fixes, a change to nodetool clientstats to keep the output 
backwards compatible in CASSANDRA-17715, and a case where writes with CL=ONE + 
counters + a network partition could lead to timeouts in CASSANDRA-17411 all 

Re: Cassandra project biweekly status update 2022-06-14

2022-06-28 Thread Benedict
I don’t think it has to be all that complicated?

If it’s a part of our UX it’s probably something we should maintain backwards 
compatibility for.

If it’s part of our internal codebase, probably not. The only two “public” APIs 
we have inside the codebase that I’m aware of are triggers and secondary 
indexes, and these are provided with limited warranty and an expectation of 
technical sophistication for their users. I think there has always been an 
expectation that users of these features will bear the cost of migration to any 
new API versions we might introduce between majors.

> On 28 Jun 2022, at 19:39, Josh McKenzie  wrote:
> 
> 
>> 
>> I think it is good to document further things and keep on doing it in time 
>> when discussions happen. I can see this being a benefit both for users and 
>> Cassandra developers.
> Strong +1 from me here. Having guidance for people working on the codebase to 
> understand what is and isn't considered a public API will help inform how we 
> shape these things and keep things stable for our userbase.
> 
>> On Sun, Jun 26, 2022, at 12:58 PM, Ekaterina Dimitrova wrote:
>> “+1 to always, by default, maintaining compatibility.”
>>  +1
>> 
>> “We also have the discussion wrt what are breaking changes. Are we intending 
>> to evolve what interfaces and behaviour we provide, and to what degree, 
>> compatibility over via these discussions/votes?”
>> 
>> While I do agree we cannot really have a fully exhaustive list, I think it 
>> is good to document further things and keep on doing it in time when 
>> discussions happen. I can see this being a benefit both for users and 
>> Cassandra developers.
>> 
>> 
>> On Thu, 16 Jun 2022 at 18:25, Mick Semb Wever  wrote:
>> 
>> 
>> We've agreed in the past that we want to maintain compatibility and that all 
>> changes will be done with compatibility in mind (see 
>> https://cwiki.apache.org/confluence/display/CASSANDRA/Release+Lifecycle), 
>> but we haven't clarified how we make the call on when to bump to next major. 
>> 
>> 
>> +1 to always, by default, maintaining compatibility.
>> 
>> Note, a major bump isn't only about compatibility breakages per se, but a) 
>> time to clean up deprecated code, and b) delineating upgrade paths. 
>>  
>> The Release Lifecycle states "Introducing a backward incompatibility change 
>> needs dev community approval via voting [voting open for 48 hours]." But 
>> this is under a section called "Outstanding questions beyond the scope of 
>> this document", maybe it's about time we finalize this and update this 
>> document?
>> 
>> 
>> IIRC, though i can easily be wrong, this was meant for breaking changes 
>> within a major, e.g. after a beta release. Not that the same formality 
>> cannot also be applied to trunk dev, as it ensures a desired visibility, 
>> though I wonder if we will solve it in practice most of the time with the 
>> preceding [DISCUSS] thread.
>> 
>> We also have the discussion wrt what are breaking changes. Are we intending 
>> to evolve what interfaces and behaviour we provide, and to what degree, 
>> compatibility over via these discussions/votes?
>