
Cleanup unused files.
Complete unistallation of a product is needed to legally resell it.
Keep system tidy.
The main act of installing an application should be copying or unpacking it to a directory on the system. The application should keep all of it's files in this directory, excluding shared files like shared libraries and offered files like fonts, but including libraries and fonts used exclusively by the applications.
Suggestion: Default destination should be the largest disk on the local
machine.
Suggestion: Destination should always be chosen by the user from the
list of available drives.
Is it possible to distinguish which drives are local? The default destination should be a drive that exists. Should we be able to define multiple default destinations for different types of packages in preferences?
Idea: Let the installer generate a dos-script that is executed after the questions are ready. This allows for expert users to look through it before running it, and the script can be saved for later inspection. It can also be used again, if the same installation is to be performed again, after a crash or on another machine with identical setup.
Should we offer "delayed replacement" of files? This will have to be done in the startup-sequence, pretty early.
The user should be able to change his competence level (Novice, Intermediate, or Expert) during the installation, like with a menuitem.
Suggestion: The user should be able to set different options for adverts, not just on or off. The options may include 'Default', 'Show Static Logo', 'Show Program Tips', and 'Entertain Me', with invalid choices being grayed out. Each advertizing-part of the install-script must then be marked by its type. The user could also choose which datatypes he would like to see: pictures, animations, sounce, music, etc.
The installation logfile should aid in unistalling the application. Or not. Discussion needed.
Replaced files should be backed up as an option. This enables the installation to be rolled back if it fails. How long should this backup be kept? How about a general "version control" tool to let the user/administrator swap between different versions of shared files? No good? This way you never actually delete older versions of shared files, and you can revert to older versions if the newest has a bug. An even newer version with the bug removed would be even better, though.
The psystem shoulf utilize file-tracking (what's the correct expression?) but must not rely on it since files can be deleted on other platforms by moving the HD or using removable media.
The phrase "shared file" means a file required by an application which can also be used by another application. This does not include files which an application offers, but does not require, such as fonts and datatypes. Typical shared files are libraries and devices.
The phrase "offered file" means a file offered by the application which other applications can also use. Typical offered files are fonts. Offered files should have a separate tool for unistalling, like a font-manager for fonts.
A used-count for shared files is needed to determine if any applications need it.
package mypackage
source mycd:english/install
requires file libs:asl.library
requires file classes:tapedeck.gadget
user-startup entry priority 0
;BEGIN mypackage
assign mypackage: <install-dir>
path mypackage:bin add
;END mypackage
package utils
requires file libs:asl.library
requires file l:kcon.handler
requires file c:list
package util1
requires file libs:asl.library
requires file l:ahi.handler
package util2
requires file libs:asl.library
requires file devs:scsi.device
mypackage 2.1 (1. january 1998) work:apps/mypackage
utils 1.0 (8. august 1988) work:utils
util1 43.2 (13. january 1998) work:utils
util2 1.36 (13. march 1998) work:utils
system 4.0 (1. october 1998) sys:db
orphan 4.0 (1. october 1998) sys:dbA subset of this list should be on every device. This would allow for quick registration of packages on removable media. If a disk is mounted which does not include an applist, the user should have an option of scanning the disk to create an applist for it.
A tool for editing the portfolio and applist files are needed, although the syntax should be simple enough for advanced users to edit by hand.
;mypackage 2.1 (1. january 1998) work:apps/mypackageor the like. It would save one file, making it easier to find what you are looking for. Using entries as above, s:user-startup becomes the applist. The sublists for each device would efectively become the s:disk-inserted script, if there was one.
It would also be possible to use a registration command like this:
;BEGIN mypackage
loadportfolio work:apps/mypackage/mypackage.portfolio
;end mypackageThis way the application can also be registered in an IPC environment. Another advantage is that s:user-startup will get smaller since the actual commands for assigns, path, etc. are in teh portfolio. The ";BEGIN" and ";END" are not needed since each package inserts just one line in s:user-startup. They can of cource be kept for compatibility..