I am sorry if I read this incorrectly but the vibe I am getting is that we are going to rework that.
On Fri, Jan 17, 2025 at 3:22 PM Štefan Miklošovič <smikloso...@apache.org> wrote: > Are really new-line braces so much pain? It is interesting to see this, > really. What are the main problems with that? You can just format that by > shortcuts in IDEA and I suggested that we might explore how to make it the > part of generate-idea-files. What are we trying to solve by reformatting > 2k+ files to have braces elsewhere? > > On Fri, Jan 17, 2025 at 3:05 PM Josh McKenzie <jmcken...@apache.org> > wrote: > >> As is tradition, this thread has split off into a few topics; fwiw I take >> this as a very positive sign as it means we all care a lot about the >> project and what we work on, and it's a sign we should maybe talk more >> frequently about discrete topics instead of remembering adjacent topics >> when something like this comes up and piling on. ;) >> >> Let me try and round them up and snapshot any indications of consensus: >> >> 1. *Should we automate linting / formatting?* Strong no from ay / >> bes, some loose opinions in favor of it. Maybe a compromise would be >> having >> a checkstyle target that'd include formatting people could optionally run >> locally but not formally integrating it into CI; make it opt-in. >> 2. *Are we happy with our bracing style, and would it be too painful >> to change it now?* Seems like, in general, we range from -1 to -0 for >> all but one or two outliers who are +1. >> 1. Abe pointed out (in a forked thread in my email client /sad) that >> we can use a --ignore-revs-file option in git to switch bracing style >> in >> one go and keep our history. >> 2. Caleb pointed out we can do that trunk only. >> 3. Mick seconded raised concerns about forks absorbing pain. It'd >> be a post-accord consideration so at least mainline rebase pain would >> be >> minimized, and if we kept it to trunk-only that'd probably be fine. >> 3. *Should we put together a review guideline for the project?* >> Worth considering for us as a project; Benedict indicated receptivity to >> us >> having one based on the google one here >> <https://google.github.io/eng-practices/review/reviewer/>. >> >> So, Bernardo: hopefully the general "vibes" of what you were shooting for >> on this thread initially are answered in terms of us covering our surface >> area of the status quo. Shall we break out into 3 [DISCUSS] threads for >> each of the above 3 topics and put this thread to rest? >> >> On Fri, Jan 17, 2025, at 6:36 AM, Benedict wrote: >> >> >> I would support adopting a review guide based on this one. >> >> On 16 Jan 2025, at 15:36, Josh McKenzie <jmcken...@apache.org> wrote: >> >> >> >> Perhaps a “Review Guide” is what we need to make sure we keep review >> primarily focused on the core contribution, and to help avoid folk getting >> bogged down in style sniping. >> >> I recall reading through / offering this guide in the past as a starting >> point for an org I was managing at the time: >> https://google.github.io/eng-practices/review/reviewer/ >> >> Been years; might be worth it to have a skim through that and see if it >> could serve as a reasonable starting point for us if someone has the >> inclination. >> >> On Thu, Jan 16, 2025, at 9:17 AM, Benedict wrote: >> >> >> I can imagine that it might cause some frustrating review interactions >> people would like to avoid, but for solving that I’d prefer we take a more >> social approach. >> >> Review shouldn’t spend much time on minor style points, and these should >> normally be framed as suggestions. Obviously newer contributors may need >> pointing to the style guide as something to familiarise themselves with, >> but it shouldn’t readily be invoked as a “thou shalt do this” tool. >> >> Perhaps a “Review Guide” is what we need to make sure we keep review >> primarily focused on the core contribution, and to help avoid folk getting >> bogged down in style sniping. >> >> >> On 16 Jan 2025, at 14:08, Josh McKenzie <jmcken...@apache.org> wrote: >> >> >> Right now our codebase is pretty consistent, especially for not having a >> linter enforcing this kind of thing. Are we trying to solve for codebase >> consistency, education of new contributors, both? Neither? >> >> If just solving for consistency I'd argue we're good. If educating new >> contributors, the Code Style guide *seems* pretty thorough to me? >> https://cassandra.apache.org/_/development/code_style.html >> >> All of which is to say - it *feels* like the status quo is fine here for >> me. i.e. it's not clear to me what problem we're trying to solve w/a change >> here. >> >> On Wed, Jan 15, 2025, at 9:58 PM, guo Maxwell wrote: >> >> I agree with you for all these two points. >> >> I think you should open a ticket to solve this if you want to add a rule >> to checkstyle, as I know there are many old codes that do not comply with >> this rule. >> For point 2, this really feels like personal preference, but I'd probably >> listen to the reviewer's opinion.😁 >> >> Tolbert, Andy <x...@andrewtolbert.com> 于2025年1月16日周四 08:47写道: >> >> Reading back https://issues.apache.org/jira/browse/CASSANDRA-19276 a bit >> more, I think I *was* able to make checkstyle bend to the "Code Style" >> definition by ignoring lambda tokens. It's just that there were a lot of >> "violations" which defined a method on one line: >> >> public int getActiveTaskCount() { return 0; } >> public long getCompletedTaskCount() { return 0; } >> public int getPendingTaskCount() { return 0; } >> public int getCorePoolSize() { return 0; } >> public int getMaximumPoolSize() { return 0; } >> >> I felt that this code was perfectly readable and wouldn't be right to >> change. This is what I wanted to make checkstyle consider acceptable. >> >> I think it would be really nice if checkstyle would fail for the more >> obvious case we want to avoid that comes up in reviews or sometimes slips >> into the codebase if not caught by a reviewer, e.g.: >> >> if { >> //... >> } >> >> Thanks, >> Andy >> >> On Wed, Jan 15, 2025 at 6:21 PM Tolbert, Andy <x...@andrewtolbert.com> >> wrote: >> >> Hi Bernardo, >> >> Thanks for bringing this up! >> >> Last year I was looking into enforcing curly braces as defined in Code >> Style <https://cassandra.apache.org/_/development/code_style.html> and >> had some thoughts on how to make this work but hit a bit of a brick wall: >> >> https://issues.apache.org/jira/browse/CASSANDRA-19276 >> >> I don't think there is an easy way as is to enforce this with checkstyle >> currently: >> >> "{ and } are placed on a new line except when empty or opening a >> multi-line lambda expression. Braces may be elided to a depth of one if the >> condition or loop guards a single expression." >> >> Without making changes to checkstyle itself (e.g.: >> https://github.com/checkstyle/checkstyle/issues/12226). >> >> I think if we were to add a new rule around brackets and newlines, we >> would ideally try to make it match the Code style definition as its >> declared, and hopefully it would not be too require touching a lot of files >> (which maybe the case unfortunately). >> >> Thanks, >> Andy >> >> On Wed, Jan 15, 2025 at 6:10 PM Benedict <bened...@apache.org> wrote: >> >> Even something as simple as the curly brace rule has sensible exceptions. >> I’m pretty hard -1 on letting a linter make all our editing decisions. >> Formatting is a contextual choice about how to best represent information >> to the reader, and we should not abdicate responsibility. The style guide >> is exactly that, a guide and that helps us navigate editing choices, and it >> can be evolved or refined via discussion and experimentation. >> >> For example, the second clause in your quote (re: lambdas) came about >> only because we could break the restrictions of the first clause and >> demonstrate an improvement to readability. >> >> If this is a pain point during review, either some people are too eager >> to point to the code style guide, or perhaps your IDE defaults need >> updating. This shouldn’t cause lots of traffic. >> >> People should try not to overly nitpick formatting, though of course a >> balance is to be struck between contributors’ expression of their code and >> that code sitting neatly in its context in the codebase. >> >> > On 15 Jan 2025, at 23:50, Bernardo Botella < >> conta...@bernardobotella.com> wrote: >> > >> > Hi everyone! >> > >> > I wanted to raise a question about code style for the project. I've >> been receiving some feedback on PRs about the need to: >> > - Have curly braces start on a new line >> > - Remove curly braces if the condition or loop has only one expression >> > >> > Taking a look at the official Code Style stated in the web, I read that: >> > "{ and } are placed on a new line except when empty or opening a >> multi-line lambda expression. Braces may be elided to a depth of one if the >> condition or loop guards a single expression." >> > >> > Which addresses the first type of comments I mentioned (curly braces >> starting in a new line), but leaves open the second type of comments >> (remove not needed curly braces). >> > >> > But, when looking at the checkstyle.xml, I don't see any rule enforcing >> any of those two types of comments. >> > >> > I believe checkstyle.xml should be our contract, so I'm proposing here: >> > >> > For "curly braces starting in a new line" rule, add something like what >> we already have on Sidecar and Analytics projects: >> > <module name="LeftCurly"> >> > <!-- Checks for placement of the left curly brace ('{'). --> >> > <property name="option" value="nl"/> >> > ... >> > </module> >> > >> > That way, we can fail fast and not worry about those comments on PRs. >> This of course may be painful, as we probably will have to fix a bunch of >> wrongly placed brackets all over the place. >> > >> > If there are no concerns here, I'll be more than happy to bite the >> bullet and add a patch for this. >> > >> > >> > >> > For "remove not needed curly braces", I understand that it tends to be >> the preference on the code, so we either modify the documentation and add a >> rule for that on the checkstyle.xml, or we are fine with that style and >> there is no need to remove them on patches. >> > >> > I wanted to hear the thoughts on the community for this one. My >> preference is to always use brackets, but that's just a preference, so it's >> perfectly fine not to enforce it and leave the documentation as is. >> > >> > Thanks everyone! >> > Bernardo >> >> >> >> >>