PolicyAndProcess/UFDCodingProcess

Not logged in - Log In / Register

Revision 1 as of 2009-11-18 22:24:28

Clear message

Policy Statement

  1. Form handlers need to accept data that can be entered into forms
  2. Should the form handler encounter unexpected data and it is not seamlessly handled then we must raise a UFD.
  3. A UFD must have an informative OOPS page

SteveA:

  1. Form handlers need only to accept data that can be entered into forms.
  2. Should the form handler encounter unexpected data and it is not seamlessly handled then we must raise a UFD rather than some other kind of exception.
  3. A UFD shall have an informative OOPS page.

The exception to point 1 is where we decide that a particular form handler is a public interface that will be accessed from a Launchpad form and also by other means.

Rationale

A consistent UFD process will allow us to see when we get UFD errors so we can deal with them as part of our production QA activities, so we can:

Process Description

Triggers

  1. A Launchpad form handler encounters unexpected data
    • users manually editing URL lines for GETs
    • users caught between server upgrades -- form page rendered on version N, but submitted to version N+1
    • form posts from non-launchpad site
    • other user-agents accesing Launchpad making assumptions about how the forms work
  2. A Launchpad form handler that does not accept data legitimately entered from its form
  3. A bug in Launchpad, for example where an interaction between the redirection machinery and the form machinery led to UFD.

Inputs

  1. Offending Data entered into the form by by a user, a user's browser, or a robot.

Outputs

  1. A UFD produces an informative OOPS page. Customer is both Launchpad user and Launchpad Developers. A good UFD example should be https://beta.launchpad.net/products?text=foo&text=foo however currently it is producing an OOPS instead of a UFD (XXX: Bug#57474)

Participants

Subprocesses

Standard Path Events/Activities

Alternative Path Events/Activities

None.

Supporting Documentation

Comments