# setup
Three crates for building an installer.
| `setup-wizard` | The wizard: the pages, the progress, the silent mode, and the seam a product fills in |
| `winkit` | The Win32 an installer has to talk to. Windows only |
| `sevenfold` | Solid 7z and zip extraction, in parallel, with progress |
`setup-wizard` installs whatever a `Product` says, through an `Engine` it is
handed: the payload unpacker in this crate, or one of the product's own. The
product also supplies its brand, its icon and its fonts. It draws with iced's
software renderer, so no GPU driver is needed. The three version together.
`sevenfold` and `winkit` keep their library names `rpak` and `winsys`, so
a crate that depends on them by their crates.io names imports `rpak::` and
`winsys::`, not `sevenfold::` or `winkit::`.
## Publishing
The three version together and are published in dependency order; each one has
to be on the index before the next resolves.
cargo publish -p sevenfold
cargo publish -p winkit
cargo publish -p setup-wizard
Then, in each consumer, drop the `[patch.crates-io]` section that pointed at
this checkout, build with `--locked` to take the published crates, and commit
`Cargo.lock` with it.