Why are we still debating build tooling? I think you’re wrong, but I’ve conceded - on the assumption that we can get enough volunteers willing to adopt responsibility for the new world order.
Not debating. I am just throwing in my support since I have been in the Camp of Ant. On Wed, Nov 30, 2022 at 1:29 AM Benedict <bened...@apache.org> wrote: > Why are we still debating build tooling? I think you’re wrong, but I’ve > conceded - on the assumption that we can get enough volunteers willing to > adopt responsibility for the new world order. > > I suggest five long term contributors nominate themselves as the build > file maintainers, and collectively manage a safe and painless migration for > the rest of us - and agree to maintain and develop the new build file going > forwards, and support the community as they adopt it. > > On the topic of over-exuberant linting I will continue to push back. I > think linting our brace rules could make sense since they are atypical, but > more formatting rules than this likely just leads to atrophying style. > Authorship involves thinking about how to present your code; I don’t want > to either encourage lazy authorship or prevent experimentation with > presentation. Both would be bad, and I expect we would struggle to evolve > our style guide again in future as the language evolves. Our brace rules > are a good example everyone unilaterally ignored when lambdas arrived, as > we all recognised they materially harmed the brevity benefits, and we > eventually codified this. > > On migration: auto formatters applied to code that was not written with > the rules in mind will almost unerringly be made a mess of, so having a > tool do this is not acceptable IMO. > > The idea of checkstyle being the source of truth continues to be untenable > and anyone still pushing for this should please engage with my earlier > points on this. > > > On 30 Nov 2022, at 04:06, Patrick McFadin <pmcfa...@gmail.com> wrote: > > > I'm going to +1 what Stefan has said. I've heard on many occasions from > newcomers to the project that having to use Ant is a deterrent. As a matter > of fact, a few weeks ago, I spent a Sunday afternoon helping somebody > trying to build Cassandra and Ant caused a ton of problems. "Ok. ant really > super clean this time" > > Sure it still works for people that have been doing this for years. I > drive a 20 year old Toyota truck, but I'm reminded by my kids often that > it's not cool. So in that spirit, I feel my saying we need to keep Ant is > like saying "You kids get off my lawn!" If it's something that will help > attract new contributors, I'm all for it. > > Patrick > > On Fri, Nov 25, 2022 at 2:22 AM Miklosovic, Stefan < > stefan.mikloso...@netapp.com> wrote: > >> I agree with what you wrote. How I understand it is that migrating to >> Maven/Gradle makes the project more "attractive" for newcomers. If a >> project is built on "that old un-cool Ant", it might be a little bit >> off-putting and questionable if we are "stuck in the past on build systems >> and not progressing". >> >> So in that sense I agree this is more "marketing" rather than >> technological question but on the other hand, does not Maven/Gradle allow >> us to modularize the project better? Maybe we would like to modularize but >> nobody is up to that because build system makes it impossible or at least >> quite inconvenient to do so. Do you really think there are not any >> significant benefits to switch even if it "just works" now? >> >> ________________________________________ >> From: Benedict <bened...@apache.org> >> Sent: Friday, November 25, 2022 11:07 >> To: dev@cassandra.apache.org >> Subject: Re: [DISCUSSION] Cassandra's code style and source code analysis >> >> NetApp Security WARNING: This is an external email. Do not click links or >> open attachments unless you recognize the sender and know the content is >> safe. >> >> >> >> >> There’s always a handful of people asking for it, but notably few if any >> of the full time contributors doing the majority of the core development of >> Cassandra. It strikes me as something very appealing to others, but less so >> to those wanting to get on with development. >> >> I never really see a good argument articulated for the migration, besides >> general hand waving that ant is old, and people like newer build systems. >> Ant is working fine, so there isn’t a strong technical reason to replace >> it, and there are good organisational reasons not to. >> >> Why do you consider a migration inevitable? >> >> >> >> > On 25 Nov 2022, at 09:58, Miklosovic, Stefan < >> stefan.mikloso...@netapp.com> wrote: >> > >> > Interesting take on Ant / no-Ant, Benedict. I am very curious how this >> unfolds. My long-term perception is that changing it to something else is >> more or less inevitable but if there is a broader consensus to not do that >> .... well. >> > >> > ________________________________________ >> > From: Benedict <bened...@apache.org> >> > Sent: Friday, November 25, 2022 10:52 >> > To: dev@cassandra.apache.org >> > Subject: Re: [DISCUSSION] Cassandra's code style and source code >> analysis >> > >> > NetApp Security WARNING: This is an external email. Do not click links >> or open attachments unless you recognize the sender and know the content is >> safe. >> > >> > >> > >> > >> > I was in a bit of a rush last night. I should say that I’m of course +1 >> a general endeavour to clean this up, and to expand our use of linters, and >> I appreciate your volunteering to help out in this way Maxim. >> > >> > However, responding to Stefan, I’m pretty -1 migrating from ant to >> another build system without really good reason. Migration has a real cost >> to productivity for all existing contributors, and the phantom of >> increasing new contributions has never paid off historically. I’m all for >> easing people into participation, but not at penalty to the existing >> contributor base. >> > >> > If the only reason is to make it easier to open in a different IDE, we >> can perhaps have some basic build files outlining code structure for >> importing, that are compatible with our canonical ant build? We could >> perhaps even generate them. >> > >> > >> >> On 25 Nov 2022, at 09:35, Miklosovic, Stefan < >> stefan.mikloso...@netapp.com> wrote: >> >> >> >> For the record, I was testing that same combo Claude mentioned and it >> did not work out of the box but it is definitely possible to set up >> successfully. I do not remember the details. >> >> >> >> To replay to Maxim, it all seems good to me, roughly, but I humbly >> think it all boils down to Maven/Gradle refactoring and on top of that we >> can do all else. >> >> >> >> For example, there is (1) where the solution, besides fixing the >> tests, is to introduce an Ant task which would check this on build. That >> being said, how is that going to look like when we change Ant for something >> else? That stuff suddenly becomes obsolete. >> >> >> >> This case maybe applies to other problems we want to solve as well. I >> do not want to do something tailored for one build system just to rewrite >> it all or to spend significant amount of time on that again when we switch >> the build system. >> >> >> >> For that reason I think changing Ant for something else should be top >> priority (as I understand that it the hot topic for community for very long >> time) and then everything else should follow. We should spend time on >> things mentioned only in case they do not collide with any build system at >> all. >> >> >> >> (1) https://issues.apache.org/jira/browse/CASSANDRA-17964 >> >> >> >> Stefan >> >> >> >> ________________________________________ >> >> From: Claude Warren, Jr via dev <dev@cassandra.apache.org> >> >> Sent: Friday, November 25, 2022 10:16 >> >> To: dev@cassandra.apache.org >> >> Subject: Re: [DISCUSSION] Cassandra's code style and source code >> analysis >> >> >> >> NetApp Security WARNING: This is an external email. Do not click links >> or open attachments unless you recognize the sender and know the content is >> safe. >> >> >> >> >> >> >> >> +1 for the concept as a whole. I am certain I could find nits to pick >> if I looked deeply. >> >> >> >> @mck -- I did have a problem with Cassandra + Eclipse + Java11 >> (Classpath). I gave up and am spending time trying to learn IntelliJ. I >> also mentioned it in one of the discussion areas. >> >> >> >> Claude >> >> >> >> On Thu, Nov 24, 2022 at 8:55 PM Mick Semb Wever <m...@apache.org >> <mailto:m...@apache.org>> wrote: >> >> Thank you for a solid write up Maxim. And welcome to Cassandra, it's >> >> very positive to see you here. >> >> >> >> I whole-heartedly agree with nearly everything you write. Some input >> >> and questions inline. >> >> >> >> >> >>> >> >>> As you may know, the infrastructure team has disabled public sign-up >> >>> to ASF JIRA (the GitHub issues are recommended instead). >> >>> >> >> >> >> >> >> I suspect (based on chatter in general, but not on dev@ AFAIK) is to >> >> avoid GH issues and stick with jira. The sign-up hurdle we will >> >> document on the website: CASSANDRA-18064 >> >> >> >> >> >> >> >>> == 1. Make the checkstyle config a single point of truth for the >> >>> source code style. == >> >>> >> >>> The checkstyle is already used and included in the Cassandra project >> >>> build lifecycle (ant command line, Jenkins, CircleCI). There is no >> >>> need to maintain code style configurations for different types of IDEs >> >>> (e.g. IntelliJ inspections configuration) since the checkstyle.xml >> >>> file can be directly imported to IDE used by a developer. This is fair >> >>> for Intellij Idea, NetBeans, and Eclipse. >> >> >> >> >> >> Big +1 >> >> >> >> >> >>> So, I propose to focus on the checks themselves and checking pull >> >>> requests with automation scripts, rather than maintaining these >> >>> integrations. The benefits here are avoiding all issues with >> >>> maintaining configurations for different IDEs. Another good advantage >> >>> of this approach would be the ability to add new checkstyle rules >> >>> without touching IDE configuration - and such tickets will be LFH and >> >>> easy to commit. >> >>> >> >>> The actions points here are: >> >>> >> >>> - create an umbrella JIRA ticket for all checkstyle issues e.g. [8] >> >>> (or label checkstyle); >> >>> - add checkstyle to GitHub pull requests using GitHub actions (execute >> >>> ant command); >> >> >> >> >> >> Instead of custom GHA scripting, please use our existing >> >> cassandra-artifact.sh (which should already include all such checks). >> >> >> >> Something like >> https://github.com/apache/cassandra/compare/cassandra-3.11...thelastpickle:cassandra:mck/github-actions/3.11 >> >> >> >> >> >> >> >>> == 3. Enable pushing backwards build results for both Jenkins and >> >>> CircleCI to GitHub pull requests. == >> >>> >> >>> The goal here is to have a "green checkbox" for those GitHub pull >> >>> requests that have corresponding Jenkins/CircleCI runs. According to >> >>> the following links, it is completely possible to have those. >> >>> >> >>> https://github.com/jenkinsci/github-branch-source-plugin >> >>> https://circleci.com/docs/enable-checks/ >> >>> >> >>> Moreover, the GitHub Branch Source Plugin is already enabled for the >> >>> Cassandra project [16]. The same seems should work the same way for >> >>> CirleCI, but I have faced the infrastructure team comment [17] that >> >>> describes admin permissions are required for that, so the question is >> >>> still open here. I could dig a bit more once we've agreed on it. >> >>> >> >>> The actions points here are: >> >>> - enable Jenkins integration for GitHub pull requests; >> >>> - enable CircleCI integration for GitHub pull requests; >> >> >> >> >> >> Some folk use CircleCI, some use ci-cassandra. The green checkbox idea >> >> is great, so long as it's optional. We don't want PRs triggering the >> >> runs either (there are other mechanisms for triggering for now). >> >> >> >> >> >>> The actions points here are: >> >>> >> >>> - initiate a wide survey for user and dev lists, to get to know about >> >>> the usages; >> >>> - remove those configurations that are not used anymore; >> >>> - force migration from Ant to Gradle/Maven; >> >> >> >> >> >> Let's leave this out for now. There's too many unknowns here. If >> >> there's an IDE configuration that's broken, no one has reported it for >> >> ages, and no one is around to fix it, then I say we should raise the >> >> discussion to remove it. >> >> >> >> The Gradle/Maven migration is a hot one, contribute to that discussion >> >> but let's not tangle this work up with it, IMHO. >> >> >> >> Totally agree that IDE project files should be as light weight as >> possible. >> >> >> >> >> >>> Summarizing everything proposed above I think it is possible to >> >>> simplify adding small contributions easier to the codebase as well as >> >>> save a bunch of committer's time. >> >>> >> >>> So, >> >>> WDYT about the things described above? >> >>> Should I create a CEP for this? >> >> >> >> >> >> I see no need for a CEP here. An epic and tickets will work. >> >> Again, thanks for the input Maxim! >> >>