PWIZ - The Packaging Wizard User Manual

Packaging is a work, which combines very sophisticated and mechanical
tasks. Most of those mechanical tasks can be fully automated. To make
a package, you need to perform both types of actions.

This is a purpose of PWIZ. Like other wizards, it helps user to
undertake through this process. If PWIZ finds mechanical actions, then
it performs it, if it finds need for qualified action, it asks human.

PWIZ is an application, which should help to create genuine quality
packages by users or package maintainers with minimal manual
intervention.


Understanding the PWIZ 

PWIZ split its work to phases. Each phase correspond so some major
type of work (searching for package, downloading it, inspecting
sources, compiling, installing, merging to system etc.). Phases are
splitted to particular stages of work. One stage is one or more
commands executed in order at once.

PWIZ has modular conception. PWIZ core engine core consist of phase
processor and guess evaluator. Both do nothing interesting for user
without modules.

One type of modular engines are intended for communication with user.
Second type of modular engines are for back-end communication with
packaging system.

The most interesting are packaging wizard modules. Those modules have
chance to hook its own action to any phase, call other engines and
functions from other modules. Each module handles one or more aspects
of packaging process.

All modules alltogether give complete packaging process. PWIZ goes
through stages and phases, and tries to guess best, what to do.
Sometimes, it requires an user intervention. It is done by standard
asking iterface.


Cache

All your answers are stored in cache. Next time you will ask the same,
PWIZ will use previous answer to correct its guess.


How to understand questions values

PWIZ tries to guess best answer. It's a rule of some fuzzy logic, and
any guess has two aspects:

Probability (p): Probability tries to identify, how probable is this
question. But probability of some question says nothing about reality,
it is only weak indication. Range is 0% to 100%.

High probability means: This value is probable, but there is no
indication, that it is true.

Credibility (c, TODO): If PWIZ has some indications, that this answer
is the right one, credibility (quality) of this answer increases. Such
indication can be based from a result of a testcase or from previous
answer of a person. Range is 0 credits to 100 credits.

Such simple heuristic does not help much in real packaging. That's why
PWIZ tries to deduce an inheritance of answers to subsequent version
of the same package and for the same package for other products
(distributions).

High quality means: There is good indication, that it is true.


How to understand aswer values

To not disturb user with trivial and already answered questions, PWIZ
evaluates credit of each answer. If the credit of an answer is above
credit threshold, you will not be asked again.

To get qualified credibility guess, PWIZ uses two techniques - user
skills and answer quality. Final credit is about product of both
values.

First is personal skills. You can define your knowledge skills. Your
answer will never obtain higher credit than quality of your skills.

After each question, user has to decide, how sure is the answer. If
you are guessing, you can simly click Enter to get (probably) working
package without giving your credit to answers. On other hand, if you
precisely answer each question, you can give whole your credits to
answers. In this case, next time PWIZ will not ask you again.
