"Vladimir Panteleev" <thecybersha...@gmail.com> wrote in message news:op.uv7lme01m02...@cybershadow... > As recently posted by WB, we should get a Windows installer project going. > I think we should first discuss what this installer would contain, which > installer framework to use, etc. > > In my opinion, the Windows installer's goal is somewhat different than a > Linux installer. I've heard many people say that they'd love a simple > installer that installs them everything including a build tool, IDE, > debugger, etc., so perhaps it should allow installing more than just the > barebones DMD. However, we don't want to include things that many people > won't use either. Therefore, I was thinking that the installer could > download and install components (libraries, text editors/IDEs or plugins > for them, build tools) from the web if the user ticks some corresponding > checkboxes. > > Further ideas: > * support Windows' "change" option in Add/Remove Programs to allow > removing, reinstalling and updating components > * when installing an editor, associate .d files with it > * adjust PATH to include DMD and any selected build tools > * adjust DMD search paths to point to any additional libraries (Tango, > DSSS etc.) > * DSSS "net install" integration? (show a checkbox list of libraries) > > Going further with this idea, we could remove DMD itself from the > installer and allow the user to install DMD1/DMD2 as a component, thus > creating a "meta-installer" to manage the D toolchain. > > As for the installer system: I'm familiar with NSIS and InnoSetup, both > are open-source. NSIS is extensible and can thus download files from the > Internet, but AFAIK InnoSetup can't (even though it has a more flexible > scripting language). Windows Installer is also used by some open-source > software like TortoiseSVN. > Some good ideas there. My pie-in-the-sky thoughts:
- It would be good to have these two presets in addition to choose-your-components: 1. All important stuff (Libs + Tools) including the GUI Tools 2. All important stuff (Libs + Tools) but without the GUI Tools Rationale: Some people are into GUIs and some aren't. Some people already have their favorite GUI tools and others might not mind replacing them. - It would also be good to have these three basic types of downloads (generated by some sort of script, of course): 1. A small net-only installer (ie downloads the latest components). There should be an option to keep or delete the unpacked downloads after install. 2. An installer packaged with the latest (at the time of packaging) components (but can still do a net-install though). This would be available in both "with GUI " and "without GUI" flavors. The "without GUI" can of course still do an optional net-install of the GUI tools. 3. A no-installer archive that is, to whatever extent possible, preconfigured to minimize manual post-extraction configuration, and includes well-written instructions for whatever followup steps are needed. This would be available in both 7z (best archive format, as far as I know) and zip (for people who have yet to join the 21st century and install an archive app that can do things like rar and 7z.) Rationale: Some people like installers, some people hate them. But the people who dislike them should still be able to benefit from this all-in-one project. Some people want to be able to install offline (and may not always have a connection available), others don't care. Some people don't want to waste space on components that will eventually become an older version, others don't mind and like the sense of security from keeping around the installers for whatever they've installed. Misc: - FWIW, I've used NSIS in the past and liked it. - Version control clients (including TortoiseSVN) might be good optional components (licenses permitting), since VCSs are used heavily in the D scene. - The net-install capability should also be able to update it's internal list of components and defaults (ie without requiring a new version of the installer to be downloaded) since projects do sometimes get abandoned or replaced by a better alternative, etc.