Doorstop Issues
Gedare Bloom
gedare at rtems.org
Mon Apr 20 20:30:05 UTC 2020
Hi Sebastian,
Sorry to toppost. I cut my finger and have some trouble using a keyboard. I
just seek clarification whether you are proposing abandoning doorstop,
forking it, or replacing it with a custom Python tool.
Gedare
On Mon, Apr 20, 2020, 12:14 PM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:
> On 20/04/2020 15:20, Joel Sherrill wrote:
>
> >
> >
> > On Sun, Apr 19, 2020 at 10:14 AM Sebastian Huber
> > <sebastian.huber at embedded-brains.de
> > <mailto:sebastian.huber at embedded-brains.de>> wrote:
> >
> > Hello,
> >
> > I am about to add the next couple of hundred specification items
> > for the
> > RTEMS pre-qualification activity. Before I do this, I would like to
> > present some issues that popped up during my daily work with
> > Doorstop.
> > Doorstop is a requirements management tool which was selected for the
> > pre-qualification activity:
> >
> >
> https://docs.rtems.org/branches/master/eng/req-eng.html#selected-tool-doorstop
> >
> > I am quite happy that Jan Sommer suggested to use this tool. I has
> > some
> > pretty nice features. In particular, I think the file based
> > organization
> > in YAML format forming a directed acyclic graph is really the right
> > thing for this project. However, it turned out that it lacks the
> > required flexibility.
> >
> > 1. Its use case is requirements management. So it has some standard
> > attributes useful in this domain, like derived, header, level,
> > normative, ref, reviewed, and text. However, I want to use it more
> > generally for specification items and these attributes make not
> > always
> > sense. Having them in every item is just overhead and may cause
> > confusion.
> >
> >
> > If they are documented well and their flow through the process is clear,
> > there should not be huge confusion. Performance overhead maybe.
> >
> > I have seen project requirements that had schedule phase or HW/SW
> > associated
> > with each requirement. On those projects, it seemed to me that the
> > primary
> > problem was that the tooling couldn't check that parent requirement
> > custom attributes had an relationship to those of the children. Schedule
> > phases and HW/SW didn't match across the levels of requirements and
> > there was no way to know if it was intentional or just 100s of mistakes.
> >
> >
> > 2. The links cannot have custom attributes, e.g. role, enabled-by.
> >
> >
> > i assume by enabled-by you are tracking to an RTEMS compile or condefs.h
> > configure option.
> Yes, the enabled-by stuff mostly relates to the RTEMS CPU options, e.g.
> RTEMS_SMP, RTEMS_POSIX_API, etc.
> >
> > The FACE Technical Standard uses the term conditional to describe
> > capabilities
> > an implementation of the standard may provide. The term optional is
> > also used
> > in the general requirements community but these. I recall that is what
> > POSIX
> > calls them. Interestingly, neither standard uses will or may in those
> > requirements
> > as the textbooks suggest but collects them under optional feature
> > categories.
> >
> >
> > 3. Inside a document (directory) items are supposed to have a common
> > type. I would like to store at a hierarchy level also distinct
> > specializations.
> >
> > 4. The verification if the items is quite limited. We need
> > verification
> > with type-based rules.
> >
> >
> > This sounds like you have found the problem I was referring to above.
> > Parent and child should follow rules on custom attributes.
> Yes, I think it is a must to verify basic things, e.g. proper
> relationships, the right set of attributes, proper values for the
> attributes, etc.
> >
> >
> > 5. The UIDs in combination with the document hierarchy lead to
> > duplication, e.g. a/b/c/a-b-c-d.yml. You have the path (a/b/c)
> > also in
> > the file name (a-b-c). You cannot have relative UIDs in links (e.g.
> > ../parent-req) . The specification items may contain multiple
> > requirements, e.g. min/max attributes. There is no way to identify
> > them.
> >
> >
> > This seems fixable.
> >
> >
> > I will probably stop using Doorstop and use a custom tooling. With
> > Python, this is quite easy. I already have the infrastructure for
> > this in:
> >
> > https://git.rtems.org/sebh/rtems-qual.git/
> >
> > I will try this out with the new build system.
> >
> >
> > You are indeed pushing beyond what a requirements management tool
> > is usually scoped to do. Which is funny because some of the commercial
> > tools have capabilities not discussed so far. They are usually metrics,
> > static analysis, and/or code coverage. We address two of the three with
> > custom tools.
> >
> > I agree with Chris that you should discuss this with the Doorstop
> project.
> > RTEMS has certainly grown with odd requirements thrown at it. It would
> > be rude to not give another open source project the same opportunity.
> > Of course, that may not change the end result.
>
> https://github.com/doorstop-dev/doorstop/issues/471
>
> >
> > If we do end up beyond Doorstop's mission, then it is worth considering
> > a sibling tool to do the generation. But I also know that Doorstop is not
> > a huge body of Python either.
>
> I converted the specification of the new build system using path-like
> UIDs. Python is really nice here, since you can simply use the os.path
> support. The transformation to the new format was pretty easy now that
> everything is contained in a machine readable format that ends up with a
> bunch of Python lists, dicts, and scalars.
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200420/22d9b3dd/attachment-0001.html>
More information about the devel
mailing list