scotty
in a nutshell#
scotty
main purpose is to create a dynamic kas configuration.
We chose kas
because it offers a reliable way to recreate a full bitbake setup with just the parts
required for a bitbake
build.
Besides that scotty
offers additional commands to perform various tasks automatically,
see Scotty commands for more details.
How does it work?#
For scotty
to create a self-containing kas
configuration, based on the user selected MACHINE
,
DISTRO
and feature settings, we are running in two stages
manifest stage#
As a first steps scotty
clones a selection of repositories that includes
simplecore-manifest
simplecore-bsp
simplecore-distro
into a build sub-folder called .manifest
.
In those clone directories scotty
scans for scotty-config.yaml files.
Each of these files will describe a user selectable MACHINE
or DISTRO
or feature, plus it can reference
one or more kas
configuration snippets (usually stored in a sub-folder called snippets
in the respective repository).
Once the user made its selection scotty
merges the referenced snippets
(plus a few more dynamically created settings) into
a full self-containing kas
configuration.
This full config can be found at build/.effective-config.yml
.
Changes are detected by scotty
Changes to the overall configuration are detected by scotty
automatically.
BUT scotty
will not update any of the potentially existing .manifest
clones on it’s own.
To update existing checkouts run scotty
with
scotty --force-sync ...
build stage#
From the previously generated full config, scotty
now hands over to kas
to create the build
workspace in a sub-folder called build
and sets up the bitbake configuration.
Changes are detected by scotty
Changes to the overall configuration are detected by scotty
automatically.
BUT scotty
will not update any of the potentially existing build
clones on it’s own.
To update existing checkouts run scotty
with
scotty --refresh ...