sample setup "version chooser"

DJ Delorie
Mon Jul 24 18:53:00 GMT 2000

I've had to build a custom control for the next thing I'm working on
in setup, so please try this and comment on it:

A little info about what I'm trying to accomplish:

The setup.ini file that we use allows us to specify up to three
versions of each package that are available for download.  We
label these:

* the current stable version
* the previous stable version (for paranoids)
* an experimental version (for the daring)

In addition, there's a fourth version - the one the user already has
installed (they can choose to keep that version).  When you add
"Uninstall", we get a maximum of five options for what to do about
each package.  These options are in the "New" column in the chooser
(the one with the cycling arrows icon), and the user would click on
entries in that column to change them (the final version would have
suitable instructions in the dialog).  The sample pre-fills the list
with some test cases.

Setup.ini will also, in the near future, be able to specify whether a
package is installed by default, or skipped by default.

My original idea was for the user to select a default level of
paranoia/daring that I call "trust" (how much you trust the packages
to work right).  Then, when they run setup, it checks to see what the
appropriate version of each package is based on their tags and your
trust, and automatically updates your system to match that.

However, the chooser I've created allows the user to override that
default on a package-by-package basis, so you could (for example) try
an experimental version of just one package, or choose to uninstall a
single package.

If the user selects to install a package that isn't installed by
default, should it get upgraded automatically by default after that?
Same for uninstalling a package that's installed by default.

What you can't do at the moment are these:

You can't have different default trust levels for each package.
I.e. you can't automatically get new experimental releases for some
packages, but stick with stable releases for others.

You can't easily choose a new trust level while looking at the list of
packages.  If this is a popular request, I may rewrite the code to
support it, but at the moment it's all picked at startup.

More information about the Cygwin-developers mailing list