<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
<info>
    
    
    
    
    
    
    
    
    
    
<title>XProc: Back to Last Call</title><biblioid class="uri">http://norman.walsh.name/2009/12/28/xproc-lc</biblioid>
<volumenum>12</volumenum>
<issuenum>43</issuenum>
<pubdate>2009-12-28T09:20:52-05:00</pubdate>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2009</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>Early in January, a new XProc draft will appear. It will be a
Last Call Working Draft, a step backwards in the process, or maybe just
a half-step. The reason is important though: versioning.</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#W3C"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#XProc"/>
</info>

<para xml:id="p1">The
<link xlink:href="http://www.w3.org/XML/Processing/">XProc WG</link>
has been making steady progress on
<link xlink:href="http://www.w3.org/TR/xproc/">XProc: An XML Pipeline
Language</link>. We saw the start of wide adoption of
<wikipedia page="XML_pipeline">XProc</wikipedia> in 2009 and I think
there's every reason to expect more of the same in 2010.</para>

<para xml:id="p2">This makes it all the more disappointing to report that we're
going back to
<link xlink:href="http://www.w3.org/2005/10/Process-20051014/tr#last-call">Last Call</link>.
On a personal note, as a
<wikipedia page="Technical_Architecture_Group">TAG</wikipedia> alum, it's
a bit embarrassing to admit why: versioning.</para>

<para xml:id="p3">We received significant and persuasive criticism of our
<link xlink:href="http://www.w3.org/TR/2009/CR-xproc-20090528/#versioning-considerations">versioning story</link>.
In particular, we were pesuaded that requiring a processor to download
the declarations for <emphasis>V.next</emphasis> steps in order to
process them in a “forwards compatible” manner was too
burdensome.</para>

<para xml:id="p4">In redrafting the story, we added a
<tag class="attribute">version</tag> attribute, “compile-time”
<tag class="attribute">use-when</tag> functionality
<link xlink:href="http://www.w3.org/TR/xslt20/#conditional-inclusion">à la
XSLT</link>,
and extension functions for more precisely identifying the environment
in which the pipeline is running.</para>

<para xml:id="p5">We also took the opportunity to fix decisions that were, in retrospect,
mistakes, but not in-and-of themselves sufficient to motivate us to return
to last call: we changed the rules for connections in option, parameter,
and variable bindings so that an explicit <tag>p:empty</tag> isn't
required when there's no default readable port, and we changed the rules
for parameter input ports so that a binding isn't required when
there's at least one explicit <tag>p:with-param</tag>. Users are already
thanking us.</para>

<para xml:id="p6">I didn't get the document through the publication process before
the end-of-year publishing moratorium, but you can read
<link xlink:href="http://www.w3.org/XML/XProc/docs/WD-xproc-20091222/">the
staged draft</link>, if you wish.</para>

<para xml:id="p7">Will this really be our last Last Call? I sincerely hope so! I
also hope that we can move directly from Last Call to Proposed
Recommendation without the formality of another Candidate
Recommendation phase in between. There's precedent for doing this, and
we've got active implementors.</para>

<para xml:id="p8">I'm sometimes frustrated by how long the process takes, but I
console myself with the observation that the language is better for our
efforts. Rising usage suggests the early adopters, at least, agree
with us.</para>

</essay>

