From: Pantelis Antoniou <pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: Rob Herring <rob.herring-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Next steps for schema language
Date: Thu, 02 Nov 2017 20:13:47 +0200 [thread overview]
Message-ID: <1509646427.5500.6.camel@hp800z> (raw)
In-Reply-To: <CACxGe6s98i_T_ehHihUow9OL513Oiaof2hPLyQRe2ELgkCTx=g@mail.gmail.com>
Hi Grant,
Mostly agree, some notes below.
On Thu, 2017-11-02 at 16:44 +0000, Grant Likely wrote:
> Hi Pantelis and Rob,
>
> After the workshop next week, I'm trying to capture the direction
> we're going for the schema format. Roughly I think we're aiming
> towards:
>
> - Schema files to be written in YAML
> - DT files shall remain written in DTS for the foreseeable future.
> YAML will be treated as an intermediary format
> - That said, we'll try to make design decisions that allow YAML to
> be used as a source format.
> - All schema files and yaml-encoded-dt files must be parsable by stock
> YAML parsers
> - Schema files to use the jsonschema vocabulary
> - (jsonschema assumes json files, but YAML is a superset so this will be okay)
> - Extended to add vocabulary for DT concepts (ignored by stock validators)
> - C-like expressions as used in Pantelis' yamldt could be added in this way
> - Need to write a jsonschema "metaschema" do define DT specific extensions
> - metaschema will be used to validate format of schema files
> - Existing tools can confirm is schema files are in the right format.
> - will make review a lot easier.
>
> The yaml encoding produced by yamldt is a good start, but some changes
> need to be made from the current code to be workable:
> - The redefinition of the anchor/alias syntax needs to be dropped.
> - We need a labels/reference syntax instead.
> - I'm using a $labels property to contain a list of labels which is
> working for me, but I'm open to other suggestions
I'm working on supporting just that. Should be ready for testing in a
couple of days. Do note that I think we should keep the old '*' usage
for supporting the binding files that are YAML.
> - A YAML style !phandle or !path type definition would work for
> parsing references.
!phandle is a bad name IMO. It assumes that the implementation is going
to always be a cell integer containing a phandle. I think !ref is
better. Note that we must come with a way to encode types in JSON, since
they are not natively supported.
> - At the top level, the yaml-encoded-dt needs to be structured as a
> list, not a map.
> - Using a list will properly accounts for how multiple top level
> trees are overlayed to create the final tree.
This is true only for non-resolved files. Resolved files are going to
be guaranteed a map. Does this cause problems for your validator?
> - I'm using a $path property to encode the path of each top level
> node. Again, I'm open to suggestions for a different approach
>
A bare scalar that starts with / can always be deduced to be a path.
Can you share some examples about your usage?
> Pantelis, do you think you can rework yamldt to use that encoding?
>
Yes, it's no big problem.
> I'm currently working on what is needed for a metaschema, and an
> engine for validating device-specific schema files using a standard
> jsonschema validation library. I'll post a git tree once I've got
> something worth looking at.
>
Please do.
> Cheers,
> g.
Regards
-- Pantelis
next prev parent reply other threads:[~2017-11-02 18:13 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-02 16:44 Next steps for schema language Grant Likely
2017-11-02 18:13 ` Pantelis Antoniou [this message]
2017-11-07 14:14 ` Grant Likely
[not found] ` <CACxGe6vRSGbXAVo2TDvX0t+CiZFYcLfWTQsHt5LD3oaKL=4qew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-09 6:48 ` David Gibson
[not found] ` <20171109064850.GE7732-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-11-09 10:27 ` Pantelis Antoniou
2017-11-28 13:58 ` Grant Likely
2017-11-09 10:16 ` Pantelis Antoniou
2017-11-28 15:45 ` Grant Likely
2017-11-03 13:59 ` Rob Herring
[not found] ` <CAL_JsqK1rtc81+=vzc36w4MRmQGYXBeib+QCj0TxtxEMVN2bKQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-03 14:11 ` Pantelis Antoniou
[not found] ` <8DE272D8-6004-4A47-B49C-D3DFB7D9E23C-OWPKS81ov/FWk0Htik3J/w@public.gmane.org>
2017-11-03 14:31 ` Rob Herring
[not found] ` <CAL_JsqLx7fDZGNnxc-DXTajvDWGojNFDEUZeBG3A8LMduDNLtQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-03 14:41 ` Pantelis Antoniou
[not found] ` <E863FAFC-7613-4262-9C9D-0D2A4EF5F880-OWPKS81ov/FWk0Htik3J/w@public.gmane.org>
2017-11-06 16:12 ` Rob Herring
[not found] ` <CAL_Jsq+zkKA-78WH0fPTstCfPZhvxdcOCd74uqwu=xNvr++1aA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-06 21:22 ` Grant Likely
2017-11-07 13:46 ` Grant Likely
[not found] ` <CACxGe6t7CebKJqq+-nOa_adYJM2QL9hn74k5HhseTPR5G1hHRg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-07 15:34 ` Rob Herring
[not found] ` <CAL_Jsq+t=bk+W5uekojsX9KzLUp6MGqgVeR5gC-H5L-hnm6SAA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-28 13:34 ` Grant Likely
2017-12-19 4:57 ` David Gibson
2017-11-14 0:11 ` David Gibson
[not found] ` <20171114001114.GC32308-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-11-14 8:48 ` Grant Likely
2017-11-03 20:02 ` Frank Rowand
2017-11-28 17:10 ` Grant Likely
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=1509646427.5500.6.camel@hp800z \
--to=pantelis.antoniou-owpks81ov/fwk0htik3j/w@public.gmane.org \
--cc=devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=rob.herring-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).