attachment

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Mike,<div class=""><br class=""></div><div class="">Sorry, but there are a few rants below. 😊 <br class="">
<div><br class=""><blockquote type="cite" class=""><div class="">On May 20, 2020, at 6:33 AM, Michael Sweet <<a href="mailto:msweet@msweet.org" class="">msweet@msweet.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
<div class="">Smith,<br class="">
<br class="">
So the gist of this is that Clients are looking at the job-state-reasons attribute for 'job-password-wait' when the Job isn't completed, and so for EPX 2.0 we should modify the semantics of job-password to be that output is withheld until the End User enters the job-password value at the printer.  One possible implementation is to put the Job in the 'pending-held' state and delay processing until the password is entered.  Another is to let the Job start processing and then end up in the 'processing-stopped' state until the password is entered.  In these cases the Client will see 'job-password-wait' until the password is entered, and then Job will proceed to a terminating state ('completed', 'canceled', or 'aborted') after processing/output is done, as appropriate.<br class=""></div></div></blockquote><div><br class=""></div>It seems the best choice is to remove any mention of Job State as it pertains to Job Password, and focus on "job-state-reasons" keywords to be the primary indicator. But that is suggesting to me that IPP job state is broken. More on this below.</div><div><br class=""></div><div><blockquote type="cite" class=""><div class=""><div class="">
<br class="">
In the case of Release Printing, there is a third possibility where the Job is processed and put in a terminating state (either 'completed' or 'aborted') with the 'job-password-wait' keyword still present.  Since the Job has reached a terminating state, the state-reasons MUST NOT change once the password is entered for releasing the Job at a particular output device, but Clients stop monitoring Jobs at this point anyways and move on to the next Job in their local queues.<br class=""></div></div></blockquote><div><br class=""></div><div>I'm increasingly troubled by this. This has to be brought back to a simpler place than where we are today.</div><div><br class=""></div><div>I think Clients stop monitoring a Release Job at this point because the Printer has caused the Job to reach the terminal state. And printers have caused a Job that should have stayed in 'pending-held' or 'processing-stopped' to reach its terminal state because some Clients block sending new Jobs until the previously sent Job has reached its terminal state, and so the Printer let the Client get away with its bad behavior by lying and moving it to a terminal state when it in fact hadn't reached a terminal state. I think this needs to be fixed. And it shouldn't require a bunch of special cases, because that increases the risk of weirdness. </div><div><br class=""></div><div>I'm going to work on slides illustrating a bunch of Client / Printer topologies, and I hope we can evaluate job state and other indicators, and come up with clear messages about what the Printer reports and how a well-implemented Client ought to behave.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">
<br class="">
(The Release Printing variation isn't pretty, and maybe we should make the semantic that 'job-password-wait' is only added for Physical Devices?)<br class=""></div></div></blockquote><div><br class=""></div><div>Two points on this:</div><div><br class=""></div><div>1. From our earlier discussion I had said that the Printer will put the Job in the 'pending-held' state when the Printer is a Physical Device. I tried to intentionally leave vague what a Logical Device would do. But this dialog has me in a place where I think we need to look through the several use cases and clearly agree on and document a Job's state and how a Client should or should not act in response to this. We had also discussed how the Client's blocking behavior should depend on whether the Printer (Logical or Physical) supports spooling, as indicated by "job-spooling-supported", so we should include that factor in the discussion as well. I think any Printer that supports Job Release MUST also support "job-spooling-supported" = 'spooling' and/or 'automatic'.</div><div><br class=""></div><div>2. My current thinking is that the existing "job-password" / "job-password-encryption" semantic (either how it was specified in 5100.11-2010 or how it exists in the real world, which seems to be pretty different) would remain as-is. If "job-release-wait" = 'job-password', the new Job Release semantics defined for all three Release Action types would apply. That would allow legacy implementations to be as weird as they already seem to be, but try to bring us back to some semblance of consistency and predictability without this band-aid upon band-aid to tolerate the other side's disappointing misbehavior.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">
<br class="">
<br class="">
> On May 20, 2020, at 12:44 AM, Kennedy, Smith (Wireless & IPP Standards) via ipp <<a href="mailto:ipp@pwg.org" class="">ipp@pwg.org</a>> wrote:<br class="">
> <br class="">
> Hi Mike,<br class="">
> <br class="">
> In the minutes from the last F2F (<a href="https://ftp.pwg.org/pub/pwg/ipp/minutes/ippv2-f2f-minutes-20200506.pdf" class="">https://ftp.pwg.org/pub/pwg/ipp/minutes/ippv2-f2f-minutes-20200506.pdf</a>) covering the review of IPP Enterprise Printing Extensions v2.0, it says this toward the bottom of page 4:<br class="">
> <br class="">
>    • ⁃  Decouple job-state from Job Release:<br class="">
> <br class="">
>            • ⁃  job-state-reasons provides the Release state information<br class="">
> <br class="">
>            • ⁃  While 1.0 says job-password holds a job, subsequent<br class="">
> <br class="">
> implementation experience shows that processing a job is also a valid implementation semantic - any job-state is OK for job-password<br class="">
> <br class="">
>            • ⁃  Also valid for a Printer to hold a job that has a release action <br class="">
> <br class="">
> I'm wondering what this means and how this might affect the document. Are you saying that I need to change the language for "job-password" to soften it so that it isn't a hard requirement for the Job to be in the 'pending-held' state initially? I'm trying to not break backward compatibility so I'm not sure what to do with this.<br class="">
> <br class="">
> Thanks for any help,<br class="">
> <br class="">
> Smith<br class="">
> <br class="">
> /**<br class="">
>     Smith Kennedy<br class="">
>     HP Inc.<br class="">
> */<br class="">
> <br class="">
> _______________________________________________<br class="">
> ipp mailing list<br class="">
> <a href="mailto:ipp@pwg.org" class="">ipp@pwg.org</a><br class="">
> <a href="https://www.pwg.org/mailman/listinfo/ipp" class="">https://www.pwg.org/mailman/listinfo/ipp</a><br class="">
<br class="">
________________________<br class="">
Michael Sweet<br class="">
<br class="">
<br class="">
</div>
</div></blockquote></div><br class=""></div></body></html>