Thread overview
Re: dip - another D package manager
May 17, 2013
Timothee Cour
May 18, 2013
Rory McGuire
May 18, 2013
Marco Nembrini
May 18, 2013
Rory McGuire
May 18, 2013
Iain Buclaw
May 18, 2013
Rory McGuire
May 18, 2013
Iain Buclaw
May 17, 2013
great! Can you explain a bit pros/cons wrt other ones such as dub? also, dip name is a bit confusing because DIP stands for D Improvement Proposal, wiki.dlang.org/DIPs.

On Fri, May 17, 2013 at 3:53 PM, Rory McGuire <rjmcguire@gmail.com> wrote:

> Hi all,
>
> I've started working on a little experimental package manager
> https://github.com/rjmcguire/dip that works similar to golang's go
> command.
> I've only tested it on linux amd64.
>
> At the moment the commands that work are (these are examples):
>
> # to fetch a repo using git (only works for github.com at the mo'), files
> placed in $DPATH[0]/src/
> dip get github.com/D-Programming-Deimos/openssl
>
> # to build
> dip github.com/D-Programming-Deimos/openssl
> # or from a packages directory:
> dip
>
> # to install in the first path found in DPATH, $DPATH[0]/bin for
> executables:
> dip -i
> # or
> dip install github.com/D-Programming-Deimos/openssl
>
> Program expects a environment variable DPATH to exist, it will tell you:
> *$ dip*
> *WARNING DPATH NOT SET, suggest DPATH="~/d/:/usr/local/d"*
>
> Program assumes dmd is in /usr/local/d/bin/dmd unless you set DROOT to something else such as "/usr/" in which case it will use /usr/bin/dmd.
>
> Config is in README.md example (excluding ====== lines):
> =========================================
> # vibe.d - The vibe.d web services framework
>
> ## Dependencies:
>  * github.com/D-Programming-Deimos/openssl: >=0
>  * github.com/D-Programming-Deimos/libevent: >=0
>
> ## Flags:
>  * Library
>  * -version=VibeLibeventDriver - options are VibeLibevDriver,
> VibeLibeventDriver
> =========================================
>
>
> todo:
> * handle dub packages, their dependencies are not fully qualified in
> package.json so I can't just load them from the file, if you put qualified
> dependencies in "dip-dependencies" in package.json it does work.
> * support sourceforge etc...
> * most likely I'll be changing the way config works because it doesn't
> look nice in github's md viewer.
> * check versions of packages and enforce them
> * output help
> * Fix bugs :)
>
> Thanks.
>
> Kind regards,
>
>


May 18, 2013
On 18 May 2013 01:36, "Timothee Cour" <thelastmammoth@gmail.com> wrote:
>
> great! Can you explain a bit pros/cons wrt other ones such as dub? also, dip name is a bit confusing because DIP stands for D Improvement
Proposal, wiki.dlang.org/DIPs.
>

The main good things are the directory structure, dependency location is
unique, and the dpath lookup.
I'm still deciding on what other pros or cons to put in.

It's likely it will end up with more convention over configuration stuff. Such as: if main.d exists make a executable otherwise make a library.

Oh another thing it does is if there is a directory called .dpath in a folder or is parents then it will use that for install and lookup.

Regarding dip vs DIP the same exists in python.


May 18, 2013
On 18.05.2013 08:55, Rory McGuire wrote:

> Regarding dip vs DIP the same exists in python.
>

In Python they are pip (the installer) and PEP (Python Enhanchment Proposal), so no confusion there.

May 18, 2013
On May 18, 2013 12:21 AM, "Rory McGuire" <rjmcguire@gmail.com> wrote:
>
> Hi all,
>
> I've started working on a little experimental package manager
https://github.com/rjmcguire/dip that works similar to golang's go command.
> I've only tested it on linux amd64.
>
> At the moment the commands that work are (these are examples):
>
> # to fetch a repo using git (only works for github.com at the mo'), files
placed in $DPATH[0]/src/
> dip get github.com/D-Programming-Deimos/openssl
>
> # to build
> dip github.com/D-Programming-Deimos/openssl
> # or from a packages directory:
> dip
>
> # to install in the first path found in DPATH, $DPATH[0]/bin for
executables:
> dip -i
> # or
> dip install github.com/D-Programming-Deimos/openssl
>
> Program expects a environment variable DPATH to exist, it will tell you:
> $ dip
> WARNING DPATH NOT SET, suggest DPATH="~/d/:/usr/local/d"
>
> Program assumes dmd is in /usr/local/d/bin/dmd unless you set DROOT to
something else such as "/usr/" in which case it will use /usr/bin/dmd.
>
> Config is in README.md example (excluding ====== lines):
> =========================================
> # vibe.d - The vibe.d web services framework
>
> ## Dependencies:
>  * github.com/D-Programming-Deimos/openssl: >=0
>  * github.com/D-Programming-Deimos/libevent: >=0
>
> ## Flags:
>  * Library
>  * -version=VibeLibeventDriver - options are VibeLibevDriver,
VibeLibeventDriver
> =========================================
>
>
> todo:
> * handle dub packages, their dependencies are not fully qualified in
package.json so I can't just load them from the file, if you put qualified dependencies in "dip-dependencies" in package.json it does work.
> * support sourceforge etc...
> * most likely I'll be changing the way config works because it doesn't
look nice in github's md viewer.
> * check versions of packages and enforce them
> * output help
> * Fix bugs :)
>
> Thanks.
>
> Kind regards,
>

Rory... so we meet again.  :)

Looks like a nifty tool. However many projects use wildly different build system's - all mine use make,  some people prefer waf or cmake - or may provide configuration files for one of the vagary of package managers out there's for D that are out there roaming around.

So do you cater for all these mix match of tools out there, or is your focus thise specific to the d tool chain.

Also, only dmd support?

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


May 18, 2013
Oh right you are. My apologies :) however I still like the name dip.
I'm open to any other 3 letter words.
On 18 May 2013 11:15, "Marco Nembrini" <marco.nembrini.co@gmail.com> wrote:

> On 18.05.2013 08:55, Rory McGuire wrote:
>
>  Regarding dip vs DIP the same exists in python.
>>
>>
> In Python they are pip (the installer) and PEP (Python Enhanchment
> Proposal), so no confusion there.
>
>


May 18, 2013
Hi Iain,

On 18 May 2013 12:41, "Iain Buclaw" <ibuclaw@ubuntu.com> wrote:
>...
>
> Rory... so we meet again.  :)

Are you from selection.co.uk?

> Looks like a nifty tool. However many projects use wildly different build
system's - all mine use make,  some people prefer waf or cmake - or may provide configuration files for one of the vagary of package managers out there's for D that are out there roaming around.
>
> So do you cater for all these mix match of tools out there, or is your
focus thise specific to the d tool chain.

If it's to have any success it'll have to support the other build systems.
However my hope is that I can make this thing so simple and intuitive that
new projects would prefer it.
I haven't spent much time on it yet so there is a way to go still.

>
> Also, only dmd support?
>
At the moment yes. But it will definitely support others.
Probable environment variables are:
DARCH = amd64 # 386|amd64|arm
DCC = dmd # dmd|gcc|ldc

For make files I'll have to support a specific interaction with them. Probably just make and make install for starters.

> Regards
> --
> Iain Buclaw
>
> *(p < e ? p++ : p) = (c & 0x0f) + '0';


May 18, 2013
On 18 May 2013 21:01, Rory McGuire <rjmcguire@gmail.com> wrote:

> Hi Iain,
>
> On 18 May 2013 12:41, "Iain Buclaw" <ibuclaw@ubuntu.com> wrote:
> >...
> >
> > Rory... so we meet again.  :)
>
> Are you from selection.co.uk?
>

Certainly am, however I wouldn't have thought you'd need to ask... I have both the benefit and burden of having a name that no one else in the world has... :-)

> Looks like a nifty tool. However many projects use wildly different build system's - all mine use make,  some people prefer waf or cmake - or may provide configuration files for one of the vagary of package managers out there's for D that are out there roaming around.
> >
> > So do you cater for all these mix match of tools out there, or is your
> focus thise specific to the d tool chain.
>
> If it's to have any success it'll have to support the other build systems.
> However my hope is that I can make this thing so simple and intuitive that
> new projects would prefer it.
> I haven't spent much time on it yet so there is a way to go still.
>

Other D build systems have started out with the same premise, however inertia is always in the way of that ever happening unfortunately...


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';