+1 on Stamatis' idea, I think it could help with the current situation of lack of reviewers.
Best, Ruben On Thu, Jun 23, 2022 at 12:56 PM Charles Givre <cgi...@gmail.com> wrote: > Hello all, > FWIW, If a committer/reviewer shortage is the issue, I'd second Stamatis's > recommendation. > Best, > -- C > > > On Jun 23, 2022, at 7:02 AM, Stamatis Zampetakis <zabe...@gmail.com> > wrote: > > > > Hi all, > > > > How about granting Calcite committership to people who are already ASF > > committers (in other projects) and they have a proven record of working > > with Calcite? > > > > Usually the PMC invites people to become committers to the project after > > having a few successful code contributions in Calcite/Avatica repos. > > This is to ensure that people are familiar with the codebase and > understand > > how the ASF works. > > > > People who are already committers in an ASF project already know how the > > foundation works and how they should behave. > > Also people working in projects like Drill, Flink, Hive, Ignite, Phoenix, > > etc., may already be quite familiar with Calcite if they have worked on > the > > query processing layer of the system. > > > > It might be difficult for the Calcite PMC to identify people familiar > with > > Calcite if they don't contribute to the main Calcite/Avatica repos > > regularly thus I would be open to consider people for committers on a per > > request basis. > > > > Example: > > Bob is an ASF committer in Flink and he has pushed various contributions > > around Calcite in the Flink repo. > > Bob feels confident about fixing trivial things in Calcite and he wants > to > > help with reviewing and merging open PRs. > > Bob sends an email to private@calcite list requesting to become a > Calcite > > committer. > > Bob explains in the email who he is and what he has done to demonstrate > he > > is familiar with the Calcite code. > > The Calcite PMC acknowledges the request and starts a vote for granting > > Calcite comittership to Bob. > > The Calcite PMC informs Bob about their decision and takes further > actions > > if necessary. > > > > If we agree on the overall idea we can figure out the details and > formalize > > the request process in our docs. > > > > Best, > > Stamatis > > > > On Thu, Jun 23, 2022 at 6:06 AM Jing Zhang <beyond1...@gmail.com> wrote: > > > >> Hi everyone, > >> > >> This is an awesome discussion to improve collaborating between different > >> projects. > >> Thanks Julian, Jacques, Austin, Martijn, Timo's effort to make it > happen. > >> > >> Best, > >> Jing Zhang > >> > >> Martijn Visser <martijnvis...@apache.org> 于2022年6月23日周四 01:43写道: > >> > >>> Hi Jacques, Julian, Austin and everyone else, > >>> > >>> Thank you very much for sharing all your experiences and providing > really > >>> valuable input. I'll definitely relay this back to the original > >> discussion > >>> thread in the Flink community. Part of bringing this information back > to > >>> the Flink community is also because I feel like the only way that > >> different > >>> OSS solutions can help each other forward is by communicating and > >>> collaborating. As Timo already mentioned, he'll try to help out. Let's > >> try > >>> to get some more involved. > >>> > >>> Side note: I also saw that this thread got some traction on Twitter [1] > >> on > >>> the cost of forking. > >>> > >>> Best regards, > >>> > >>> Martijn > >>> > >>> [1] > >>> > >>> > >> > https://twitter.com/gunnarmorling/status/1539499415337111553?s=21&t=8fGk3PxScOx4FJPJWE5UeA > >>> > >>> Op wo 22 jun. 2022 om 09:29 schreef Timo Walther <twal...@apache.org>: > >>> > >>>> Hi everyone, > >>>> > >>>> This is a really great discussion. Thanks for starting it Martijn and > >>>> your input Jacques! I have been fighting against forking Calcite in > >>>> Flink for years already. Even when merging forks of Flink that > >>>> transitively forked Calcite, in the end we were able to resolve > >>>> conflicts / contribute blockers back into Calcite. And I strongly > >>>> believe that this is the better approach for long-term success for > both > >>>> projects. > >>>> > >>>> I would like to get more involved in the Calcite community. I have > been > >>>> implementing and managing Flink SQL based on Calcite since 2016. Thus, > >> I > >>>> feel confident to say that I know the code base and some quirks in the > >>>> stack very well. > >>>> > >>>> Capacity-wise I will try to reserve some time for helping the Calcite > >>>> community. Happy to get some pointers where and how I can help. > >>>> > >>>> I will take a look at https://github.com/apache/calcite/pull/2606 > this > >>>> week to get the ball rolling. As this is an important addition and > >>>> prepares for "customer SQL operators" in Flink SQL. > >>>> > >>>> Regards, > >>>> Timo > >>>> > >>>> On 21.06.22 22:18, Charles Givre wrote: > >>>>> As the PMC for Apache Drill, I'd echo everyone's comments here.... > >>> Don't > >>>> fork. Don't do it. > >>>>> > >>>>> Apache Drill forked Calcite several years ago which Calcite was on > >>>> version 1.20 or 1.21. While this meant that some bugs were easily > >> fixed, > >>>> what it also meant that as our fork diverged from "regular" Calcite, > it > >>>> became harder and harder to maintain. It also meant that we were > >> chasing > >>>> bugs that had since been fixed. > >>>>> > >>>>> Drill is in the process of "de-forking" Calcite, meaning that we're > >>>> ditching our fork and re-integrating with standard Calcite. It has > >> been > >>> A > >>>> TON of work and we have contributed (and will continue to contribute) > >> bug > >>>> fixes and PRs to Calcite. In the long run, I think this will be > >>> beneficial > >>>> for both communities. > >>>>> > >>>>> Best, > >>>>> -- C > >>>>> > >>>>> > >>>>>> On Jun 21, 2022, at 1:57 PM, Julian Hyde <jhyde.apa...@gmail.com> > >>>> wrote: > >>>>>> > >>>>>> Please don’t fork Calcite. > >>>>>> > >>>>>> Calcite suffers from the tragedy of the commons. Unlike many open > >>>> source data projects, there is no commercial project that directly > maps > >>> to > >>>> Calcite (even though Calcite is an essential part of many projects). > >> As a > >>>> result no engineers work full-time on Calcite. > >>>>>> > >>>>>> It takes more than pull requests to keep a project going. We need > >>>> reviewers, people to work on releases, people to fix bugs (such as > >>> security > >>>> bugs) that are important to everyone but urgent to no one. > >>>>>> > >>>>>> We have plenty of committers in Calcite, and add several more per > >>> year. > >>>> We rely on those committers taking on their share of the housework, > but > >>> the > >>>> burden falls on too few people. > >>>>>> > >>>>>> Engineering managers need to start paying a little more for the > >> “free > >>>> lunch” that they enjoy when Calcite “just works” in their project. > >> Sadly, > >>>> most engineering managers are not subscribed to this list. > >>>>>> > >>>>>> Julian > >>>>>> > >>>>>> > >>>>>>> On Jun 21, 2022, at 9:49 AM, Jacques Nadeau <jacq...@apache.org> > >>>> wrote: > >>>>>>> > >>>>>>> Martijn, thanks for sharing that thread in the Flink community. > >>>>>>> > >>>>>>> I'm someone who has forked Calcite twice: once in Apache Drill and > >>>> again in > >>>>>>> Dremio. In both cases, it was all about trading short term benefits > >>>> against > >>>>>>> long term costs. In both cases, I think the net amount of work was > >>>> probably > >>>>>>> 5x as much as what it would have been if we had just done a better > >>> job > >>>>>>> engaging the community. If I were to state the curve of behavior > >> over > >>>> six > >>>>>>> years, I'd guess that in both cases the numbers of effort looked > >> like > >>>> this: > >>>>>>> > >>>>>>> estimated effort doing high intensity integration with calcite > >> (years > >>>> 1-6) > >>>>>>> fork: 1, 5, 10, 50, 100, 200, total = 366 > >>>>>>> non-fork: 10, 10, 10, 10, 10, total = 50 > >>>>>>> > >>>>>>> So yes, the first couple years you're ahead. But you pay a massive > >>>>>>> technical debt premium long term. Early in a project (Drill) or > >>>> company's > >>>>>>> life (Dremio), it can make sense to sacrifice long term for short > >>> term > >>>> but > >>>>>>> it's important people do it with their eyes open. > >>>>>>> > >>>>>>> The reason that this pain is so high is that as your codebases > >>>> diverge, you > >>>>>>> start having to do everything the Calcite community does by > >> yourself. > >>>>>>> Backports become harder and things that you need (e.g. new sql > >>> syntax, > >>>> etc) > >>>>>>> have to be reimplemented (even if someone else already implemented > >>>> them in > >>>>>>> some post-fork Calcite version. Ultimately, at some point you > >> realize > >>>> that > >>>>>>> your path is untenable and you unfork. This becomes the biggest > >>>> expense of > >>>>>>> them all and I believe both of those teams are still trying to > >>>> un-fork. The > >>>>>>> additional thing that becomes an even bigger problem is your > >> absence > >>>> from > >>>>>>> the Calcite community means that people may take the project or > >> APIs > >>> in > >>>>>>> ways that are in direct conflict to how you use the library. Since > >>>> you're > >>>>>>> not active in the project, you fail to provide a counterpoint and > >>> then > >>>>>>> you're basically just in a miserable place. The Hive project did > >> this > >>>> best > >>>>>>> by ensuring that releases of Calcite were also run pre-release > >>> against > >>>> Hive > >>>>>>> to make sure no major regressions occurred. By being in the > >> community > >>>> and > >>>>>>> active, this is the best state from my pov. (It makes your project > >>>> better > >>>>>>> and Calcite better.) > >>>>>>> > >>>>>>> Two last notes: > >>>>>>> - I'm not sure the rocks fork is comparable to forking Calcite. The > >>> api > >>>>>>> surface area and community models are very different. > >>>>>>> - This is all based on a high intensity integration (using rules + > >>>> planner > >>>>>>> or sql + rules + planner). Calcite is frustratingly monolithic and > >> if > >>>>>>> someone was only going to use a small component, my opinion would > >>>> likely be > >>>>>>> very different. > >>>>>>> > >>>>>>> I'd send this to the Flink list but I'm not subscribed. It'd be > >> great > >>>> if > >>>>>>> you shared it with the people over there if you think they'd find > >> it > >>>> useful. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> On Tue, Jun 21, 2022 at 12:31 AM Martijn Visser < > >>>> martijnvis...@apache.org> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> Thanks Julian and Austin! > >>>>>>>> > >>>>>>>> Any reply to kick-off some sort of discussion is worthwhile :D > >>>>>>>> I definitely know the feeling of having more PRs open then you > >> would > >>>> like, > >>>>>>>> looking at https://github.com/apache/flink/pulls :) > >>>>>>>> > >>>>>>>> There have been discussions in the Flink community about forking > >>>> Calcite > >>>>>>>> [1]. My personal preference at the moment is to see if we can > >>> create a > >>>>>>>> better collaboration and community. I believe that we can find > >>> people > >>>> from > >>>>>>>> the Flink community who can open / help reviewing Calcite PRs that > >>> are > >>>>>>>> interesting for the Flink community. The question is if that will > >>>> also help > >>>>>>>> short term since in the end it still requires a Calcite maintainer > >>> to > >>>>>>>> review/merge. > >>>>>>>> > >>>>>>>> Best regards, > >>>>>>>> > >>>>>>>> Martijn > >>>>>>>> > >>>>>>>> [1] > >>> https://lists.apache.org/thread/1oqydpsm4mc55bkk440gx9lr9gf2rvf4 > >>>>>>>> > >>>>>>>> > >>>>>>>> Op ma 20 jun. 2022 om 23:51 schreef Austin Bennett < > >>>>>>>> whatwouldausti...@gmail.com>: > >>>>>>>> > >>>>>>>>> From the peanut gallery :-) --> > >>>>>>>>> > >>>>>>>>> Wow; yes, lots of open PRs. > >>> https://github.com/apache/calcite/pulls > >>>>>>>>> > >>>>>>>>> How can individuals from the Flink [sub-]community, and/or more > >>>> general > >>>>>>>>> calcite community help lighten this load? Is there much weight > >>>> given to > >>>>>>>>> reviews from non-committers; how to increase the # of people > >>> capable > >>>> of > >>>>>>>>> providing worthwhile reviews [ that are recognized as such ]? > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> On Mon, Jun 20, 2022 at 11:47 AM Julian Hyde < > >>> jhyde.apa...@gmail.com > >>>>> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> Martijn, > >>>>>>>>>> > >>>>>>>>>> Since you requested a reply, I am replying. To answer your > >>>> question, I > >>>>>>>>>> don’t know of a way to move this topic forward. We have more PRs > >>>> than > >>>>>>>>>> people to review them. > >>>>>>>>>> > >>>>>>>>>> Julian > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> On Jun 19, 2022, at 11:58 PM, Martijn Visser < > >>>>>>>> martijnvis...@apache.org > >>>>>>>>>> > >>>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>> Hi everyone, > >>>>>>>>>>> > >>>>>>>>>>> I just wanted to reach out to the Calcite community once more > >> on > >>>> this > >>>>>>>>>> topic > >>>>>>>>>>> since no reply was received. Would be great if someone could > >> get > >>>> back > >>>>>>>>> to > >>>>>>>>>> us. > >>>>>>>>>>> > >>>>>>>>>>> Best regards, > >>>>>>>>>>> > >>>>>>>>>>> Martijn > >>>>>>>>>>> > >>>>>>>>>>> Op wo 8 jun. 2022 om 11:24 schreef Martijn Visser < > >>>>>>>>>> martijnvis...@apache.org > >>>>>>>>>>>> : > >>>>>>>>>>> > >>>>>>>>>>>> Hi everyone, > >>>>>>>>>>>> > >>>>>>>>>>>> I would like to follow-up on this email that was sent by Jing. > >>> So > >>>>>>>> far, > >>>>>>>>>> no > >>>>>>>>>>>> progress has been made, despite reaching out to the mailing > >>> list, > >>>>>>>> the > >>>>>>>>>>>> original Jira ticket and reaching out to people directly. Is > >>>> there a > >>>>>>>>> way > >>>>>>>>>>>> that we can move this PR/topic forward? > >>>>>>>>>>>> > >>>>>>>>>>>> For context, in Apache Flink we're currently heavily using > >>>> Calcite. > >>>>>>>>>>>> However, we are now at the stage where Calcite is actually > >>> holding > >>>>>>>> us > >>>>>>>>>> back. > >>>>>>>>>>>> It would be great if we can find a way to strengthen our bond > >>> and > >>>>>>>> move > >>>>>>>>>> both > >>>>>>>>>>>> Calcite and Flink forward. > >>>>>>>>>>>> > >>>>>>>>>>>> Looking forward to your thoughts, > >>>>>>>>>>>> > >>>>>>>>>>>> Martijn > >>>>>>>>>>>> > >>>>>>>>>>>> On 2022/01/26 07:05:37 Jing Zhang wrote: > >>>>>>>>>>>>> Hi community, > >>>>>>>>>>>>> My apologies for interrupting. > >>>>>>>>>>>>> Anyone could help to review the pr > >>>>>>>>>>>>> https://github.com/apache/calcite/pull/2606? > >>>>>>>>>>>>> Thanks a lot. > >>>>>>>>>>>>> > >>>>>>>>>>>>> CALCITE-4865 is the first sub-task of CALCITE-4864. This Jira > >>>> aims > >>>>>>>> to > >>>>>>>>>>>>> extend existing Table function in order to support > >> Polymorphic > >>>>>>>> Table > >>>>>>>>>>>>> Function which is introduced as the part of ANSI SQL 2016. > >>>>>>>>>>>>> > >>>>>>>>>>>>> The brief change logs of the PR are: > >>>>>>>>>>>>> - Update `Parser.jj` to support partition by clause and order > >>> by > >>>>>>>>>> clause > >>>>>>>>>>>>> for input table with set semantics of PTF > >>>>>>>>>>>>> - Introduce `TableCharacteristics` which contains three > >>>>>>>>>> characteristics > >>>>>>>>>>>>> of input table of table function > >>>>>>>>>>>>> - Update `SqlTableFunction` to add a method > >>>>>>>> `tableCharacteristics`, > >>>>>>>>>>>> the > >>>>>>>>>>>>> method returns the table characteristics for the ordinal-th > >>>>>>>> argument > >>>>>>>>> to > >>>>>>>>>>>>> this table function. Default return value is Optional.empty > >>> which > >>>>>>>>> means > >>>>>>>>>>>> the > >>>>>>>>>>>>> ordinal-th argument is not table. > >>>>>>>>>>>>> - Introduce `SqlSetSemanticsTable` which represents input > >> table > >>>>>>>> with > >>>>>>>>>>>> set > >>>>>>>>>>>>> semantics of Table Function, its `SqlKind` is > >>>> `SET_SEMANTICS_TABLE` > >>>>>>>>>>>>> - Updates `SqlValidatorImpl` to validate only set semantic > >>> table > >>>>>>>> of > >>>>>>>>>>>> Table > >>>>>>>>>>>>> Function could have partition by and order by clause > >>>>>>>>>>>>> - Update `SqlToRelConverter#substituteSubQuery` to parse > >>> subQuery > >>>>>>>>>> which > >>>>>>>>>>>>> represents set semantics table. > >>>>>>>>>>>>> > >>>>>>>>>>>>> PR: https://github.com/apache/calcite/pull/2606 > >>>>>>>>>>>>> JIRA: https://issues.apache.org/jira/browse/CALCITE-4865 > >>>>>>>>>>>>> Parent JARA: > >>> https://issues.apache.org/jira/browse/CALCITE-4864 > >>>>>>>>>>>>> > >>>>>>>>>>>>> Best, > >>>>>>>>>>>>> Jing Zhang > >>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>>> > >>>> > >>>> > >>> > >> > >