Looking through the open issues with the installer, including my own internal issue list it has become clear to me that this needs to be reworked:
The main problem with the current installer, as I see it, is that it is mostly just wrapping a Python script that it runs, and that script includes downloading all the files needed for the installer. Many of the open issues stem from this download step. The installer is not so useful if it has to go out to the internet to obtain more files, especially on more limited networks. Instead, the installer executable itself should contain all files that need to be installed (either wrapped in their own installers, or pre-extracted).
To this end I see no reason not to also include Git itself in the installer, as well as Anaconda (for Python workshops) or R (for R workshops). The installer could even include both, and present different pre-configurations. Yes it would be large, but still fittable on most USB drives. If it's really too large we could still offer Python-only or R-only versions as well.
I think the existing Python script, if it's kept at all in its current form, will prove mostly useful for building the installer itself, but not as something run on the user's system. Though the post-install configuration it provides might still be worth keeping as well (albeit splitting off as a separate script), if nothing else because the "PascalScript" provided by Inno Setup is a major pain to work with. That said, there's not a lot in the current installer script that I couldn't do directly from Inno Setup either.
I don't care if it can't be "tested" except on Windows, because really there isn't a lot of value to testing the "Windows Installer" except in Windows anyways (there are many issues that show up on Windows that are not caught by running the script on, say, Linux anyways). I would just use a VM for testing the installer.
Looking through the open issues with the installer, including my own internal issue list it has become clear to me that this needs to be reworked:
The main problem with the current installer, as I see it, is that it is mostly just wrapping a Python script that it runs, and that script includes downloading all the files needed for the installer. Many of the open issues stem from this download step. The installer is not so useful if it has to go out to the internet to obtain more files, especially on more limited networks. Instead, the installer executable itself should contain all files that need to be installed (either wrapped in their own installers, or pre-extracted).
To this end I see no reason not to also include Git itself in the installer, as well as Anaconda (for Python workshops) or R (for R workshops). The installer could even include both, and present different pre-configurations. Yes it would be large, but still fittable on most USB drives. If it's really too large we could still offer Python-only or R-only versions as well.
I think the existing Python script, if it's kept at all in its current form, will prove mostly useful for building the installer itself, but not as something run on the user's system. Though the post-install configuration it provides might still be worth keeping as well (albeit splitting off as a separate script), if nothing else because the "PascalScript" provided by Inno Setup is a major pain to work with. That said, there's not a lot in the current installer script that I couldn't do directly from Inno Setup either.
I don't care if it can't be "tested" except on Windows, because really there isn't a lot of value to testing the "Windows Installer" except in Windows anyways (there are many issues that show up on Windows that are not caught by running the script on, say, Linux anyways). I would just use a VM for testing the installer.