Re: maturity levels: a first pass

From: Stefan Richter
Date: Sat Apr 28 2007 - 20:38:40 EST

Robert P. J. Day wrote:
> + This feature gives you the ability to de-select entire sets of
> + kernel features based on how they've been tagged with the
> + "maturity" directive.

Why expose the end-user to implementation details like "been tagged with
the 'maturity' directive"?

> + bool "Display DEPRECATED features."

Maybe you rather want

bool "Allow to select DEPRECATED features."

because MATURITY_DEPRECATED=N probably means "Do not allow to select
DEPRECATED features" which implies that deprecated features will be
deselected. In your wording, MATURITY_DEPRECATED=N would be just "Do
not display DEPRECATED features" which is probably less than what you
want it to be.

That said, I don't know if the approach is going into the right
direction. For example, the way you are starting it requires updates to
all Kconfig UIs/scripts, to work correctly. Otherwise, users could
select ACTIVATE_MATURITY but the tags would still be ignored.

Another approach could be to
- continue to use "config EXPERIMENTAL" and "depends on EXPERIMENTAL"
and extend it for OBSOLETE, and if you cannot resist, for
- extend interactive UIs like xconfig and menuconfig and oldconfig to
display an EXPERIMENTAL sign alongside the title of an option
which depends on EXPERIMENTAL,
- delete occurrences of the string EXPERIMENTAL from titles of options
and help texts,
- vice versa for OBSOLETE, and if you cannot resist, for
This does what you want while it keeps contents separate from
presentation and avoids to extend the Kconfig language. A simple
Kconfig language without presentational ballast allows for creation of a
multitude of fine-tuned configurator UIs/scripts, which can be extended
by all sorts of features, e.g. better support in dealing with obsolete
configuration options.
Stefan Richter
-=====-=-=== -=-- ===-=
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at