[PATCH 06/12] eng: Update application configuration how-to

Sebastian Huber sebastian.huber at embedded-brains.de
Fri May 5 08:46:03 UTC 2023


Change paths to be in line with the actual specification.  Fix group
membership link role.

Update #3715.
---
 eng/req/howto.rst | 54 ++++++++++++++++++++++++-----------------------
 eng/req/items.rst |  2 --
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/eng/req/howto.rst b/eng/req/howto.rst
index 42c35ac..0de3c01 100644
--- a/eng/req/howto.rst
+++ b/eng/req/howto.rst
@@ -1,6 +1,6 @@
 .. SPDX-License-Identifier: CC-BY-SA-4.0
 
-.. Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2020, 2023 embedded brains GmbH & Co. KG
 
 How-To
 ======
@@ -131,12 +131,12 @@ Application Configuration Options
 ---------------------------------
 
 The application configuration options and groups are maintained by
-specification items in the directory :file:`spec/if/acfg`.  Application
+specification items in the directory :file:`spec/acfg/if`.  Application
 configuration options are grouped by
 :ref:`SpecTypeApplicationConfigurationGroupItemType` items which should be
-stored in files using the :file:`spec/if/acfg/group-*.yml` pattern.  Each
+stored in files using the :file:`spec/acfg/if/group-*.yml` pattern.  Each
 application configuration option shall link to exactly one group item with the
-:ref:`SpecTypeApplicationConfigurationGroupMemberLinkRole`.  There are four
+:ref:`SpecTypeInterfaceGroupMembershipLinkRole`.  There are four
 application option item types available which cover all existing options:
 
 * The *feature enable options* let the application enable a feature option.  If
@@ -177,9 +177,9 @@ restricted Sphinx formatting.  Emphasis via one asterisk ("*"), strong emphasis
 via two asterisk ("**"), code samples via blockquotes ("``"), code blocks ("..
 code-block:: c") and lists are allowed.  References to interface items are also
 allowed, for example "${appl-needs-clock-driver:/name}" and
-"${../rtems/tasks/create:/name}".  References to other parts of the
-documentation are possible, however, they are currently provided by hard-coded
-tables in :file:`rtemsspec/applconfig.py`.
+"${/rtems/task/if/create:/name}".  References to other parts of the
+documentation are possible, however, they have to be provided by
+:file:`spec:/doc/if/*` items.
 
 Modify an Existing Group
 ^^^^^^^^^^^^^^^^^^^^^^^^
@@ -189,9 +189,9 @@ file.  For example:
 
 .. code-block:: none
 
-    $ grep -rl "name: General System Configuration" spec/if/acfg
-    spec/if/acfg/group-general.yml
-    $ vi spec/if/acfg/group-general.yml
+    $ grep -rl "name: General System Configuration" spec/acfg/if
+    spec/acfg/if/group-general.yml
+    $ vi spec/acfg/if/group-general.yml
 
 Modify an Existing Option
 ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -201,20 +201,20 @@ specification item file.  For example:
 
 .. code-block:: none
 
-    $ grep -rl CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER spec/if/acfg
-    spec/if/acfg/appl-needs-clock-driver.yml
-    $ vi spec/if/acfg/appl-needs-clock-driver.yml
+    $ grep -rl CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER spec/acfg/if
+    spec/acfg/if/appl-needs-clock-driver.yml
+    $ vi spec/acfg/if/appl-needs-clock-driver.yml
 
 Add a New Group
 ^^^^^^^^^^^^^^^
 
 Let ``new`` be the UID name part of the new group.  Create the file
-:file:`spec/if/acfg/group-new.yml` and provide all attributes for an
+:file:`spec/acfg/if/group-new.yml` and provide all attributes for an
 :ref:`SpecTypeApplicationConfigurationGroupItemType` item.  For example:
 
 .. code-block:: none
 
-    $ vi spec/if/acfg/group-new.yml
+    $ vi spec/acfg/if/group-new.yml
 
 Add a New Option
 ^^^^^^^^^^^^^^^^
@@ -226,7 +226,7 @@ example:
 
 .. code-block:: none
 
-    $ vi spec/if/acfg/my-new-option.yml
+    $ vi spec/acfg/if/my-new-option.yml
 
 Generate Content after Changes
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -263,7 +263,7 @@ specification.
 
     SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
     copyrights:
-    - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+    - Copyright (C) 2020 embedded brains GmbH & Co. KG
     enabled-by: true
     glossary-type: term
     links:
@@ -300,23 +300,25 @@ Interface Specification
 Specify an API Header File
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The RTEMS :term:`API` header files are specified under ``spec:/if/rtems/*``.
+The RTEMS :term:`API` header files are specified under ``spec:/rtems/*/if``.
 Create a subdirectory with a corresponding name for the API, for example in
-:file:`spec/if/rtems/foo` for the `foo` API.  In this new subdirectory place an
+:file:`spec/rtems/foo/if` for the `foo` API.  In this new subdirectory place an
 :ref:`SpecTypeInterfaceHeaderFileItemType` item named :file:`header.yml`
-(:file:`spec/if/rtems/foo/header.yml`) and populate it with the required
+(:file:`spec/rtems/foo/if/header.yml`) and populate it with the required
 attributes.
 
 .. code-block:: yaml
 
     SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
     copyrights:
-    - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+    - Copyright (C) 2020 embedded brains GmbH & Co. KG
     enabled-by: true
     interface-type: header-file
     links:
     - role: interface-placement
-      uid: /if/domains/api
+      uid: /if/domain
+    - role: interface-ingroup
+      uid: ../req/group
     path: rtems/rtems/foo.h
     prefix: cpukit/include
     type: interface
@@ -327,7 +329,7 @@ Specify an API Element
 Figure out the corresponding header file item.  If it does not exist, see
 :ref:`ReqEngAddAPIHeaderFile`.  Place a specialization of an
 :ref:`SpecTypeInterfaceItemType` item into the directory of the header file
-item, for example :file:`spec/if/rtems/foo/bar.yml` for the :c:func:`bar`
+item, for example :file:`spec/rtems/foo/if/bar.yml` for the :c:func:`bar`
 function.  Add the required attributes for the new interface item.  Do not hard
 code interface names which are used to define the new interface.  Use
 ``${uid-of-interface-item:/name}`` instead.  If the referenced interface is
@@ -344,7 +346,7 @@ an :ref:`SpecTypeInterfaceForwardDeclarationItemType` item.
     SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
     brief: Tries to create a magic object and returns it.
     copyrights:
-    - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+    - Copyright (C) 2020 embedded brains GmbH & Co. KG
     definition:
       default:
         body: null
@@ -371,7 +373,7 @@ an :ref:`SpecTypeInterfaceForwardDeclarationItemType` item.
       return: Otherwise, the magic object is returned.
       return-values:
       - description: The caller did not have enough magic power.
-        value: ${/if/c/null}
+        value: ${/c/if/null}
     type: interface
 
 Requirements Depending on Build Configuration Options
@@ -608,7 +610,7 @@ presentation we use a structured order.
 
     SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
     copyrights:
-    - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+    - Copyright (C) 2021 embedded brains GmbH & Co. KG
     enabled-by: true
     functional-type: action
     rationale: null
diff --git a/eng/req/items.rst b/eng/req/items.rst
index 1b1d48f..4cf20a6 100644
--- a/eng/req/items.rst
+++ b/eng/req/items.rst
@@ -4522,8 +4522,6 @@ uid
 
 This type is refined by the following types:
 
-* :ref:`SpecTypeApplicationConfigurationGroupMemberLinkRole`
-
 * :ref:`SpecTypeBuildDependencyConditionalLinkRole`
 
 * :ref:`SpecTypeBuildDependencyLinkRole`
-- 
2.35.3



More information about the devel mailing list