Go to file
Paul Barker 5e3ca820b3 plugins: Refactor plugin identification and access
This change moves all plugin handling code into the kas.plugins module.
New accessor functions `plugins.get(name)` and `plugins.all()` are
provided to wrap the plugins dictionary so that the kas main function
doesn't need to worry about how this is accessed. Plugins are loaded at
runtime rather than at parse time by calling `plugins.load()` which
gives us an improved ability to handle errors.

The `@kasplugin` decorator is removed as it modified and attribute on
the kasplugin function itself when a plugin module was loaded. Importing
a module should not result in changes to a variable in a different
module as it leads to an initialization code flow which is difficult to
reason about. Instead, plugin modules should now list the plugins which
they introduce in a `__KAS_PLUGINS__` list which will be walked at
runtime by `plugins.load()`.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2020-10-21 17:17:03 +02:00
.github/workflows Switch to github workflow 2020-09-24 13:13:12 +02:00
docs userguide: Switch to kas-container 2020-09-29 08:36:42 +02:00
kas plugins: Refactor plugin identification and access 2020-10-21 17:17:03 +02:00
scripts kas-container: make container image variables overwritable 2020-09-29 08:35:04 +02:00
tests repos: remove trailing slash from layer path 2020-09-23 09:34:28 +02:00
.dockerignore add dockerignore 2017-06-26 09:29:07 +02:00
.flake8 Add flake8 config 2020-06-17 07:59:51 +02:00
.gitignore Expanded and documented .gitignore 2017-06-28 15:12:15 +02:00
CHANGELOG.md Release 2.2 2020-08-20 09:17:34 +02:00
container-entrypoint rename docker-entrypoint to container-entrypoint 2020-09-29 08:32:57 +02:00
CONTRIBUTING.md CONTRIBUTING: add subscription links for list to document 2018-12-17 10:58:33 +01:00
Dockerfile rename docker-entrypoint to container-entrypoint 2020-09-29 08:32:57 +02:00
Dockerfile.isar rename docker-entrypoint to container-entrypoint 2020-09-29 08:32:57 +02:00
kas-container kas-container: Drop container image prefix 2020-10-18 23:21:20 +02:00
kas-docker rename kas-docker to kas-container, leave symlink in place 2020-09-29 08:30:10 +02:00
LICENSE Correct grammar, spelling and copyright year in files 2018-09-05 12:46:35 +02:00
README.rst Switch to github workflow 2020-09-24 13:13:12 +02:00
requirements_rtd.txt requirements_rtd: Add jsonschema module 2020-06-02 10:36:54 +02:00
run-kas Correct grammar, spelling and copyright year in files 2018-09-05 12:46:35 +02:00
setup.py Drop Python 3.4 compatibility, include 3.8 2020-01-09 11:35:40 +01:00

Setup tool for bitbake based projects
=====================================

+--------------------+
|    Build Status    |
+====================+
| |workflow-master|_ |
+--------------------+
| |workflow-next|_   |
+--------------------+

.. |workflow-master| image:: https://github.com/siemens/kas/workflows/master/badge.svg
.. _workflow-master: https://github.com/siemens/kas/actions?query=workflow%3Amaster
.. |workflow-next| image:: https://github.com/siemens/kas/workflows/next/badge.svg
.. _workflow-next: https://github.com/siemens/kas/actions?query=workflow%3Anext

This tool provides an easy mechanism to setup bitbake based
projects.

The OpenEmbedded tooling support starts at step 2 with bitbake. The
downloading of sources and then configuration has to be done by
hand. Usually, this is explained in a README. Instead kas is using a
project configuration file and does the download and configuration
phase.

Key features provided by the build tool:

- clone and checkout bitbake layers
- create default bitbake settings (machine, arch, ...)
- launch minimal build environment, reducing risk of host contamination
- initiate bitbake build process

See the `kas documentation <https://kas.readthedocs.io>`_ for further details.