Subject: Gen-ART Last Call Review of draft-ietf-sieve-include-13

From: Ben Campbell <[email-masked]>
Date: Tue, 13 Dec 2011 16:13:01 -0600

I am the assigned Gen-ART reviewer for this draft. For background on Gen-ART, please see the FAQ at <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.

Please resolve these comments along with any other Last Call comments you may receive.

Document: draft-ietf-sieve-include-13
Reviewer: Ben Campbell
Review Date: 2011-12-13
IETF LC End Date: 2011-12-15

Summary: This draft is almost ready for publication as a proposed standard

Major issues:

None

Minor issues:

-- section 3.1, paragraph 4: "Implementations MUST NOT generate errors for recursive inclusions at upload time, as this would force an upload ordering requirement upon script authors / generators.  However, if an active script is replaced with a faulty script and would remain the active script, an error MUST be generated and the upload MUST fail."

These two statements seem contradictory on a quick reading.  In particular, how can the latter assertion avoid an upload ordering requirement? Or do you mean faulty in some way other than being recursive?

-- section 3.4.1, paragraph 5: "If a "global" command is given the name of a variable that has previously been defined in the immediate script with "set", an error MUST be generated either when the script is uploaded or at execution time."

Does this conflict with the previous statement that it is okay for a global and a private variable to have the same name?

-- section 3.4.2:

Why do you need two ways to accomplish the same thing?

Does the global namespace have the same "requires" requirement as the global command?

-- section 4.2, paragraph 2:

Can you elaborate on what permissions are proper? Is it different for an included script than for any other script?

-- section 4.2, paragraph 3:

Can you elaborate on what you mean by "safe for a storage system"?

Nits/editorial comments:

-- section 3.1, paragraph 4: "authors / generators"

s/ "authors / generators " / "authors and generators"

-- section 3.2, paragraph 9 (Top of page 6): " 
The included script MUST be a valid Sieve script.  Each script MUST
   have its own "require" statements for all optional capabilities used
   by that script. "

Who do these normative statements apply to? As worded, it sounds like they apply to the user. It might be better to say that the implementation MUST validate that…

-- section 3.4.2, paragraph 3: "Variables declared global and variables accessed via the global namespace MUST be one and the same."

Plurality mismatch. I suggest something like "a variable declared as global and a variable accesses with the global namespace, otherwise having the same name…"

-- section 5:

Please explicitly mention the name or URL of the registry table to which this should be added.