On Tue, Jun 25, 2024 at 12:14 PM Eelco Chaudron <echau...@redhat.com> wrote:

>
>
> On 25 Jun 2024, at 11:53, Ales Musil wrote:
>
> > On Tue, Jun 25, 2024 at 11:20 AM Eelco Chaudron <echau...@redhat.com>
> wrote:
> >
> >>
> >>
> >> On 25 Jun 2024, at 10:11, Dumitru Ceara wrote:
> >>
> >>> On 6/25/24 08:54, Ales Musil wrote:
> >>>> On Tue, Jun 25, 2024 at 8:48 AM Eelco Chaudron <echau...@redhat.com>
> >> wrote:
> >>>>
> >>>>>
> >>>>>
> >>>>> On 24 Jun 2024, at 17:52, Ales Musil via discuss wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>
> >>> Hi Ales,
> >>>
> >>> Thanks for bringing this up!
> >>>
> >>>>>> I would like to propose a universal coding style using clang-format
> >> [0].
> >>>>>> I've put together the config file that is matching the current
> coding
> >>>>> style
> >>>>>> as closely as possible [1]. I've tried it on some random pieces of
> >> code
> >>>>>> that we have in the OVN codebase and there are some instances where
> it
> >>>>>> doesn't much 1:1 (down below). The idea would be to add this into CI
> >> and
> >>>>>> run this only on diff so we don't have to modify old code. Let me
> know
> >>>>> what
> >>>>>> you think and if it would be acceptable. In the end we can have a
> >> style
> >>>>> and
> >>>>>> let some pieces of code diverge on that.
> >>>>>
> >>>>> I like the idea as it makes the maintainer’s live easier, as some
> might
> >>>>> slip through, and we can always ignore a specific warning if some
> other
> >>>>> style is used in the whole file. If it’s a directory you can override
> >> the
> >>>>> parent config file.
> >>>>>
> >>>
> >>> I agree, it will still be up to the maintainer to "waive" some of the
> >>> warnings if the suggested change would make the code look unnatural.
> >>> But, in my opinion, that should be fine.
> >>>
> >>>>
> >>>>>> Before:
> >>>>>> ctl_error(ctx, "Same routing policy already existed on the "
> >>>>>>           "logical router %s.", ctx->argv[1]);
> >>>>>>
> >>>>>> After:
> >>>>>>
> >>>>>> ctl_error(ctx,
> >>>>>>           "Same routing policy already existed on the logical "
> >>>>>>           "router %s.",
> >>>>>>           ctx->argv[1]);
> >>>>>
> >>>>> This might be something to get use too, or ignore (in GitHub), as
> >> almost
> >>>>> all code will continue filling up the next line(s).
> >>>>>
> >>>>
> >>>> Yeah it's a bit strange, however still readable, it really depends on
> >> the
> >>>> length of the string in this case. If the string fits into one line
> it's
> >>>> capable of having multiple arguments next to each other.
> >>>>
> >>>
> >>> Same here, it's not great but also not that terrible.  I think it's
> >>> probably acceptable.
> >>>
> >>>>
> >>>>>
> >>>>>> Before:
> >>>>>> return (out_port != VIGP_CONTROL_PATH
> >>>>>>         ? alpheus_output_port(dp, skb, out_port)
> >>>>>>         : alpheus_output_control(dp, skb, fwd_save_skb(skb),
> >>>>>>                                  VIGR_ACTION));
> >>>>>>
> >>>>>> After:
> >>>>>> return (
> >>>>>>     out_port != VIGP_CONTROL_PATH
> >>>>>>         ? alpheus_output_port(dp, skb, out_port)
> >>>>>>         : alpheus_output_control(dp, skb, fwd_save_skb(skb),
> >>>>> VIGR_ACTION));
> >>>>>
> >>>>> I assume this is a none problem, as you do not need the outer
> >> parenthesis
> >>>>> on return. Or is this for general match with parenthesis?
> >>>>>
> >>>>
> >>>> This is specific (from what I can tell) to return statements. Without
> >> the
> >>>> parenthesis it's way better:
> >>>>
> >>>> return out_port != VIGP_CONTROL_PATH
> >>>>            ? alpheus_output_port(dp, skb, out_port)
> >>>>            : alpheus_output_control(dp, skb, fwd_save_skb(skb),
> >>>>                                     VIGR_ACTION);
> >>>>
> >>>>
> >>>
> >>> This one I don't really like but hopefully we won't have a lot of these
> >>> situations (multi-line ternary).  We should probably add clear
> >>> documentation (maybe we should improve the contribution guide in
> >>> general) and mention that warnings generated for multi-line ternary can
> >>> be ignored and the documented coding style should be used instead.
> >>
> >> I have not used clang’s linter for a while, but can you tell it not to
> >> warn/ignore specific styles? If not, maybe we can have the GitHub
> wrapper
> >> ignore specific style warnings.
> >>
> >
> >
> > You can use annotation on specific pieces of code via simple comment e.g.
> > "/*clang-format off */". We could use those to skip the warnings if
> needed.
>
> I do not think we should add this, as the code would quickly become a
> mess. I was suggesting that when you run this on the diff during the GitHub
> action, to add a wrapper that will not report certain violations, i.e. the
> ones we do not care about (do not like).
>

Wouldn't that be very hard to detect? If we get diff of things that should
be changed I'm not sure how to detect if it's something that we should
ignore.


>
>
> >>>>>> [0]
> https://gist.github.com/almusil/d9fc05c9e9ab6cef9448e123b49c351e
> >>>>>> [1]
> >>>>>
> >> https://docs.ovn.org/en/stable/internals/contributing/coding-style.html
> >>>>>>
> >>>>>> --
> >>>>>>
> >>>>>> Ales Musil
> >>>>>>
> >>>>>> Senior Software Engineer - OVN Core
> >>>>>>
> >>>>>> Red Hat EMEA <https://www.redhat.com>
> >>>>>>
> >>>>>> amu...@redhat.com
> >>>>>> <https://red.ht/sig>
> >>>>>
> >>>>>> _______________________________________________
> >>>>>> discuss mailing list
> >>>>>> disc...@openvswitch.org
> >>>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
> >>>>>
> >>>>>
> >>>>
> >>
> >>
> >
> > --
> >
> > Ales Musil
> >
> > Senior Software Engineer - OVN Core
> >
> > Red Hat EMEA <https://www.redhat.com>
> >
> > amu...@redhat.com
> > <https://red.ht/sig>
>
>

-- 

Ales Musil

Senior Software Engineer - OVN Core

Red Hat EMEA <https://www.redhat.com>

amu...@redhat.com
<https://red.ht/sig>
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to