Skip to content

Replacing NSIS #477

@dh-nunes

Description

@dh-nunes

Blockers:

NSIS uses a low-level language to create an installer - this makes it hard to maintain and improve (just look at that mountain of code we currently have). There are other classic alternatives, like Windows Installer or WiX, but they share the same issues.

The only real alternatives are a fully custom python installer or Inno Setup.

With the python installer we have full control over the installer, but we have to make the whole installer. This will give us tons of flexibility at the cost of the unstability (relative to other pre-made installers) typical of a new application. This will also lead to the mountain of code, although one easier to read and improve.

Inno Setup is a pretty simple installer creator. Uses a simple ini-like file to create the installer and while it can be extended with pascal (ugh) it is clearly made for simple cases, like 99% of installers are. Visual Studio Code uses it. The problem here is that installing to multiple independent locations like we currently do would be a huge pain to implement, so this would depend on #250 so we can centralize the installation. Otherwise it seems it can do or even automate most of what we do with NSIS.

For now NSIS seems to work fine and small improvements/fixes look easy enough to do, but it's good to prepare for the future. Any more alternatives or suggestions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-buildArea: build wrye Bash (nightlies to release builds)A-scriptsArea: Scripts (Everything in the scripts folder)C-discussionCategory: Discussion (among developers trying to find consensus on a design etc.)C-todoCategory: TODO, specific item that needs to be accomplished in working towards a goalM-backburnerMisc: On backburner - not rejected, but won't be tackled for a while

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions