(edited on: 2017-10-04 23:25)
Yesterday, I proposed to Zalewa and Blzut3 about making improvements to the way Doomseeker is distributed and packaged for Microsoft Windows operating systems. (macOS is to be followed later.) As of time of writing, it's an idea in the backlog with no time goals.
I've proposed Doomseeker to be distributed as a Windows Installer (.msi file). There are benefits and cons to this approach. (Acknowledgement to Zalewa for the list.)
Some good things about this suggestion:
- Installers (.exe or .msi) are treated to be common on Windows for installing software. They are typically downloaded from the Internet. Typically, there is no package management available on Windows (besides Windows Store).
- An installer for Doomseeker could allow the user to choose if they'd like to exclude any engines from the install.
- Portable installations could be more feasible without packaging a clumsy "doomseeker-portable.bat".
- Unzipping a portable archive can be unfamiliar especially to less tech-literate users.
- Doomseeker uses at least three seperate directories to store data. There is currently no easy way to remove a portable installation of Doomseeker on Windows. An uninstaller could offer an option to purge.
- Installers may be code signed for integrity and trust.
- Windows Installers (MSI) could be installed by a system administrator to all computers in the local network, also silently without user interaction.
- If the install with a Windows Installer fails, it will be rolled back instead of leaving up with a potentially broken install. Same goes for updates (although Doomseeker's Mendeley updater already handles roll backs).
- Downloading and installing Doomseeker could be made easier via Windows Store.
- We could create Start Menu shortcuts automatically for the executable and uninstalling.
Some points against this suggestion:
- It could turn into a "glorified unzip", which brings little benefits for extra maintenance effort.
- Engine plugins in Doomseeker are fairly lightweight. It's possible to disable querying their master servers in configuration, thus choosing engines during installation is of little benefit.
- Extra steps need to be taken to ensure WADs are also not deleted if Doomseeker's configuration files also reside in the same directory.
- It may not be worth the effort.
- As time of writing, there's only two developers/maintainers (Zalewa, Blzut3) working on Doomseeker (plus myself). I'm working mostly on Unix-like systems and do not have a dedicated Windows machine. Maintenance effort and time is shared on multiple operating systems between Windows, GNU/Linux and macOS operating systems.
- MSI files require code signing. They will refuse to install on a third-party PC if they're unsigned, leaving the user with a "Windows protected your PC" message.
- Code signing certificates can cost upwards of hundreds of US dollars per year.
- I don't know yet if Windows Store has censorship policies or costs for software listed there.
There's different ways to create an installer for Windows: WiX, Inno Setup or NSIS to name a few. WiX creates .msi files, which is an officially supported installation method by Microsoft. Inno Setup and NSIS create .exe installers/extractors.
I propose WiX and MSI to be used for installers. MSI allows the networked installs, repairs, uninstalls and roll backs on failure. They support patch-releases (merge modules). It can check if required dependencies are installed on the system, and optionally install them if not present. It can compare GUIDs to check which files need to be replaced, instead of extracting all (a possible problem with unzipping).
Zalewa has said to me privately via email to have "learned NSIS once and the syntax was fairly easy and you could create installers quickly with it".
Is this new, proposed approach beneficial to Doomseeker? More research for steps to be taken and feedback is required.