[Kolab-devel] [MAJOR UPDATE] KEP #14: Non-conflicting edits of RFC5228/Sieve scripts by multiple editors

Jeroen van Meeuwen (Kolab Systems) vanmeeuwen at kolabsys.com
Thu Sep 15 10:59:03 CEST 2011


On 15.09.2011 09:06, Georg C. F. Greve wrote:
> On Wednesday 07 September 2011 14.05:44 Jeroen van Meeuwen wrote:
>> - If a 'global' variable namespace were defined and valid, setting 
>> 'editor'
>> and 'editor_version' in this namespace (i.e. globally) is negating 
>> the
>> possibilty to track which Sieve editor has (last) written out a 
>> particular
>> Sieve script.
>
> Well, each script can be read individually. But you may be right that 
> global
> is the wrong namespace.
>

I'm not sure a global namespace exists for variables, which would be a 
more pressing issue.

>> - Furthermore, I'm afraid perhaps we're storing the editor and 
>> version
>> twice; Once in the mandatory and immutable USER script, and once in 
>> the
>> user specific script.
>
> But what about scripts that are currently inactive? These would not 
> be listed
> in USER, so there would be no information on their editor and its 
> version.
>

I said we're storing it twice, which is true. Taking into account the 
concept of 'inactive' scripts (all of them but MASTER), or 'disabled' 
scripts (include line commented out or not at all referred to in USER), 
I think we have a winner to contain the editor and version; the actual 
script said editor/version edited (last).

>> Perhaps what we want / need is that USER specifies;
>>
>> set 'editor' 'my left and right hands'
>> set 'editor_version' 'insert your date of birth here'
>>
>> and forget about providing the name and version in a comment in USER 
>> /
>> through set commands in the included script?
>
> What if there is more than one editor?
>

This argument, or its potential problems, would equally apply to global 
as well as local variable namespaces. Scoping the variables however 
would be a completely different story. I'm afraid such concept is 1) not 
available and 2) makes said variables hard to check for.

In any case, setting the variables at the beginning of the script does 
the same as this would do in bash:

   $ a="quite something"; echo "$a"; a="something else entirely"; echo 
"$a"

> What if there is one script that is hand crafted to "do something 
> magic" and
> just gets activated in the chain, while all the rest is written by a
> specific editor?
>

With your permission, let's reserve "activated" for MASTER, and 
"enabled" / "disabled" for individual scripts (we may or may not allow 
enabling / disabling).

Most typically, one or more scripts that are hand-crafted does not 
contain an editor / version variable statement that we can (safely 
assume to) understand, regardless of whether the rest of the scripts is 
written by a specific or multiple unspecific editors -assuming they are 
KEP compatible which is relevant only to a limited extent.

In any case, such hand-crafted scripts CANNOT be required to include 
any format specification. If anything, any script *without* the thing 
you can require from a KEP compatible sieve editor could immediately be 
considered a manually crafted script.

>> - Additionally;
>>
>> """Manually edited scripts MUST be designated with the value 
>> 'MANUAL' for
>> editor and 'NONE' for its version and MUST always be considered 
>> read-only by
>> all editors."""
>>
>> KEP #14 compatible users?
>
> Well, if an installation is using this mechanism, users may want a 
> way to
> protect their scripts from being edited.
>

The way to protect a script is to specifically exclude it through a 
means, not to designate ALL manually edited scripts MUST have values and 
MAY NOT be touched by editors.

Also, there's a difference between "automatically editing" that should 
be prevented versus the user choosing to be so stupid to select, edit 
and upload the script through a web interface.

Additionally, a web interface may allow the upload of a new version of 
the script, as well as a plain textarea to manually edit the script 
with. Are those considered sieve editors, can there be made an exception 
to these rules and if they are not considered sieve editors, such should 
be clarified in the KEP (maybe "Guided" or "WYSIWYG" Sieve editors is 
what this KEP really applies to).

-- 
Kind regards,

Jeroen van Meeuwen

-- 
Senior Engineer, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
t: +44 144 340 9500
m: +44 74 2516 3817
w: http://www.kolabsys.com

pgp: 9342 BF08




More information about the devel mailing list