> likely provide merge pain
Is there anyone that actually does merge commits w/adjustments to code for any 
non-trivial patches, or does everyone else have to "-s ours" with per-branch 
bespoke implementations and a --amend to the merge commit the way I have to? 
Not to pile on project frustrations with a thread; just genuinely curious.

If we have a consensus of preference for the K&R style, we could theoretically 
wait until immediately after accord merges then bulk update all our branches 
w/bracing adjustment. I think we'd be able to surgically do only that using 
intellij w/"Reformat Code" on a folder in the tree structure. If someone 
created a profile constrained down to only bracing style, I suspect we could 
hit it in one go.

Now, the effect on git blame and potential loss of history w/out doing 
something painful like imerge and history / annotation preservation? less good. 
Maybe Jon has some ideas; he's done a lot of black magic with git.

It would definitely have its costs, but it also wouldn't be a lot of toil if 
timed and executed surgically.

On Thu, Jan 16, 2025, at 3:34 PM, Tolbert, Andy wrote:
> > Isn't that what ant generate-idea-files does automatically? (that it sets 
> > code style like that)
> 
> Unless i'm not doing something right (very possible), I don't think it does 
> this automatically with generate-idea-files.  I've gotten in the habit of 
> updating my Checkstyle plugin to pull in .build/checkstyle.xml whenever I 
> regenerate my project.  The checkstyle plugin is definitely very useful.
> 
> It doesn't currently enforce any code style around braces since no rule is 
> currently being enforced in the checkstyle configuration.
> 
> Thanks,
> Andy
> 
> On Thu, Jan 16, 2025 at 2:16 PM Štefan Miklošovič <smikloso...@apache.org> 
> wrote:
>> _ The burden shouldn’t be on humans to place or check that every curly brace 
>> is on its own line._
>> 
>> Who is actually doing this? It is one shortcut in IDEA and it all places 
>> them correctly. I don't even know what the shortcut is, I never think about 
>> that consciously anymore.
>> 
>> Isn't that what ant generate-idea-files does automatically? (that it sets 
>> code style like that)
>> 
>> A committer can just format that upon merge, we do not need to stress about 
>> that during reviews.
>> 
>> On Thu, Jan 16, 2025 at 8:44 PM Jordan West <jw...@apache.org> wrote:
>>> IMO the more we can enforce the style guide programmatically the better. It 
>>> was a big improvement when we got parts of it in IntelliJ. It saves time 
>>> and reduces friction. The burden shouldn’t be on humans to place or check 
>>> that every curly brace is on its own line. And if we say don’t check during 
>>> review or automatically then why have a guide? Sure we can nitpick on the 
>>> definition of the word “guide” here but I think we all mostly agree a 
>>> uniform style (with some wiggle room for edge cases) is good for the 
>>> project. Or again, why have the guide? 
>>> 
>>> The challenge is getting these tools to do what we want can be a pain as 
>>> folks who have explored it have outlined. So then I think it comes back to 
>>> Josh’s question (to paraphrase) of “is it good enough as is”? And as an 
>>> aside we might want to ask ourselves “why have we chosen a style guide that 
>>> is hard to implement in these tools?” 
>>> 
>>> If folks see some easy wins and want to volunteer time to make the changes 
>>> I think we should encourage that. 
>>> 
>>> On Thu, Jan 16, 2025 at 07:35 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
>>>>>> 
>>>> 

Reply via email to