Adam Flinton wrote:
I am assuming allow then deny i.e. include all, exclude all = include all.
Otherwise...exclude all becomes somewhere between pointless & dangerous.
I think of it in terms of items moving back and forth between an "include"
list and an "exclude" list.
* Initially, the slot is completely unconstrained. Therefore, all archetypes
are in the "include" list.
* Excluding some archetypes shifts them to the "exclude" list.
* Excluding all shifts all archetypes into the "exclude" list.
* Including some archetypes overrides exclusion, moving them back to the
"include" list.
* Include all shifts all archetypes back into the "include" list.
So it's basically a three-state process:
1. All initially included.
2. Move some (or all) to the "exclude" list.
3. Move some (or all) back to the "include" list.
This seems to be the behaviour that we observe in Ocean's Template Designer.
In particular, this way of conceptualising it is consistent with how
including has no effect unless you also exclude all; and it is also
consistent with your hope, Adam, that include all should override exclude
all.
It also means that "include all" is rather pointless, doesn't it, because
doesn't "include all" have exactly the same effect as not constraining it at
all?
Maybe it would be clearer if there was only one list. It could have worked
like this, I think:
* By default, the list would be an "exclude" list; i.e. it would serve to
constrain the slot by specifying that certain patterns be disallowed.
* There would be an option to treat it as an "include" list; i.e. only the
specified patterns would be allowed.
* There would be no need for the "all" options. They would be redundant,
because "include all" would be the same as not constraining it at all, and
"exclude all" would be the same as an empty "include" list.
Unless there's something I don't understand about how it is meant to work
now, this suggestion would give us most of the power of the current
arrangement, minus the confusion. (The only capability that we would lose,
that I can think of, would be the ability to exclude a proper subset of the
archetypes, but then to re-include a subset of that subset: e.g., to exclude
"problem-.*", but then to re-include "problem" itself. Do we really need
such fine-grained control?)
- Peter