LayerIndex/Checker

From Openembedded.org
Revision as of 16:23, 26 August 2020 by Dl9pf (talk | contribs)
Jump to: navigation, search

This is a little project to increase the quality of the LayerIndex entries.

We do not have a name yet, so we just call it 'Checker' for now.

It uses existing tools and the guidelines documented e.g. in the BSP guides and in the existing tests/tooling.

Currently it does 3 things:

a) grep LAYERSERIES_COMPAT <layer>/conf/layer.conf

b) grep LAYERDEPENDS <layer>/conf/layer.conf

[ run bitbake-layer layerindex-fetch $layer ]

c) run layer check script: yocto-check-layer (from OE-core repo)


An example run is available on this page for 'dunfell' LayerIndex/Checker/dunfell


Next steps:

  • need help with:
    • Update layerindex to add field noting the layer passed the 'checker' (or however we will name it)
    • Expose api call to upload this for branch/layer/package combination
    • option: add field showing if the checker did run/run last
    • option: add field noting the error if it did not pass
    • There seems to be either a bug in bitbake-layers layerindex-fetch or in the layerindex causing some dunfell projects to not complete the fetch
Traceback (most recent call last):
  File "/home/layerindexcheck/bitbake/bin/bitbake-layers", line 95, in <module>
    ret = main()
  File "/home/layerindexcheck/bitbake/bin/bitbake-layers", line 88, in main
    return args.func(args)
  File "/home/layerindexcheck/bitbake/lib/bblayers/layerindex.py", line 119, in do_layerindex_fetch
    (dependencies, invalidnames) = lIndex.find_dependencies(names=args.layername, ignores=ignore_layers)
  File "/home/layerindexcheck/bitbake/lib/layerindexlib/__init__.py", line 443, in find_dependencies
    (dependencies, invalid) = _resolve_dependencies(layerbranches, ignores, dependencies, invalid)
  File "/home/layerindexcheck/bitbake/lib/layerindexlib/__init__.py", line 431, in _resolve_dependencies
    (dependencies, invalid) = _resolve_dependencies([deplayerbranch], ignores, dependencies, invalid, local_processed)
  File "/home/layerindexcheck/bitbake/lib/layerindexlib/__init__.py", line 386, in _resolve_dependencies
    deplayerbranch = layerdependency.dependency_layerBranch
  File "/home/layerindexcheck/bitbake/lib/layerindexlib/__init__.py", line 915, in __getattr__
    raise AttributeError('%s not in datastore' % name)
AttributeError: dependency_layerBranch not in datastore


  • will do myself
    • update script to work against api
    • will host runner for layers.openembedded.org (weekly/stable branches ... master does not make too much sense atm).
    • enhance script to pick machines for BSP layers