| Thread overview | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 28, 2009 Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
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.
--
Best regards,
Vladimir mailto:thecybershadow@gmail.com
| ||||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | "Vladimir Panteleev" <thecybershadow@gmail.com> wrote in message news:op.uv7lme01m02fvl@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. | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | On Sun, 28 Jun 2009 06:05:20 +0300, Nick Sabalausky <a@a.a> wrote: > - 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. I just remembered that Cygwin does something like this. Although I think its installer's interface is somewhat unintuitive, we might be able to reuse some code. -- Best regards, Vladimir mailto:thecybershadow@gmail.com | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | I actually started sketching out a possible installer a few weeks ago. Here's what I came up with: First of all, you can't include DMD itself in the installer since the license doesn't allow for this. Secondly, it occurred to me that a program like Cygwin's setup might be a good idea. That is, instead of installing a single version of a single compiler to the machine once, it could be "reusable" and provide the following: 1. Initial install. First time, it offers to install a compiler, allowing the user to choose vendor (obviously only DigitalMars for now), the compiler series (1.x or 2.x), either the latest release, a "bleeding-edge" build (which hasn't undergone testing yet) or a specific version. It could also offer to install and configure toolchain components. That's bud, xfBuild, dsss, maybe even IDEs like Poseidon [1] 2. Management. If you re-run the installer, it should show your installed compilers and toolchain programs, check for updates and offer to upgrade them. It should also allow you to install another compiler in *addition* to any existing ones, as well as remove them and select which one goes on the system/user PATH. 3. Diagnostics. A lot of people get on the NG or IRC complaining about "Can't find module object.d" Most of the time, it's because they decided to be clever and screwed with the layout of the folders when extracting. It would be nice to have a button behind which we could run tests for the most common broken install problems (you rearranged the directories you thick burke; why did you think this WOULDN'T break it?!) As for using an installer "tool", I don't think that's really applicable for something like this. I say write it in D because otherwise we'll have people saying that D sucks because we don't use it. *sigh* In a larger context, I think what we should probably do is set up a website or a portion of the wiki for a "Community Toolchain" project. Get a list of what D needs, what it needs to do and who is working on it so that people can contribute more easily. (I actually think we need a proper community-run front page for D, but that's for another day.) [1] You think that should be "Acidosis"? Really, Thunderbird spell-checker? REALLY? | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | Hello Vladimir, > 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. libs? maybe. Tools? No! I hate "installeres" that go out and download what they are supposed to install. For one thing it make it really hard to archive your toolchain. > > Further ideas: > * adjust PATH to include DMD and any selected build tools Duh :) > * DSSS "net install" integration? (show a checkbox list of libraries) that could work > 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. I've only ever looked at InnoSetup. | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | On Sun, 28 Jun 2009 03:43:16 +0300, Vladimir Panteleev wrote: > 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. So, something like the DInstaller project? http://dsource.org/projects/dinstaller Never really got a great amount of interest. | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | Vladimir Panteleev wrote:
> 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)
...
Wouldn't it be sweet to go further and use dsss as that part of the installer which handles the libraries or more? There's probably a good bit of useful code in there, or even better dsss could be updated as required by the installer project. That will leverage dsss user base and revive dsss at once. Plus the way dsss works, it makes it easy to extend the list of components in the future.
| |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Daniel Keep | "Daniel Keep" <daniel.keep.lists@gmail.com> wrote in message news:h26unf$1kt9$1@digitalmars.com... > > 2. Management. > > If you re-run the installer, it should show your installed compilers and toolchain programs, check for updates and offer to upgrade them. It should also allow you to install another compiler in *addition* to any existing ones, as well as remove them and select which one goes on the system/user PATH. > Yes, very good idea. > > As for using an installer "tool", I don't think that's really applicable for something like this. I say write it in D because otherwise we'll have people saying that D sucks because we don't use it. *sigh* > I'd imagine it'd just be a small minority of boneheads doing that, and mostly ones that are just simply looking for *any* reason to dismiss D. I think, initially, the most important thing is to have a good system up and running with whatever gets us there with the least trouble. *Then* we can worry about porting it to D for "purity" and warm fuzzy feelings. And it's not like this sort of bootstrapping isn't common for new languages anyway (Heck, I bet the JVM still isn't written in Java.) What we certainly don't want to do is end up reinventing a full NSIS/InnoWhatever clone in D before finally getting around to giving people this important tool. > > (I actually think we need a proper community-run front page for D, but > that's for another day.) > One can wish... > > [1] You think that should be "Acidosis"? Really, Thunderbird spell-checker? REALLY? Hah! :) You know, as much as I like open-source apps, I swear, I have never come across a spelling-suggestion engine in an open-source app that was actually worth a shit. Ok, maybe I'm exaggerating a bit (and venting), but I constantly get so fed up (firefox in particular, but OpenOffice too) with suggestion systems that never have the word I'm looking for unless my guess just happened to be an unbelievably tiny hamming distance away. Have you ever found yourself rewriting the same misspelled word numerous incorrect ways just to get the stupid checker to figure it out? I do that constantly. It'd probably be quicker just to grab a real dictionary. | |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | On 28/6/09 01:43, Vladimir Panteleev wrote:
> 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.
>
I guess if we want to do this properly, a full install wizard should be there, allowing you to simply click 'Next' to get a full working toolchain: Compiler (probably dmd), Build tool (one of bu[il]d, rebuild, xfbuild), and a base set of libraries. There should also be an advanced option to pick between D1/2, pick compiler, build tool, libraries, phobos/tango etc. There could also be an option to install an ide/debugger which a lot of people will find useful.
| |||
June 28, 2009 Re: Windows DMD installer | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | Jesse Phillips Wrote:
> On Sun, 28 Jun 2009 03:43:16 +0300, Vladimir Panteleev wrote:
>
> > 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.
>
> So, something like the DInstaller project?
>
> http://dsource.org/projects/dinstaller
>
> Never really got a great amount of interest.
That was my project. I stopped for a while out of disinterest and I'm working on it a bit, just no commits. I was working on something that would help DSSS net out I think. I haven't finished it yet. If there is any interest please email me, post here, or in the Dinstaller forum part. I'm not just going to let it die, I've just got a bit behind is all.
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply