To be clear, we only use the relative syntax during development and not long lived feature branches like cep-15-accord; we use https address there. So when you create a PR you switch to relative paths (if-and-only-if you change the submodule), then on merge you switch back to https pointing to apache. So the main issue has been when 2 authors try to work together (such as during review of a PR)
> On Jun 1, 2023, at 10:15 AM, David Capwell <dcapw...@apple.com> wrote: > > Most edge cases we have seen in Accord are working with feature branches from > other authors where we use relative paths to make sure the git@ vs https:// > doesn’t become a problem for CI (submodule points to https:// to work in CI, > but if you do that during feature development it gets annoying to push to > GitHub… so we do ../cassandra-accord.git so git respects w/e protocol you are > using). In 1-2 peoples environments, when they checked out another authors > logic the C* remote was correct, but the Accord one was still pointing to > Apache (which doesn’t have the feature branch)…. This is trivial to fix, and > might be a bug with our git hooks…. But still calling out as it has been an > issue. > > Josh, do you see any reports on what isn’t working? I think most people > don’t touch 1% of what git can do… so it might be that 10% is broken but that > no one in our domain actually touches that path? > >> On May 31, 2023, at 12:36 PM, Josh McKenzie <jmcken...@apache.org> wrote: >> >> Bumping into worktree + submodule pain on some harry related work; it looks >> like "git worktree" and submodules are not currently fully implemented: >> >> https://git-scm.com/docs/git-worktree#_bugs >> BUGS >> Multiple checkout in general is still experimental, and the support for >> submodules is incomplete. It is NOT recommended to make multiple checkouts >> of a superproject. >> >> I rely pretty heavily on worktrees and I know a lot of other folks who do >> too. This is a dealbreaker for me in terms of adding anything else as a >> submodule and I'd like to know if the accord folks have been running into >> any worktree related woes w/the accord integration. >> >> >> On Sun, May 28, 2023, at 10:14 AM, Alex Petrov wrote: >>> Regarding approachability, one of the things I thought is worth adding is a >>> DSL. I feel like there's enough functionality in Harry and there's enough >>> information for anyone who needs to write even an involved test out there, >>> but adoption doesn't usually start with complex use-cases, so it could be >>> that making it extremely simple to generate the data and validating that >>> written data is where it's supposed to be, should help adoption a lot. >>> Unfortunately, more complex use-cases such as group-by support, or SAI >>> testing will require a bit more knowledge and writing an involved model, so >>> I do not see any shortcuts we can take here. >>> >>> > I do think that moving Harry in-tree would improve approachability >>> >>> I think it's similar as it is with in-jvm dtest api. I feel like we wold >>> evolve it more actively if we didn't have to cut a release before every >>> commit. In other words, I think that changing Harry code and extending >>> functionality will be easier, which I think will eventually lead to quicker >>> adoption. But of course the act of moving itself does not increase >>> adoption, it just comes from better ergonomics. >>> >>> >>> On Thu, May 25, 2023, at 8:03 PM, Abe Ratnofsky wrote: >>>> I'm seeing a few distinct topics here: >>>> >>>> 1. Harry's adoption and approachability >>>> >>>> I agree that approachability is one of Harry's main improvement areas >>>> right now. If our goal is to produce a fuzz testing framework for the >>>> Cassandra project, then adoption by contributors and usage for new feature >>>> development are reasonable indicators for whether we're achieving that >>>> goal. If Harry is not getting adopted by contributors outside of Apple, >>>> and is not getting used for new feature development, then we should make >>>> an effort to understand why. I don't think that a several-hour seminar is >>>> the best point of leverage to achieve those goals. >>>> >>>> Here's what I think we do need: >>>> >>>> - The README should be understandable by anyone interested in writing a >>>> fuzz test >>>> - Example tests should be runnable from a fresh clone of Cassandra, in an >>>> IDE or on the command line >>>> - Examples of how we would test new features (like CEP-7, CEP-29, etc) >>>> with the fuzz testing framework >>>> >>>> I find the JVM dtest framework accomplishes similar goals, and one reason >>>> is because there are plenty of examples, and it's relatively easy to copy >>>> and paste one example and have it do what you'd like. I believe the same >>>> approach would work for a fuzz testing framework. >>>> >>>> Some of these tasks above are already done for Harry, such as better IDE >>>> support for samples. This will be available in OSS Harry shortly. >>>> >>>> 2. Moving Harry in-tree vs. in submodule >>>> >>>> As I understand it, making Harry a submodule of Cassandra would make it >>>> easier to deal with versioning, since we wouldn't have to do the entire >>>> release dance we need to do for dtest-api, but I don't see this as a big >>>> improvement to approachability. >>>> >>>> I do think that moving Harry in-tree would improve approachability, for >>>> the same reason as the JVM dtests. It's nice to write a feature or fix, >>>> find a similar JVM dtest, copy, paste, and edit, and have something useful. >>>> >>>> 3. General subdivision of Cassandra projects >>>> >>>> This topic has come up quite a few times recently - around shared >>>> utilities (CEP-10 concurrency primitives, etc), dtest-api, query parser, >>>> etc. The project has tried out a few different approaches on composition >>>> of separate projects. Hopefully in the near future we find the one that >>>> works best and can start this process of splitting out libraries. >>>> >>>> -- >>>> Abe >>>> >>>>> On May 25, 2023, at 6:36 AM, Josh McKenzie <jmcken...@apache.org> wrote: >>>>> >>>>>> I would really like us to split out utilities into a common project >>>>> +1 to the sentiment. >>>>> >>>>> Would also advocate strongly for it being more tightly integrated with >>>>> the base project than what we've been doing with our ecosystem (i.e. >>>>> completely separate projects, not submodules), mostly from a >>>>> discoverability and workflow standpoint. >>>>> >>>>> I'm definitely salty about having to have 4 IDE's / projects open just to >>>>> work on the entire stack. >>>>> >>>>> On Thu, May 25, 2023, at 5:05 AM, Alex Petrov wrote: >>>>>> This was not a talk, but rather an interactive workshop, unfortunately >>>>>> will not work in a recorded way, but I am trying to work out ways to >>>>>> preserve this. >>>>>> >>>>>> On Thu, May 25, 2023, at 10:26 AM, Claude Warren, Jr via dev wrote: >>>>>>> Since the talk was not accepted for Cassandra Summit, would it be >>>>>>> possible to record it as a simple youtube video and publish it so that >>>>>>> the detailed information about how to use Harry is not lost? >>>>>>> >>>>>>> On Thu, May 25, 2023 at 7:36 AM Alex Petrov <al...@coffeenco.de >>>>>>> <mailto:al...@coffeenco.de>> wrote: >>>>>>> >>>>>>> While we are at it, we may also want to pull the in-jvm dtest API as a >>>>>>> submodule, and actually move some tests that are common between the >>>>>>> branches there. >>>>>>> >>>>>>> On Thu, May 25, 2023, at 6:03 AM, Caleb Rackliffe wrote: >>>>>>>> Isn’t the other reason Accord works well as a submodule that it has no >>>>>>>> dependencies on C* proper? Harry does at the moment, right? (Not that >>>>>>>> we couldn’t address that…just trying to think this through…) >>>>>>>> >>>>>>>>> On May 24, 2023, at 6:54 PM, Benedict <bened...@apache.org >>>>>>>>> <mailto:bened...@apache.org>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> In this case Harry is a testing module - it’s not something we will >>>>>>>>> develop in tandem with C* releases, and we will want improvements to >>>>>>>>> be applied across all branches. >>>>>>>>> >>>>>>>>> So it seems a natural fit for submodules to me. >>>>>>>>> >>>>>>>>> >>>>>>>>>> On 24 May 2023, at 21:09, Caleb Rackliffe <calebrackli...@gmail.com >>>>>>>>>> <mailto:calebrackli...@gmail.com>> wrote: >>>>>>>>>> >>>>>>>>>> > Submodules do have their own overhead and edge cases, so I am >>>>>>>>>> > mostly in favor of using for cases where the code must live >>>>>>>>>> > outside of tree (such as jvm-dtest that lives out of tree as all >>>>>>>>>> > branches need the same interfaces) >>>>>>>>>> >>>>>>>>>> Agreed. Basically where I've ended up on this topic. >>>>>>>>>> >>>>>>>>>> > We could go over some interesting examples such as testing 2i (SAI) >>>>>>>>>> >>>>>>>>>> +100 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, May 24, 2023 at 1:40 PM Alex Petrov <al...@coffeenco.de >>>>>>>>>> <mailto:al...@coffeenco.de>> wrote: >>>>>>>>>> >>>>>>>>>> > I'm about to need to harry test for the paging across tombstone >>>>>>>>>> > work for https://issues.apache.org/jira/browse/CASSANDRA-18424 >>>>>>>>>> > (that's where my own overlapping fuzzing came in). In the process, >>>>>>>>>> > I'll see if I can't distill something really simple along the >>>>>>>>>> > lines of how React approaches it (https://react.dev/learn). >>>>>>>>>> >>>>>>>>>> We can pick that up as an example, sure. >>>>>>>>>> >>>>>>>>>> On Wed, May 24, 2023, at 4:53 PM, Josh McKenzie wrote: >>>>>>>>>>>> I have submitted a proposal to Cassandra Summit for a 4-hour Harry >>>>>>>>>>>> workshop, >>>>>>>>>>> I'm about to need to harry test for the paging across tombstone >>>>>>>>>>> work for https://issues.apache.org/jira/browse/CASSANDRA-18424 >>>>>>>>>>> (that's where my own overlapping fuzzing came in). In the process, >>>>>>>>>>> I'll see if I can't distill something really simple along the lines >>>>>>>>>>> of how React approaches it (https://react.dev/learn). >>>>>>>>>>> >>>>>>>>>>> Ideally we'd be able to get something together that's a high level >>>>>>>>>>> "In the next 15 minutes, you will know and understand A-G and have >>>>>>>>>>> access to N% of the power of harry" kind of offer. >>>>>>>>>>> >>>>>>>>>>> Honestly, there's a lot in our ecosystem where we could benefit >>>>>>>>>>> from taking a page from their book in terms of onboarding and >>>>>>>>>>> getting started IMO. >>>>>>>>>>> >>>>>>>>>>> On Wed, May 24, 2023, at 10:31 AM, Alex Petrov wrote: >>>>>>>>>>>> > I wonder if a mini-onboarding session would be good as a >>>>>>>>>>>> > community session - go over Harry, how to run it, how to add a >>>>>>>>>>>> > test? Would that be the right venue? I just would like to see >>>>>>>>>>>> > how we can not only plug it in to regular CI but get everyone >>>>>>>>>>>> > that wants to add a test be able to know how to get started with >>>>>>>>>>>> > it. >>>>>>>>>>>> >>>>>>>>>>>> I have submitted a proposal to Cassandra Summit for a 4-hour Harry >>>>>>>>>>>> workshop, but unfortunately it got declined. Goes without saying, >>>>>>>>>>>> we can still do it online, time and resources permitting. But >>>>>>>>>>>> again, I do not think it should be barring us from making Harry a >>>>>>>>>>>> part of the codebase, as it already is. In fact, we can be >>>>>>>>>>>> iterating on the development quicker having it in-tree. >>>>>>>>>>>> >>>>>>>>>>>> We could go over some interesting examples such as testing 2i >>>>>>>>>>>> (SAI), modelling Group By tests, or testing repair. If there is >>>>>>>>>>>> enough appetite and collaboration in the community, I will see if >>>>>>>>>>>> we can pull something like that together. Input on _what_ you >>>>>>>>>>>> would like to see / hear / tested is also appreciated. Harry was >>>>>>>>>>>> developed out of a strong need for large-scale testing, which also >>>>>>>>>>>> has informed many of its APIs, but we can make it easier to access >>>>>>>>>>>> for interactive testing / unit tests. We have been doing a lot of >>>>>>>>>>>> that with Transactional Metadata, too. >>>>>>>>>>>> >>>>>>>>>>>> > I'll hold off on this until Alex Petrov chimes in. @Alex -> got >>>>>>>>>>>> > any thoughts here? >>>>>>>>>>>> >>>>>>>>>>>> Yes, sorry for not responding on this thread earlier. I can not >>>>>>>>>>>> understate how excited I am about this, and how important I think >>>>>>>>>>>> this is. Time constraints are somehow hard to overcome, but I hope >>>>>>>>>>>> the results brought by TCM will make it all worth it. >>>>>>>>>>>> >>>>>>>>>>>> On Wed, May 24, 2023, at 4:23 PM, Alex Petrov wrote: >>>>>>>>>>>>> I think pulling Harry into the tree will make adoption easier for >>>>>>>>>>>>> the folks. I have been a bit swamped with Transactional Metadata >>>>>>>>>>>>> work, but I wanted to make some of the things we were using for >>>>>>>>>>>>> testing TCM available outside of TCM branch. This includes a >>>>>>>>>>>>> bunch of helper methods to perform operations on the clusters, >>>>>>>>>>>>> data generation, and more useful stuff. Of course, the question >>>>>>>>>>>>> always remains about how much time I want to spend porting it all >>>>>>>>>>>>> to Gossip, but I think we can find a reasonable compromise. >>>>>>>>>>>>> >>>>>>>>>>>>> I would not set this improvement as a prerequisite to pulling >>>>>>>>>>>>> Harry into the main branch, but rather interpret it as a >>>>>>>>>>>>> commitment from myself to take community input and make it more >>>>>>>>>>>>> approachable by the day. >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, May 24, 2023, at 2:44 PM, Josh McKenzie wrote: >>>>>>>>>>>>>>> importantly it’s a million times better than the dtest-api >>>>>>>>>>>>>>> process - which stymies development due to the friction. >>>>>>>>>>>>>> This is my major concern. >>>>>>>>>>>>>> >>>>>>>>>>>>>> What prompted this thread was harry being external to the core >>>>>>>>>>>>>> codebase and the lack of adoption and usage of it having led to >>>>>>>>>>>>>> atrophy of certain aspects of it, which then led to redundant >>>>>>>>>>>>>> implementation of some fuzz testing and lost time. >>>>>>>>>>>>>> >>>>>>>>>>>>>> We'd all be better served to have this closer to the main >>>>>>>>>>>>>> codebase as a forcing function to smooth out the rough edges, >>>>>>>>>>>>>> integrate it, and make it a collective artifact and first class >>>>>>>>>>>>>> citizen IMO. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I have similar opinions about the dtest-api. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, May 24, 2023, at 4:05 AM, Benedict wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It’s not without hiccups, and I’m sure we have more to learn. >>>>>>>>>>>>>>> But it mostly just works, and importantly it’s a million times >>>>>>>>>>>>>>> better than the dtest-api process - which stymies development >>>>>>>>>>>>>>> due to the friction. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 24 May 2023, at 08:39, Mick Semb Wever <m...@apache.org >>>>>>>>>>>>>>>> <mailto:m...@apache.org>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> WRT git submodules and CASSANDRA-18204, are we happy with how >>>>>>>>>>>>>>>> it is working for accord ? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The time spent on getting that running has been a fair few >>>>>>>>>>>>>>>> hours, where we could have cut many manual module releases in >>>>>>>>>>>>>>>> that time. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> David and folks working on accord ? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, 23 May 2023 at 20:09, Josh McKenzie >>>>>>>>>>>>>>>> <jmcken...@apache.org <mailto:jmcken...@apache.org>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I'll hold off on this until Alex Petrov chimes in. @Alex -> >>>>>>>>>>>>>>>> got any thoughts here? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, May 16, 2023, at 5:17 PM, Jeremy Hanna wrote: >>>>>>>>>>>>>>>>> I think it would be great to onboard Harry more officially >>>>>>>>>>>>>>>>> into the project. However it would be nice to perhaps do >>>>>>>>>>>>>>>>> some sanity checking outside of Apple folks to see how >>>>>>>>>>>>>>>>> approachable it is. That is, can someone take it and just >>>>>>>>>>>>>>>>> run it with the current readme without any additional context? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I wonder if a mini-onboarding session would be good as a >>>>>>>>>>>>>>>>> community session - go over Harry, how to run it, how to add >>>>>>>>>>>>>>>>> a test? Would that be the right venue? I just would like to >>>>>>>>>>>>>>>>> see how we can not only plug it in to regular CI but get >>>>>>>>>>>>>>>>> everyone that wants to add a test be able to know how to get >>>>>>>>>>>>>>>>> started with it. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Jeremy >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On May 16, 2023, at 1:34 PM, Abe Ratnofsky <a...@aber.io >>>>>>>>>>>>>>>>>> <mailto:a...@aber.io>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Just to make sure I'm understanding the details, this would >>>>>>>>>>>>>>>>>> mean apache/cassandra-harry maintains its status as a >>>>>>>>>>>>>>>>>> separate repository, apache/cassandra references it as a >>>>>>>>>>>>>>>>>> submodule, and clones and builds Harry locally, rather than >>>>>>>>>>>>>>>>>> pulling a released JAR. We can then reference Harry as a >>>>>>>>>>>>>>>>>> library without maintaining public artifacts for it. Is that >>>>>>>>>>>>>>>>>> in line with what you're thinking? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> > I'd also like to see us get a Harry run integrated as part >>>>>>>>>>>>>>>>>> > of our pre-commit CI >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I'm a strong supporter of this, of course. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On May 16, 2023, at 11:03 AM, Josh McKenzie >>>>>>>>>>>>>>>>>>> <jmcken...@apache.org <mailto:jmcken...@apache.org>> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Similar to what we've done with accord in >>>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/CASSANDRA-18204, I'd >>>>>>>>>>>>>>>>>>> like to discuss bringing cassandra-harry in-tree as a >>>>>>>>>>>>>>>>>>> submodule. repo link: >>>>>>>>>>>>>>>>>>> https://github.com/apache/cassandra-harry >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Given the value it's brought to the project's stabilization >>>>>>>>>>>>>>>>>>> efforts and the movement of other things in the ecosystem >>>>>>>>>>>>>>>>>>> to being more integrated (accord, build-scripts >>>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/CASSANDRA-18133), I >>>>>>>>>>>>>>>>>>> think having the testing framework better localized and >>>>>>>>>>>>>>>>>>> integrated would be a net benefit for adoption, awareness, >>>>>>>>>>>>>>>>>>> maintenance, and tighter workflows as we troubleshoot >>>>>>>>>>>>>>>>>>> future failures it surfaces. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I'd also like to see us get a Harry run integrated as part >>>>>>>>>>>>>>>>>>> of our pre-commit CI (a 5 minute simple soak test for >>>>>>>>>>>>>>>>>>> instance) and having that local in this fashion should make >>>>>>>>>>>>>>>>>>> that a cleaner integration as well. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thoughts? >