> 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