Subject: IPP> MOD - proposed text for 3.1.5 Versions

From: [email-masked] (Steve Zilles)
Date: Mon, 29 Sep 1997 10:58:55 -0800

Here is one of my three assignments. Lacking a good way to express changes
in an ascii file, the main differences are prefixes to paragraphs 3 and 4
of the original version to clarify what the purpose of the two parts of the
version number are used for and clarification that a change to either the
Model or the Protocol changes the version number (major or minor). there is
also a sentence about a change to the major version number resetting the
minor to zero.
        Steve

3.1.5 Versions

Each operation request carries with it a version number. Each version
number is in the form X.Y where X is the major version number and Y is the
minor version number. By including a version number in the client request,
it allows the client (the requester) to identify which version of IPP it is
interested in using. If the Printer does not support that version, the
Printer responds with a status code of
'server-error-version-not-supported'.

There is no version negotiation per se. However, if after receiving a
version not supported status code from the Printer, there is nothing that
prevents a client from trying again with a different version number. For
example, a client might be configured to support IPP version 3.0, 2.5, 2.0
and 1.0 (hypothetically speaking). A client might first try to speak
version 3.0. If after receiving a version not supported, it might
successively try version 2.5, then 2.0, then 1.0. All implementations MUST
support version 1.0.

There is only one version number that covers both IPP Model and the IPP
Protocol changes. Thus the version number MUST change when introducing a
new version of the Model document or a new version of the Protocol
document.

Changes to the major version number indicate structureal or syntactic
changes that make it impossible for older version IPP processors to
correctly parse and interpret the new or changed attributes, operations and
responses. If the major version number changes, the minor version numbers
is set to zero. One example that would have required a change to the major
version number would have been adding the ipp-attr-fidelity attribute if it
had not been part of version 1.0. Items that might affect the changing of
the major version number include any changes to the protocol specification
itself such as:
- reordering of ordered attributes or attribute sets
- changes to the syntax of existing attributes
- changing OPTIONAL to MANDATORY and vice versa

Changes to the minor version number indicate the adddition of new features,
attributes and attribute values that may not be understood by all IPP
processors, but which can be ignored if not understood. Items that might
affect the changing of the minor version number include any changes to the
model objects and attributes but not the protocol specification itself,
such as:
- grouping all extensions not included in a previous version into a new version
- formally adding in new attribute values
- changing any of the type1 attributes

--------------------------------------------------------------
Stephen N. Zilles             |  e-mail: [email-masked]   |
Adobe Systems Inc.            |                              |
Mailstop W14                  |  tel: (work)  (408) 536-4766 |
345 Park Avenue               |       (Admin) (408) 536-4751 |
San Jose, CA 95110-2704       |  fax:         (408) 537-4042 |
--------------------------------------------------------------