Specification of application configuration options
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Mar 30 14:19:11 UTC 2020
Hello,
I added specification items for most application configuration options
(all the ones in the RTEMS Classic API Guide). For example:
https://git.rtems.org/sebh/rtems-qual.git/tree/spec/acfg/opt/RTEMS-ACFG-OPT-MAXBARRIERS.yml
SPDX-License-Identifier: CC-BY-SA-4.0
active: true
appl-config-option-type: integer
appl-config-option-default-value: 0
appl-config-option-description: |
The value of this configuration option defines the maximum number of
Classic
API Barriers that can be concurrently active.
appl-config-option-index: []
appl-config-option-name: CONFIGURE_MAXIMUM_BARRIERS
appl-config-option-notes: |
This object class can be configured in unlimited allocation mode, see
:ref:`ConfigUnlimitedObjects`.
appl-config-option-constraint:
min: 0
max: 65535
links:
- RTEMS-ACFG-OPT-CONSTRAINTUNLIMITED
- RTEMS-ACFG-OPT-CONSTRAINTMEMSZ
copyrights:
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
derived: false
enabled-by: []
header: ''
interface-type: appl-config-option
level: 1.14
links:
- RTEMS-ACFG-CLASSIC: xIlmS8RsfhmUc14dTO2H9l5xcMKe5d555tGIZ3hz_SM=
normative: true
ref: ''
reviewed: DXQ7n4VFdgQXHBbJOlUe7oLa-mccRpU-Sl5TzVd9RFk=
text: ''
type: interface
This specification item is used to generate the documentation (RTEMS
Classic API Guide) with the following Python module (less than 200 lines
of code):
https://git.rtems.org/sebh/rtems-qual.git/tree/rtemsqual/applconfig.py
The value constraints are defined in a formalized format.
I have now three open issues.
1.
I need a requirement for this configuration option. The description
"The value of this configuration option defines the maximum number of
Classic
API Barriers that can be concurrently active."
is close to a requirement formulation. Should we use the descriptions as
is as a requirement? Should we add some text like this for each option:
"The system shall provide an application configuration option which
defines the maximum number of Classic
API Barriers that can be concurrently active."
2.
I need traceability to the source code, e.g. I need a link to
https://git.rtems.org/rtems/tree/cpukit/include/rtems/confdefs/objectsclassic.h#n86
and
https://git.rtems.org/rtems/tree/cpukit/rtems/src/barrier.c
I opened a separate thread for this:
https://lists.rtems.org/pipermail/devel/2020-March/058744.html
3.
The specification items may contain more than one requirement, e.g. the
"appl-config-option-default-value" is the short form of a requirement
like this:
"The application configuration option CONFIGURE_MAXIMUM_BARRIERS shall
have a default value of 0."
How should we reference requirements like this. For example:
RTEMS-ACFG-OPT-MAXBARRIERS:appl-config-option-default-value
RTEMS-ACFG-OPT-MAXBARRIERS/appl-config-option-default-value
?
This is no longer in line with the Doorstop tool. Here we would have to
add a new file for this which is linked to RTEMS-ACFG-OPT-MAXBARRIERS,
e.g. RTEMS-ACFG-OPT-MAXBARRIERS-DEFAULTVALUE.
We should think about dropping the use of Doorstop and instead use our
own tool. I really like the ideas of Doorstop, but I think it could be a
bit too inflexible for our purpose. Not using Doorstop would enable us
to shorten the paths. We could use a scheme like this to identify
requirements: dir/dir2/dir3/item:attr:subattr which maps to a file
dir/dir2/dir3/item.yaml. With Doorstop this would be
dir/dir2/dir3/dir-dir2-dir3-item.yml. We don't have to decide this now,
it is just something to think about. Ideally before the new build system
is integrated.
More information about the devel
mailing list