From: Rob Herring <robh@kernel.org>
To: Conor Dooley <conor@kernel.org>
Cc: "Russell King (Oracle)" <linux@armlinux.org.uk>,
Linus Walleij <linus.walleij@linaro.org>,
Christian Marangi <ansuelsmth@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
devicetree@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Eric Dumazet <edumazet@google.com>,
Vladimir Oltean <olteanv@gmail.com>,
netdev@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org,
Gregory Clement <gregory.clement@bootlin.com>
Subject: Re: [PATCH net-next v4 1/7] dt-bindings: net: dsa: Require ports or ethernet-ports
Date: Thu, 19 Oct 2023 08:41:09 -0500 [thread overview]
Message-ID: <20231019134109.GA63240-robh@kernel.org> (raw)
In-Reply-To: <20231019-friday-fabulous-4882c4048b8c@spud>
On Thu, Oct 19, 2023 at 01:46:36PM +0100, Conor Dooley wrote:
> On Thu, Oct 19, 2023 at 01:27:09PM +0100, Russell King (Oracle) wrote:
> > On Thu, Oct 19, 2023 at 12:58:46PM +0100, Conor Dooley wrote:
> > > On Thu, Oct 19, 2023 at 11:58:49AM +0100, Russell King (Oracle) wrote:
> > > > On Wed, Oct 18, 2023 at 01:11:45PM +0200, Linus Walleij wrote:
> > > > > On Wed, Oct 18, 2023 at 12:32 PM Rob Herring <robh@kernel.org> wrote:
> > > > > > On Wed, 18 Oct 2023 11:03:40 +0200, Linus Walleij wrote:
> > > > >
> > > > > > > Bindings using dsa.yaml#/$defs/ethernet-ports specify that
> > > > > > > a DSA switch node need to have a ports or ethernet-ports
> > > > > > > subnode, and that is actually required, so add requirements
> > > > > > > using oneOf.
> > > > > > >
> > > > > > > Suggested-by: Rob Herring <robh@kernel.org>
> > > > > > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> > > > > > > ---
> > > > > > > Documentation/devicetree/bindings/net/dsa/dsa.yaml | 6 ++++++
> > > > > > > 1 file changed, 6 insertions(+)
> > > > > > >
> > > > > >
> > > > > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> > > > > > on your patch (DT_CHECKER_FLAGS is new in v5.13):
> > > > > >
> > > > > > yamllint warnings/errors:
> > > > > > ./Documentation/devicetree/bindings/net/dsa/dsa.yaml:60:7: [warning] wrong indentation: expected 8 but found 6 (indentation)
> > > > > > ./Documentation/devicetree/bindings/net/dsa/dsa.yaml:62:7: [warning] wrong indentation: expected 8 but found 6 (indentation)
> > > > >
> > > > > Really?
> > > > >
> > > > > + oneOf:
> > > > > + - required:
> > > > > + - ports
> > > > > + - required:
> > > > > + - ethernet-ports
> > > > >
> > > > > Two spaces after the oneOf, 2 spaces after a required as usual.
> > > > > I don't get it.
Either way is valid. It's just 2 different common styles and I picked
the other way. The reason is to look different for a sequence vs.
mapping:
- required:
- ethernet-ports
- required:
ethernet-ports
It's easy to miss the missing '-'.
> > > > Given the other python errors spat out in Rob's report, I would suggest
> > > > that the "bot" is running a development version that hasn't been fully
> > > > tested, so anything it spits out is suspect. Maybe Rob can comment on
> > > > the validity of the warnings in the report.
> > >
> > > In this case, I think it is correct.
> > > 2 spaces for the oneOf, 2 spaces the start of the required for the
> > > nested list, so:
> > > oneOf:
> > > - required:
> >
> > This is a total of two spaces indentation.
> >
> > > - ports
> >
> > This is a total of six spaces indentation.
> >
> > You mention 2 spaces for the oneOf, which explains why the "- required"
> > needs to be indented by two spaces. You also say 2 spaces for the
> > required nested list, but what about the other two spaces?
>
> I a word that might've made it more clear.
> It is 2 spaces for the oneOf and 2 spaces _from_ the start of the
> required for the nested list.
Yes, 'oneOf' here is not a json-schema keyword, but a key under $defs
because it is indented.
'$defs' entries must be a schema/dict/mapping (json-schema/python/yaml
terms).
>
> In theory you might have a contrived example that looks like:
>
> oneOf:
> - required:
> - ports
> properties:
> ethernet-ports: false
>
> - required:
> - ethernet-ports
> properties:
> ports: false
>
> Maybe with that example you can see that each option of the oneOf
> contains a `required` and a `properties` component at 4 spaces of
> indent, and then in turn the required properties, being sub-components
> of `required` grow 2 more spaces for 6.
>
> > I guess if you're a YAML expert, this all makes sense, but to those of
> > us who aren't, these quirky "features" of it just seem totally
> > illogical.
Indentation being significant is not quirky. Languages choose either
indentation or brackets of some form. YAML uses one and JSON uses the
other.
> If I were a yaml expert, I would probably be able to use the correct
> terminology to explain this better, but hopefully the example is useful.
It has little to do with YAML other than indentation is *very*
significant in YAML. It's actually valid YAML. It's probably valid
json-schema, but questionable use in terms of how $defs is typically
used.
Anyways, I'm working on a fix for the meta-schema.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Conor Dooley <conor@kernel.org>
Cc: "Russell King (Oracle)" <linux@armlinux.org.uk>,
Linus Walleij <linus.walleij@linaro.org>,
Christian Marangi <ansuelsmth@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
devicetree@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Eric Dumazet <edumazet@google.com>,
Vladimir Oltean <olteanv@gmail.com>,
netdev@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org,
Gregory Clement <gregory.clement@bootlin.com>
Subject: Re: [PATCH net-next v4 1/7] dt-bindings: net: dsa: Require ports or ethernet-ports
Date: Thu, 19 Oct 2023 08:41:09 -0500 [thread overview]
Message-ID: <20231019134109.GA63240-robh@kernel.org> (raw)
In-Reply-To: <20231019-friday-fabulous-4882c4048b8c@spud>
On Thu, Oct 19, 2023 at 01:46:36PM +0100, Conor Dooley wrote:
> On Thu, Oct 19, 2023 at 01:27:09PM +0100, Russell King (Oracle) wrote:
> > On Thu, Oct 19, 2023 at 12:58:46PM +0100, Conor Dooley wrote:
> > > On Thu, Oct 19, 2023 at 11:58:49AM +0100, Russell King (Oracle) wrote:
> > > > On Wed, Oct 18, 2023 at 01:11:45PM +0200, Linus Walleij wrote:
> > > > > On Wed, Oct 18, 2023 at 12:32 PM Rob Herring <robh@kernel.org> wrote:
> > > > > > On Wed, 18 Oct 2023 11:03:40 +0200, Linus Walleij wrote:
> > > > >
> > > > > > > Bindings using dsa.yaml#/$defs/ethernet-ports specify that
> > > > > > > a DSA switch node need to have a ports or ethernet-ports
> > > > > > > subnode, and that is actually required, so add requirements
> > > > > > > using oneOf.
> > > > > > >
> > > > > > > Suggested-by: Rob Herring <robh@kernel.org>
> > > > > > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> > > > > > > ---
> > > > > > > Documentation/devicetree/bindings/net/dsa/dsa.yaml | 6 ++++++
> > > > > > > 1 file changed, 6 insertions(+)
> > > > > > >
> > > > > >
> > > > > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> > > > > > on your patch (DT_CHECKER_FLAGS is new in v5.13):
> > > > > >
> > > > > > yamllint warnings/errors:
> > > > > > ./Documentation/devicetree/bindings/net/dsa/dsa.yaml:60:7: [warning] wrong indentation: expected 8 but found 6 (indentation)
> > > > > > ./Documentation/devicetree/bindings/net/dsa/dsa.yaml:62:7: [warning] wrong indentation: expected 8 but found 6 (indentation)
> > > > >
> > > > > Really?
> > > > >
> > > > > + oneOf:
> > > > > + - required:
> > > > > + - ports
> > > > > + - required:
> > > > > + - ethernet-ports
> > > > >
> > > > > Two spaces after the oneOf, 2 spaces after a required as usual.
> > > > > I don't get it.
Either way is valid. It's just 2 different common styles and I picked
the other way. The reason is to look different for a sequence vs.
mapping:
- required:
- ethernet-ports
- required:
ethernet-ports
It's easy to miss the missing '-'.
> > > > Given the other python errors spat out in Rob's report, I would suggest
> > > > that the "bot" is running a development version that hasn't been fully
> > > > tested, so anything it spits out is suspect. Maybe Rob can comment on
> > > > the validity of the warnings in the report.
> > >
> > > In this case, I think it is correct.
> > > 2 spaces for the oneOf, 2 spaces the start of the required for the
> > > nested list, so:
> > > oneOf:
> > > - required:
> >
> > This is a total of two spaces indentation.
> >
> > > - ports
> >
> > This is a total of six spaces indentation.
> >
> > You mention 2 spaces for the oneOf, which explains why the "- required"
> > needs to be indented by two spaces. You also say 2 spaces for the
> > required nested list, but what about the other two spaces?
>
> I a word that might've made it more clear.
> It is 2 spaces for the oneOf and 2 spaces _from_ the start of the
> required for the nested list.
Yes, 'oneOf' here is not a json-schema keyword, but a key under $defs
because it is indented.
'$defs' entries must be a schema/dict/mapping (json-schema/python/yaml
terms).
>
> In theory you might have a contrived example that looks like:
>
> oneOf:
> - required:
> - ports
> properties:
> ethernet-ports: false
>
> - required:
> - ethernet-ports
> properties:
> ports: false
>
> Maybe with that example you can see that each option of the oneOf
> contains a `required` and a `properties` component at 4 spaces of
> indent, and then in turn the required properties, being sub-components
> of `required` grow 2 more spaces for 6.
>
> > I guess if you're a YAML expert, this all makes sense, but to those of
> > us who aren't, these quirky "features" of it just seem totally
> > illogical.
Indentation being significant is not quirky. Languages choose either
indentation or brackets of some form. YAML uses one and JSON uses the
other.
> If I were a yaml expert, I would probably be able to use the correct
> terminology to explain this better, but hopefully the example is useful.
It has little to do with YAML other than indentation is *very*
significant in YAML. It's actually valid YAML. It's probably valid
json-schema, but questionable use in terms of how $defs is typically
used.
Anyways, I'm working on a fix for the meta-schema.
Rob
next prev parent reply other threads:[~2023-10-19 13:41 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-18 9:03 [PATCH net-next v4 0/7] Create a binding for the Marvell MV88E6xxx DSA switches Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 9:03 ` [PATCH net-next v4 1/7] dt-bindings: net: dsa: Require ports or ethernet-ports Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 10:32 ` Rob Herring
2023-10-18 10:32 ` Rob Herring
2023-10-18 11:11 ` Linus Walleij
2023-10-18 11:11 ` Linus Walleij
2023-10-19 10:58 ` Russell King (Oracle)
2023-10-19 10:58 ` Russell King (Oracle)
2023-10-19 11:58 ` Conor Dooley
2023-10-19 11:58 ` Conor Dooley
2023-10-19 12:27 ` Russell King (Oracle)
2023-10-19 12:27 ` Russell King (Oracle)
2023-10-19 12:46 ` Conor Dooley
2023-10-19 12:46 ` Conor Dooley
2023-10-19 13:41 ` Rob Herring [this message]
2023-10-19 13:41 ` Rob Herring
2023-10-20 11:10 ` Krzysztof Kozlowski
2023-10-20 11:10 ` Krzysztof Kozlowski
2023-10-20 11:41 ` Linus Walleij
2023-10-20 11:41 ` Linus Walleij
2023-10-20 12:16 ` Krzysztof Kozlowski
2023-10-20 12:16 ` Krzysztof Kozlowski
2023-10-20 12:27 ` Vladimir Oltean
2023-10-20 12:27 ` Vladimir Oltean
2023-10-20 12:56 ` Linus Walleij
2023-10-20 12:56 ` Linus Walleij
2023-10-19 12:03 ` Conor Dooley
2023-10-19 12:03 ` Conor Dooley
2023-10-19 12:28 ` Russell King (Oracle)
2023-10-19 12:28 ` Russell King (Oracle)
2023-10-19 12:33 ` Conor Dooley
2023-10-19 12:33 ` Conor Dooley
2023-10-18 9:03 ` [PATCH net-next v4 2/7] dt-bindings: net: mvusb: Fix up DSA example Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 10:32 ` Rob Herring
2023-10-18 10:32 ` Rob Herring
2023-10-18 11:37 ` Linus Walleij
2023-10-18 11:37 ` Linus Walleij
2023-10-19 13:45 ` Rob Herring
2023-10-19 13:45 ` Rob Herring
2023-10-19 14:26 ` Vladimir Oltean
2023-10-19 14:26 ` Vladimir Oltean
2023-10-19 20:23 ` Rob Herring
2023-10-19 20:23 ` Rob Herring
2023-10-18 13:39 ` Andrew Lunn
2023-10-18 13:39 ` Andrew Lunn
2023-10-19 14:28 ` Vladimir Oltean
2023-10-19 14:28 ` Vladimir Oltean
2023-10-18 9:03 ` [PATCH net-next v4 3/7] ARM: dts: marvell: Fix some common switch mistakes Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 13:41 ` Andrew Lunn
2023-10-18 13:41 ` Andrew Lunn
2023-10-19 11:04 ` Russell King (Oracle)
2023-10-19 11:04 ` Russell King (Oracle)
2023-10-19 14:29 ` Vladimir Oltean
2023-10-19 14:29 ` Vladimir Oltean
2023-10-18 9:03 ` [PATCH net-next v4 4/7] ARM: dts: nxp: " Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 13:42 ` Andrew Lunn
2023-10-18 13:42 ` Andrew Lunn
2023-10-19 14:33 ` Vladimir Oltean
2023-10-19 14:33 ` Vladimir Oltean
2023-10-18 9:03 ` [PATCH net-next v4 5/7] ARM64: dts: marvell: " Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 13:43 ` Andrew Lunn
2023-10-18 13:43 ` Andrew Lunn
2023-10-19 14:40 ` Vladimir Oltean
2023-10-19 14:40 ` Vladimir Oltean
2023-10-19 14:49 ` Vladimir Oltean
2023-10-19 14:49 ` Vladimir Oltean
2023-10-19 15:26 ` Marek Behún
2023-10-19 15:26 ` Marek Behún
2023-10-19 16:22 ` Vladimir Oltean
2023-10-19 16:22 ` Vladimir Oltean
2023-10-20 12:59 ` Linus Walleij
2023-10-20 12:59 ` Linus Walleij
2023-10-25 1:11 ` Vladimir Oltean
2023-10-25 1:11 ` Vladimir Oltean
2023-10-18 9:03 ` [PATCH net-next v4 6/7] dt-bindings: marvell: Rewrite MV88E6xxx in schema Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 10:32 ` Rob Herring
2023-10-18 10:32 ` Rob Herring
2023-10-18 11:39 ` Linus Walleij
2023-10-18 11:39 ` Linus Walleij
2023-10-19 13:49 ` Rob Herring
2023-10-19 13:49 ` Rob Herring
2023-10-19 20:02 ` Rob Herring
2023-10-19 20:02 ` Rob Herring
2023-10-18 13:48 ` Andrew Lunn
2023-10-18 13:48 ` Andrew Lunn
2023-10-19 13:51 ` Rob Herring
2023-10-19 13:51 ` Rob Herring
2023-10-19 15:35 ` Vladimir Oltean
2023-10-19 15:35 ` Vladimir Oltean
2023-10-20 9:13 ` Arınç ÜNAL
2023-10-20 9:13 ` Arınç ÜNAL
2023-10-20 12:47 ` Linus Walleij
2023-10-20 12:47 ` Linus Walleij
2023-10-20 15:12 ` Vladimir Oltean
2023-10-20 15:12 ` Vladimir Oltean
2023-10-20 16:07 ` Andrew Lunn
2023-10-20 16:07 ` Andrew Lunn
2023-10-18 9:03 ` [PATCH net-next v4 7/7] dt-bindings: marvell: Add Marvell MV88E6060 DSA schema Linus Walleij
2023-10-18 9:03 ` Linus Walleij
2023-10-18 13:49 ` Andrew Lunn
2023-10-18 13:49 ` Andrew Lunn
2023-10-19 16:11 ` Vladimir Oltean
2023-10-19 16:11 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231019134109.GA63240-robh@kernel.org \
--to=robh@kernel.org \
--cc=andrew@lunn.ch \
--cc=ansuelsmth@gmail.com \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=gregory.clement@bootlin.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=sebastian.hesselbarth@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.