Skip to content

Commit

Permalink
doc: document mangedLayers policy
Browse files Browse the repository at this point in the history
  • Loading branch information
jkloetzke committed Nov 2, 2024
1 parent 55525f2 commit 55308d0
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doc/manual/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1968,6 +1968,10 @@ possibility is to provide an SCM-Dictionary (see
commit: ...
- bsp

.. note::
Managed layers are only supported if the :ref:`policies-managedLayers`
policy is set to the new behaviour.

If a layer SCM specification is given, Bob takes care of the layer management:

- Layers are checked out / updated during bob-build (except build-only).
Expand Down
54 changes: 54 additions & 0 deletions doc/manual/policies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,60 @@ Old behavior
New behavior
Apply string substitution to ``metaEnvironment`` variables.

.. _policies-managedLayers:

managedLayers
~~~~~~~~~~~~~

Introduced in: 0.25

Starting with Bob version 0.25, managed layers are supported. This changed the
location where layers are stored, though. Historically, layers could be nested
where they would form a tree structure. That is, each layer can have a ``layers``
directory itself where further layers are located. Because this does not work
if multiple layers refer to another common layer, the directory structure
has been flattened.

Old behavior
Keep support for projects that were created before Bob 0.25. Layers with
sub-layers form a tree structure. See the following example::

.
├── config.yaml
├── layers
│   └── foo
│   ├── config.yaml
│   ├── layers
│   │   ├── bar
│   │   │   └── recipes
│   │   └── baz
│   │   └── recipes
│   └── recipes
└── recipes

No SCM can be used in the :ref:`configuration-config-layers` section of
``config.yaml``. The :ref:`manpage-layers` command will refuse to work on
such projectes.

New behavior
Managed layers are supported, that is SCMs can be used in the
:ref:`configuration-config-layers` section of ``config.yaml``. The layers
are checked out flat into the ``layers`` directory of the project::

.
├── config.yaml
├── layers
│   ├── bar
│   │   └── recipes
│   ├── baz
│   │   └── recipes
│   └── foo
│   ├── config.yaml
│   └── recipes
└── recipes

Unmanaged layers are expected in the same directory.

.. _policies-obsolete:

Obsolete policies
Expand Down

0 comments on commit 55308d0

Please sign in to comment.