Make dub part of the standard dmd distribution
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Sun May 31 22:21:42 PDT 2015
On 5/31/15 10:05 PM, Brad Anderson wrote:
> dub fetch does this already (though probably not quite what you are
> thinking of). You'd need to specify the paths manually because if it
> installed them to the global compiler paths we'd have dependency hell
> (what if 5 projects I have need 3 different versions of a library?).
> Also, you'd need root permissions.
Usability is key here. Installing stuff should really be as simple as
pasting a command. That's how Flash won over Java applets etc. etc.
I installed a Python program the other day. I think it's rather obscure
- it's called "lcinvestor". I got from knowing nothing about how to
install Python stuff to having the application running in minutes.
The installation page at https://pypi.python.org/pypi/lcinvestor
mentions at a point:
====
The easiest way to install is with pip:
sudo pip install lcinvestor
====
So I ran that. It didn't find pip. So I googled for it (first hit if you
google for "pip"). Essentially I downloaded the script get-pip.py and
then ran:
python get-pip.py
That worked nicely. Then I tried running pip again, it worked, and boom,
I was up and running.
But wait, there's more. I then wanted to install lcinvestor on a machine
I didn't have sudo access to. Sure enough, searching for things like
``pip without sudo'' took me to
http://kazhack.org/?post/2014/12/12/pip-gem-install-without-sudo where I
figured all I had to do:
pip install --local lcinvestor
Boom, I was set - the installation target was ~/.local/bin/. Sure enough
that was in PATH and all so the program just worked.
That's the benchmark, folks. We need to get as good or better.
> That's not really how you use dub though. dub simply isn't a good fit
> for people who want it to be a system package manager. Its goals are
> different. If people want that they should work on getting libraries
> added to their preferred system's package registries.
Then we need a different program than dub. "dip" :o).
> With dub you specify the dependencies in the dub config file, not in
> some obscure section of an INSTALL file as a command the users need to
> run. You can checkout a project using dub and with a single command have
> dub download and build all the dependencies (and their dependencies) and
> then build your project against them.
That seems reasonable.
> dub is about making it easy for 99% of users. If you need your own build
> system then using dub just to download packages is overkill. Use git
> submodules or add something to do a download of your dependencies from
> github as part of your custom build system.
That seems reasonable, too.
So are we there yet?
Andrei
More information about the Digitalmars-d
mailing list