On 25/6/20 3:26 pm, Sebastian Huber wrote:
On 24/06/2020 02:48, Chris Johns wrote:
On 19/6/20 11:38 pm, Sebastian Huber wrote:
the qualification toolchain in
https://git.rtems.org/sebh/rtems-qual.git/
needs a bit of documentation. For a start, I propose to add it to the
RTEMS Software Engineering manual.
Does this mean adding references to that repo?
Yes, I already added a how-to section for the glossary of terms:
https://docs.rtems.org/branches/master/eng/req/howto.html
Ah OK. We need to make some choices and get something more formal in
place. Stray links to things that will change does not help anyone.
I am not comfortable with the name of the repo and documenting a
personal repo is something we should avoid.
Yes, the name is not great. I think your proposal to name it
rtems-central was a bit better. Another option is rtems-spec.
Yes rtems-central is nice but is this a place a user will come to and use?
I see the name rtems-qual.git as the project or outcome name that is
currently undersay and not what it is. If a core developer does not
need to use this repo to maintain RTEMS and that work can be qualified
what role does it perform? If it is simpler and easier for a core
developer to use this repo then this is not about qualification it is
about development of RTEMS that can be qualified.
I would like to understand the intended workflow for this repo. Is
something we should promote as the developer workflow? If so we should
consider embracing this. For example the glossary generation. Editing
by hand the generated output does not make sense to me.
The stuff in this repository is already somewhat useful to maintain
RTEMS. You can generate the glossary of terms for individual documents
from a shared collection of terms. In the RTEMS Classic API Guide the
project-wide glossary is located, other documents only include the terms
they use in their glossary. All the application configuration options
are available as specification items:
https://docs.rtems.org/branches/master/eng/req/items.html#spectypeapplicationconfigurationoptionitemtype
All the sections about application configuration options in the RTEMS
Classic API Guide are generated from them. With a bit of work, we could
also generate pages for the Doxygen documentation. The tool chain
supports context-sensitive substitution. In the specification a
${uid:attribute/path} syntax is used. For example:
* The ${../attr/multiprocessor-resource-sharing:/name} attribute
selects the
MrsP locking protocol in SMP configurations, otherwise it selects the
priority ceiling protocol. For this locking protocol a priority
ceiling
shall be specified in ``${.:/params[3]/name}``. This priority is
used to set
the priority ceiling in all scheduler instances. This can be
changed later
with the ${set-priority:/name} directive using the returned semaphore
identifier.
In the Sphinx output this is transformed to:
* The RTEMS_MULTIPROCESSOR_RESOURCE_SHARING attribute selects the MrsP
locking protocol in SMP configurations, otherwise it selects the
priority
ceiling protocol. For this locking protocol a priority ceiling
shall be
specified in ``priority_ceiling``. This priority is used to set the
priority ceiling in all scheduler instances. This can be changed
later
with the :ref:`rtems_semaphore_set_priority()
<InterfaceRtemsSemaphoreSetPriority>` directive using the returned
semaphore identifier.
In the Doxygen output this is transformed to:
* * The #RTEMS_MULTIPROCESSOR_RESOURCE_SHARING attribute selects the MrsP
* locking protocol in SMP configurations, otherwise it selects the
priority
* ceiling protocol. For this locking protocol a priority ceiling
shall be
* specified in ``priority_ceiling``. This priority is used to set the
* priority ceiling in all scheduler instances. This can be changed
later
* with the rtems_semaphore_set_priority() directive using the returned
* semaphore identifier.
I work currently on a complete specification of the RTEMS Classic API.
The tool chain has also support for test plan and code generation. I
plan to specify the functionality of the RTEMS directives through so
called action requirements:
https://docs.rtems.org/branches/master/eng/req/items.html#spectypeactionrequirementitemtype
This can be used to generate table based test loops to check all states
of pre-conditions and post-conditions (see attached file).
Great. I think what you have explained would benefit the development of
RTEMS and so I think this is something we should look at promoting as a
development tool.
I have a concern about the long term maintenance of a git repo of git
repos. I know of a project that have developed tools to handle
something like this because it is hard to do manually. Maybe we should
find out more about this.
Which long term maintenance issues do you see? Working with Git
submodules can be a bit annoying, however, the rate of change will not
be that high in this project.
We have a number of repositories that have links in them and I am
wondering if the 'external' directory in your repo be renamed 'sources'
or something like that so in time we can add more of our source repos. I
am wondering if this would aid our management of these separate repos, a
sort of "one repo to rule them all". Doing this may expose any
submodules complexities that may exist.
I raised this because it was mention in last years flight software
workshop. I can follow it up if you like.
Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel