www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - dget - getting code from github

reply Walter Bright <newshound2 digitalmars.com> writes:
Currently, getting D code from github is a multistep process, that isn't always 
obvious. I propose the creation of a dget program, which will:

     dget https://github.com/D-Programming-Deimos/libevent

download the libevent code and install it in a subdirectory named libevent. Of 
course, the url could also be:

     dget github.com/D-Programming-Deimos/libevent

since https is assumed, or:

     dget D-Programming-Deimos/libevent

since github is assumed. And since Deimos is a known library,

     dget libevent

can also be hardwired into dget.

Anyone want to implement such? It ought to be fairly straightforward, and will 
be a nice timesaver for a lot of people.
May 23 2012
next sibling parent reply =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 24-05-2012 01:14, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, that isn't
 always obvious. I propose the creation of a dget program, which will:

 dget https://github.com/D-Programming-Deimos/libevent

 download the libevent code and install it in a subdirectory named
 libevent. Of course, the url could also be:

 dget github.com/D-Programming-Deimos/libevent

 since https is assumed, or:

 dget D-Programming-Deimos/libevent

 since github is assumed. And since Deimos is a known library,

 dget libevent

 can also be hardwired into dget.

 Anyone want to implement such? It ought to be fairly straightforward,
 and will be a nice timesaver for a lot of people.

Maybe this should be part of whatever package manager the community ends up using. I think several people have been / are working on such programs. BTW, Git submodules are ideal for this sort of thing: http://git-scm.com/book/en/Git-Tools-Submodules -- Alex Rřnne Petersen alex lycus.org http://lycus.org
May 23 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 02:23, Alex Rřnne Petersen wrote:

 Maybe this should be part of whatever package manager the community ends
 up using. I think several people have been / are working on such programs.

I still am, although slowly: https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D https://github.com/jacob-carlborg/orbit -- /Jacob Carlborg
May 24 2012
prev sibling next sibling parent reply "David Nadlinger" <see klickverbot.at> writes:
On Wednesday, 23 May 2012 at 23:14:19 UTC, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, 
 that isn't always obvious. I propose the creation of a dget 
 program, which will:

     dget https://github.com/D-Programming-Deimos/libevent

 download the libevent code and install it in a subdirectory 
 named libevent.

What are you referring to as installation? Just retrieving the source into a »libevent« subdirectory is hardly a multi-step process: git clone https://github.com/D-Programming-Deimos/libevent David
May 23 2012
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/23/2012 9:39 PM, David Nadlinger wrote:
 On Wednesday, 23 May 2012 at 23:14:19 UTC, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, that isn't
 always obvious. I propose the creation of a dget program, which will:

 dget https://github.com/D-Programming-Deimos/libevent

 download the libevent code and install it in a subdirectory named libevent.

What are you referring to as installation? Just retrieving the source into a »libevent« subdirectory is hardly a multi-step process: git clone https://github.com/D-Programming-Deimos/libevent

Pretty much that. However, this requires that the user install git first. dget is all about reducing friction. dget can also be extended to get things from other repositories without changing the user interface, and it can have a builtin mapping of library=>url for popular packages. For an analogy, if I wanted to check the documentation for std.algorithm, I could of course fire up the browser and type: http://dlang.org/phobos/std_algorithm.html in the address bar. Or, I could write: dman std.algorithm and I'm there. And I can type: dman link and the web page for http://www.digitalmars.com/ctg/optlink.html opens up. It's all about reducing the friction. I am often surprised at how simple things like this turn out to be tipping points for users (and myself).
May 23 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 07:42, Walter Bright wrote:

 Pretty much that. However, this requires that the user install git
 first. dget is all about reducing friction. dget can also be extended to
 get things from other repositories without changing the user interface,
 and it can have a builtin mapping of library=>url for popular packages.

This is the job for a package manager, not some specialized wget. -- /Jacob Carlborg
May 23 2012
prev sibling next sibling parent reply Ary Manzana <ary esperanto.org.ar> writes:
On 5/24/12 6:14 AM, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, that isn't
 always obvious. I propose the creation of a dget program, which will:

 dget https://github.com/D-Programming-Deimos/libevent

 download the libevent code and install it in a subdirectory named
 libevent. Of course, the url could also be:

 dget github.com/D-Programming-Deimos/libevent

 since https is assumed, or:

 dget D-Programming-Deimos/libevent

 since github is assumed. And since Deimos is a known library,

 dget libevent

 can also be hardwired into dget.

 Anyone want to implement such? It ought to be fairly straightforward,
 and will be a nice timesaver for a lot of people.

I think it's better to focus on a package manager that will make this 'dget' program obsolete.
May 23 2012
next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Thursday, May 24, 2012 12:45:57 Ary Manzana wrote:
 I think it's better to focus on a package manager that will make this
 'dget' program obsolete.

Though dget would be a pretty good name for a D package manager. - Jonathan M Davis
May 23 2012
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/23/2012 10:51 PM, Jonathan M Davis wrote:
 On Thursday, May 24, 2012 12:45:57 Ary Manzana wrote:
 I think it's better to focus on a package manager that will make this
 'dget' program obsolete.

Though dget would be a pretty good name for a D package manager.

And dget is a one or two day project, and doesn't require much of any design.
May 23 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 07:57, Walter Bright wrote:

 And dget is a one or two day project, and doesn't require much of any
 design.

Then suddenly you want to be able to easily download dependencies and install all code in a central location on disk, i.e. a package manager. But since the original tool "doesn't require much of any design" everything turns out to be a big mess. -- /Jacob Carlborg
May 23 2012
prev sibling next sibling parent =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 24-05-2012 07:51, Jonathan M Davis wrote:
 On Thursday, May 24, 2012 12:45:57 Ary Manzana wrote:
 I think it's better to focus on a package manager that will make this
 'dget' program obsolete.

Though dget would be a pretty good name for a D package manager. - Jonathan M Davis

+1. -- Alex Rønne Petersen alex lycus.org http://lycus.org
May 23 2012
prev sibling next sibling parent reply =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 24-05-2012 11:50, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without official
 package manager support, I curse myself.

On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have package managements systems. A problem is that Windows does not. Experience shows (Maven, Gems, Hackage, ...) that having language specific packaging and platform specific packaging causes strife.

Huh, it does? I've always found those tools ridiculously easy and great to work with. I use easy_install for Python frequently and largely prefer NuGet for .NET development. In the little time I spent with Haskell, I also found Cabal very useful.
 Scala has made the bold move to go with platform packaging and working
 with the platform teams so as to avoid the hassles seen by Java, Ruby,
 Python, Haskell. Maybe this will lead to the first language specific
 packaging that works in sympathy with the platform packaging.

 The uniform way of getting software distributed across operating
 systems is a great feature and it is a joy to integrate with CI
 systems.

 I even forgive Maven for all its quirks.

I like the Maven repository, I think Maven the build framework should be banned, along with Ant. But then I would given my relationship with Gradle and SCons (and Gant and Waf).

-- Alex Rønne Petersen alex lycus.org http://lycus.org
May 24 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 12:02, Alex Rønne Petersen wrote:

 Huh, it does? I've always found those tools ridiculously easy and great
 to work with.

I've also found those very easy to use. -- /Jacob Carlborg
May 24 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-05-24 11:50, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without official
 package manager support, I curse myself.

On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have package managements systems. A problem is that Windows does not.

Mac OS X doesn't have one out of the box, App Store doesn't count. -- /Jacob Carlborg
May 24 2012
next sibling parent Ary Manzana <ary esperanto.org.ar> writes:
On 5/24/12 6:08 PM, Kevin Cox wrote:
 On May 24, 2012 7:03 AM, "Jacob Carlborg" <doob me.com
 <mailto:doob me.com>> wrote:
  >
  > Mac OS X doesn't have one out of the box, App Store doesn't count.
  >
  > --
  > /Jacob Carlborg

 IIRC there is one that a ton of people use, is it called macports?

That, bust mostly homebrew: https://github.com/mxcl/homebrew (but it's more for developers)
May 24 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 13:08, Kevin Cox wrote:
 On May 24, 2012 7:03 AM, "Jacob Carlborg" <doob me.com
 <mailto:doob me.com>> wrote:
  >
  > Mac OS X doesn't have one out of the box, App Store doesn't count.
  >
  > --
  > /Jacob Carlborg

 IIRC there is one that a ton of people use, is it called macports?

Yes, but there are also package managers for Windows. -- /Jacob Carlborg
May 24 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-05-24 13:30, Regan Heath wrote:

 Odd.. a language specific package support would mean /one/ set of
 steps/documentation/etc for telling new users how to do it, instead of a
 vague "check your platform documentation" or similar. Plus, having
 language specific tools means complete control of how it works, and what
 it does, etc.. rather than having to work around someone else's design
 decisions.

Exactly. -- /Jacob Carlborg
May 24 2012
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Thursday, 24 May 2012 at 05:51:38 UTC, Jonathan M Davis wrote:
 On Thursday, May 24, 2012 12:45:57 Ary Manzana wrote:
 I think it's better to focus on a package manager that will 
 make this
 'dget' program obsolete.

Though dget would be a pretty good name for a D package manager. - Jonathan M Davis

Agreed. Every time I need to do something in an language without official package manager support, I curse myself. The uniform way of getting software distributed across operating systems is a great feature and it is a joy to integrate with CI systems. I even forgive Maven for all its quirks. -- Paulo
May 24 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
[...]
 Every time I need to do something in an language without official=20
 package manager support, I curse myself.

On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have package managements systems. A problem is that Windows does not. Experience shows (Maven, Gems, Hackage, ...) that having language specific packaging and platform specific packaging causes strife. Scala has made the bold move to go with platform packaging and working with the platform teams so as to avoid the hassles seen by Java, Ruby, Python, Haskell. Maybe this will lead to the first language specific packaging that works in sympathy with the platform packaging.
 The uniform way of getting software distributed across operating=20
 systems is a great feature and it is a joy to integrate with CI=20
 systems.
=20
 I even forgive Maven for all its quirks.

I like the Maven repository, I think Maven the build framework should be banned, along with Ant. But then I would given my relationship with Gradle and SCons (and Gant and Waf). --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
May 24 2012
prev sibling next sibling parent "Tobias Pankrath" <tobias pankrath.net> writes:
On Thursday, 24 May 2012 at 09:50:33 UTC, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without 
 official package manager support, I curse myself.

On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have package managements systems. A problem is that Windows does not. Experience shows (Maven, Gems, Hackage, ...) that having language specific packaging and platform specific packaging causes strife.

Platform specific package management is not enough for development use. It only works, if you need the version the platform provides. And everyone must have the same platform to have the same version.
May 24 2012
prev sibling next sibling parent Kevin Cox <kevincox.ca gmail.com> writes:
--20cf303b42efe5b02404c0c605df
Content-Type: text/plain; charset=UTF-8

On May 24, 2012 6:43 AM, "Tobias Pankrath" <tobias pankrath.net> wrote:
 On Thursday, 24 May 2012 at 09:50:33 UTC, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without official



 On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have
 package managements systems. A problem is that Windows does not.

 Experience shows (Maven, Gems, Hackage, ...) that having language
 specific packaging and platform specific packaging causes strife.

Platform specific package management is not enough for development use.

must have the same platform to have the same version.

Yes and no, for actually using programs that use the language the system package manager is far superior because when you install an app it can also install the required packages in one go. (As opposed to having to go to the d package manager and get the right libs. However you bring up the point of development. If you look at the arch build system it has what you want. You can write descriptions on how to download and build a package and then is it just as easy to install as a dget would be, however thee advantage is that you can still depend on these packages. Also, for switching versions all you have to do is change on variable. I'm sure there are things like this for other systems but I use arch and I see a solution to your problem. --20cf303b42efe5b02404c0c605df Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <p><br> On May 24, 2012 6:43 AM, &quot;Tobias Pankrath&quot; &lt;<a href=3D"mailto:= tobias pankrath.net">tobias pankrath.net</a>&gt; wrote:<br> &gt;<br> &gt; On Thursday, 24 May 2012 at 09:50:33 UTC, Russel Winder wrote:<br> &gt;&gt;<br> &gt;&gt; On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:<br> &gt;&gt; [...]<br> &gt;&gt;&gt;<br> &gt;&gt;&gt; Every time I need to do something in an language without offic= ial package manager support, I curse myself.<br> &gt;&gt;<br> &gt;&gt;<br> &gt;&gt; On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already ha= ve<br> &gt;&gt; package managements systems. A problem is that Windows does not.<b= r> &gt;&gt;<br> &gt;&gt; Experience shows (Maven, Gems, Hackage, ...) that having language<= br> &gt;&gt; specific packaging and platform specific packaging causes strife.<= br> &gt;<br> &gt;<br> &gt;<br> &gt; Platform specific package management is not enough for development use= . It only works, if you need the version the platform provides. And everyon= e must have the same platform to have the same version.<br> &gt;</p> <p>Yes and no, for actually using programs that use the language the system= package manager is far superior because when you install an app it can als= o install the required packages in one go. (As opposed to having to go to t= he d package manager and get the right libs.=C2=A0 However you bring up the= point of development.=C2=A0 If you look at the arch build system it has wh= at you want.=C2=A0 You can write descriptions on how to download and build = a package and then is it just as easy to install as a dget would be, howeve= r thee advantage is that you can still depend on these packages.=C2=A0 Also= , for switching versions all you have to do is change on variable.=C2=A0 I&= #39;m sure there are things like this for other systems but I use arch and = I see a solution to your problem.<br> </p> --20cf303b42efe5b02404c0c605df--
May 24 2012
prev sibling next sibling parent "Tobias Pankrath" <tobias pankrath.net> writes:
 Also, for
 switching versions all you have to do is change on variable.  
 I'm sure
 there are things like this for other systems but I use arch and 
 I see a
 solution to your problem.

I'm using arch, too. The problem are the people, who don't :-) In the end, it should be possible to "just get & compile" a project with a package manager, regardless of which platform you use and which versions your platform package manager ships. If I have a good workaround in Arch but my colleague needs a different in Debian, it's already a failure.
May 24 2012
prev sibling next sibling parent Kevin Cox <kevincox.ca gmail.com> writes:
--20cf3074b3ec5a5f1604c0c646d1
Content-Type: text/plain; charset=UTF-8

On May 24, 2012 7:03 AM, "Jacob Carlborg" <doob me.com> wrote:
 Mac OS X doesn't have one out of the box, App Store doesn't count.

 --
 /Jacob Carlborg

IIRC there is one that a ton of people use, is it called macports? --20cf3074b3ec5a5f1604c0c646d1 Content-Type: text/html; charset=UTF-8 <p><br> On May 24, 2012 7:03 AM, &quot;Jacob Carlborg&quot; &lt;<a href="mailto:doob me.com">doob me.com</a>&gt; wrote:<br> &gt;<br> &gt; Mac OS X doesn&#39;t have one out of the box, App Store doesn&#39;t count.<br> &gt;<br> &gt; -- <br> &gt; /Jacob Carlborg</p> <p>IIRC there is one that a ton of people use, is it called macports?</p> --20cf3074b3ec5a5f1604c0c646d1--
May 24 2012
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Thursday, 24 May 2012 at 10:50:57 UTC, Kevin Cox wrote:
 On May 24, 2012 6:43 AM, "Tobias Pankrath" 
 <tobias pankrath.net> wrote:
 On Thursday, 24 May 2012 at 09:50:33 UTC, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without 
 official



 On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. 
 already have
 package managements systems. A problem is that Windows does 
 not.

 Experience shows (Maven, Gems, Hackage, ...) that having 
 language
 specific packaging and platform specific packaging causes 
 strife.

Platform specific package management is not enough for development use.

And everyone must have the same platform to have the same version.

Yes and no, for actually using programs that use the language the system package manager is far superior because when you install an app it can also install the required packages in one go. (As opposed to having to go to the d package manager and get the right libs. However you bring up the point of development. If you look at the arch build system it has what you want. You can write descriptions on how to download and build a package and then is it just as easy to install as a dget would be, however thee advantage is that you can still depend on these packages. Also, for switching versions all you have to do is change on variable. I'm sure there are things like this for other systems but I use arch and I see a solution to your problem.

When I worked at CERN, our team was making use of CMT for C++. This is a Python+CVS build tool that is nicely integrated with source code repository and also takes care of dependencies and versioning. I never heard about it outside CERN. Some information in case you want to read about it, http://www.cmtsite.org/CMTDoc.html http://lhcb-comp.web.cern.ch/lhcb-comp/support/CMT/cmt.htm -- Paulo
May 24 2012
prev sibling next sibling parent Kevin Cox <kevincox.ca gmail.com> writes:
--20cf3074b3ec73fa0404c0c65a18
Content-Type: text/plain; charset=UTF-8

On May 24, 2012 7:08 AM, "Tobias Pankrath" <tobias pankrath.net> wrote:
 I'm using arch, too. The problem are the people, who don't :-)

I know what you are saying but package managers were beautiful things that made it stupidly simple to install software. But we are slowly going back to windoze with "install this, run this command, you may need to configure your repositories, sorry dependency not installed" I understand that it is more work to have multiple solutions but I think it is worth it. And IIRC the abs is portable so worst case is go and install it. (Easy for me on arch to say). --20cf3074b3ec73fa0404c0c65a18 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <p><br> On May 24, 2012 7:08 AM, &quot;Tobias Pankrath&quot; &lt;<a href=3D"mailto:= tobias pankrath.net">tobias pankrath.net</a>&gt; wrote:<br> &gt;<br> &gt; I&#39;m using arch, too. The problem are the people, who don&#39;t :-)= </p> <p>I know what you are saying but package managers were beautiful things th= at made it stupidly simple to install software.=C2=A0 But we are slowly goi= ng back to windoze with &quot;install this, run this command, you may need = to configure your repositories, sorry dependency not installed&quot;</p> <p>I understand that it is more work to have multiple solutions but I think= it is worth it.</p> <p>And IIRC the abs is portable so worst case is go and install it.=C2=A0 (= Easy for me on arch to say).</p> --20cf3074b3ec73fa0404c0c65a18--
May 24 2012
prev sibling parent "Regan Heath" <regan netmail.co.nz> writes:
On Thu, 24 May 2012 10:50:15 +0100, Russel Winder <russel winder.org.uk>  
wrote:

 On Thu, 2012-05-24 at 10:34 +0200, Paulo Pinto wrote:
 [...]
 Every time I need to do something in an language without official
 package manager support, I curse myself.

On the other hand Debian, Fedora, FreeBSD, MacOSX, etc. already have package managements systems. A problem is that Windows does not. Experience shows (Maven, Gems, Hackage, ...) that having language specific packaging and platform specific packaging causes strife.

Odd.. a language specific package support would mean /one/ set of steps/documentation/etc for telling new users how to do it, instead of a vague "check your platform documentation" or similar. Plus, having language specific tools means complete control of how it works, and what it does, etc.. rather than having to work around someone else's design decisions. R -- Using Opera's revolutionary email client: http://www.opera.com/mail/
May 24 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2012-05-23 at 16:14 -0700, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, that isn't =

 obvious. I propose the creation of a dget program, which will:

Sounds like you are asking for the same thing that the go program provides for Go. Except that go is also the package manager and build manager. It enforces convention over configuration and thereby becomes simple -- as long as package providers follow the rules, but then that is the whole point of convention over configuration. The go command understands GitHub, BitBucket and Launchpad so fails to discriminate over choice of DVCS. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
May 24 2012
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Thursday, 24 May 2012 at 08:13:29 UTC, Russel Winder wrote:
 On Wed, 2012-05-23 at 16:14 -0700, Walter Bright wrote:
 Currently, getting D code from github is a multistep process, 
 that isn't always obvious. I propose the creation of a dget 
 program, which will:

Sounds like you are asking for the same thing that the go program provides for Go. Except that go is also the package manager and build manager. It enforces convention over configuration and thereby becomes simple -- as long as package providers follow the rules, but then that is the whole point of convention over configuration. The go command understands GitHub, BitBucket and Launchpad so fails to discriminate over choice of DVCS.

"Go get" still has an issue with version dependencies, as it gets latest.
May 24 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2012-05-24 at 10:29 +0200, Paulo Pinto wrote:
[...]
=20
 "Go get" still has an issue with version dependencies, as it
 gets latest.

I wasn't trying to say it was perfect, apologies if that impression came across. I was trying to say that there was a model of source code organization for core+packages that as been tried and appears to be successful to an extent better than anything seen in C, C++, Fortran, etc. Python, Ruby, Java (and hence Groovy and to a lesser extent Scala) are going a slightly different route, but are definitely ahead as well. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
May 24 2012
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Thursday, 24 May 2012 at 09:53:38 UTC, Russel Winder wrote:
 On Thu, 2012-05-24 at 10:29 +0200, Paulo Pinto wrote:
 [...]
 
 "Go get" still has an issue with version dependencies, as it
 gets latest.

I wasn't trying to say it was perfect, apologies if that impression came across. I was trying to say that there was a model of source code organization for core+packages that as been tried and appears to be successful to an extent better than anything seen in C, C++, Fortran, etc. Python, Ruby, Java (and hence Groovy and to a lesser extent Scala) are going a slightly different route, but are definitely ahead as well.

Sure, I am also confident that this issue will eventually get fixed. Get latest only works if you have full control over all libraries, latest when Go gets more industry coverage, where this control is not so easy as in open source world, this problem will be solved. -- Paulo
May 24 2012
prev sibling next sibling parent reply "David Nadlinger" <see klickverbot.at> writes:
On Wednesday, 23 May 2012 at 23:14:19 UTC, Walter Bright wrote:
 Anyone want to implement such? It ought to be fairly 
 straightforward, and will be a nice timesaver for a lot of 
 people.

Oh, and maybe I'm a bit to pessimistic on that, but a project that takes »only one or two days« and »doesn't require much of any design« probably won't offer much functionality over »git/hg/<xyz> clone <url>«, and thus is likely to rather be a needless complication than much of a timesaver. With dget in place, you either still need to go to the respective hosting site to find out that the project even exists, or we need a central list of available libraries, in which case we are already halfway towards a package manager. Now add versioning, a very ubiquitous concern, into the mix… By the way, if you really just need to fetch the latest source tree for a GitHub project, you don't even need a local Git client. Just click the big »ZIP« button (taking you e.g. to https://github.com/D-Programming-Language/phobos/zipball/master) – works for branches and tags as well. David
May 24 2012
parent Walter Bright <newshound2 digitalmars.com> writes:
On 5/24/2012 7:43 AM, David Nadlinger wrote:
 By the way, if you really just need to fetch the latest source tree for a
GitHub
 project, you don't even need a local Git client. Just click the big »ZIP«
button
 (taking you e.g. to
 https://github.com/D-Programming-Language/phobos/zipball/master) – works for
 branches and tags as well.

It's still multiple steps.
May 24 2012
prev sibling next sibling parent reply "Martin Nowak" <dawg dawgfoto.de> writes:
 Anyone want to implement such? It ought to be fairly straightforward,  
 and will be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent
May 25 2012
next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 5/25/2012 1:32 AM, Martin Nowak wrote:
 Anyone want to implement such? It ought to be fairly straightforward, and will
 be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent

Holy Mackerel! I'm going to give it a try.
May 25 2012
prev sibling next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 5/25/2012 1:32 AM, Martin Nowak wrote:
 Anyone want to implement such? It ought to be fairly straightforward, and will
 be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent

How about slapping a Boost license on it and creating a pull request for: https://github.com/D-Programming-Language/tools ?
May 25 2012
parent Walter Bright <newshound2 digitalmars.com> writes:
On 5/26/2012 3:04 PM, Martin Nowak wrote:
 On Sat, 26 May 2012 03:35:13 +0200, Walter Bright <newshound2 digitalmars.com>
 wrote:

 On 5/25/2012 1:32 AM, Martin Nowak wrote:
 Anyone want to implement such? It ought to be fairly straightforward, and will
 be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent

How about slapping a Boost license on it and creating a pull request for: https://github.com/D-Programming-Language/tools ?

I will do that after some cleanup.

Great!
May 26 2012
prev sibling next sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
On Sat, 26 May 2012 03:35:13 +0200, Walter Bright  
<newshound2 digitalmars.com> wrote:

 On 5/25/2012 1:32 AM, Martin Nowak wrote:
 Anyone want to implement such? It ought to be fairly straightforward,  
 and will
 be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent

How about slapping a Boost license on it and creating a pull request for: https://github.com/D-Programming-Language/tools ?

I will do that after some cleanup.
May 26 2012
prev sibling next sibling parent "Jonas Drewsen" <jdrewsen nospam.com> writes:
On Saturday, 26 May 2012 at 22:04:34 UTC, Martin Nowak wrote:
 On Sat, 26 May 2012 03:35:13 +0200, Walter Bright 
 <newshound2 digitalmars.com> wrote:

 On 5/25/2012 1:32 AM, Martin Nowak wrote:
 Anyone want to implement such? It ought to be fairly 
 straightforward, and will
 be a nice timesaver for a lot of people.

https://gist.github.com/2786276 usage: rdmd dget dsimcha/TempAlloc libevent

How about slapping a Boost license on it and creating a pull request for: https://github.com/D-Programming-Language/tools ?

I will do that after some cleanup.

I saw your comment in the code: // doesn't work because it already timeouts after 2 minutes // return get!(HTTP, ubyte)(); You can actually set timeouts using the get function by providing the HTTP instance as a second parameter to get() e.g.: auto client = HTTP(); client.dataTimeout = dur!"seconds"(100000); auto data = get!(HTTP,ubyte)("www.dlang.org", client); /Jonas
May 27 2012
prev sibling parent "Martin Nowak" <dawg dawgfoto.de> writes:
 You can actually set timeouts using the get function by providing the  
 HTTP instance as a second parameter to get() e.g.:

 auto client = HTTP();
 client.dataTimeout = dur!"seconds"(100000);
 auto data = get!(HTTP,ubyte)("www.dlang.org", client);

 /Jonas

Good to know, thanks. I used the chance to add progress output and gathered the data in an appender rather than doing array cat.
May 29 2012
prev sibling next sibling parent bioinfornatics <bioinfornatics fedoraproject.org> writes:
Le mercredi 23 mai 2012 =C3=A0 16:14 -0700, Walter Bright a =C3=A9crit :
 Currently, getting D code from github is a multistep process, that isn't =

 obvious. I propose the creation of a dget program, which will:
=20
      dget https://github.com/D-Programming-Deimos/libevent
=20
 download the libevent code and install it in a subdirectory named libeven=

 course, the url could also be:
=20
      dget github.com/D-Programming-Deimos/libevent
=20
 since https is assumed, or:
=20
      dget D-Programming-Deimos/libevent
=20
 since github is assumed. And since Deimos is a known library,
=20
      dget libevent
=20
 can also be hardwired into dget.
=20
 Anyone want to implement such? It ought to be fairly straightforward, and=

 be a nice timesaver for a lot of people.

yes it is a feature i wish to add but the repository should be always the same or by a config file understand where is the source code (root of dir in src dir ...), if it is a lib, a desktop application, a web application (which vied, serenity ..), detect dependencies i have start a little project for build common D project (80% of use case) https://github.com/organizations/dbuilder-developers this tool could in more download and build/install easilly if you put at root of the github repo a config file (example of config file supported https://github.com/dbuilder-developers/dbuilder/blob/master/examples/dbuild= er.cfg ) Any help are welcome, this tool goal to be easy to use $ dbuilder get xxx // not implemented $ dbuilder build $ dbuilder install in more from command line you can override value in config file Sorry for my english=20 )
May 26 2012
prev sibling next sibling parent "Zardoz" <luis.panadero gmail.com> writes:
On Saturday, 26 May 2012 at 08:52:07 UTC, bioinfornatics wrote:
 Le mercredi 23 mai 2012 Ă  16:14 -0700, Walter Bright a Ă©crit :
 Currently, getting D code from github is a multistep process, 
 that isn't always obvious. I propose the creation of a dget 
 program, which will:
 
      dget https://github.com/D-Programming-Deimos/libevent
 
 download the libevent code and install it in a subdirectory 
 named libevent. Of course, the url could also be:
 
      dget github.com/D-Programming-Deimos/libevent
 
 since https is assumed, or:
 
      dget D-Programming-Deimos/libevent
 
 since github is assumed. And since Deimos is a known library,
 
      dget libevent
 
 can also be hardwired into dget.
 
 Anyone want to implement such? It ought to be fairly 
 straightforward, and will be a nice timesaver for a lot of 
 people.

yes it is a feature i wish to add but the repository should be always the same or by a config file understand where is the source code (root of dir in src dir ...), if it is a lib, a desktop application, a web application (which vied, serenity ..), detect dependencies i have start a little project for build common D project (80% of use case) https://github.com/organizations/dbuilder-developers this tool could in more download and build/install easilly if you put at root of the github repo a config file (example of config file supported https://github.com/dbuilder-developers/dbuilder/blob/master/e amples/dbuilder.cfg ) Any help are welcome, this tool goal to be easy to use $ dbuilder get xxx // not implemented $ dbuilder build $ dbuilder install in more from command line you can override value in config file Sorry for my english )

I will try it of you can write a documentations for dumbs. What do each variable in the config file? What variables are required or not ? For example what the hell is "job" var ?? Put a working example not a skeleton config file.
May 30 2012
prev sibling parent bioinfornatics <bioinfornatics fedoraproject.org> writes:
Le mercredi 30 mai 2012 =C3=A0 13:04 +0200, Zardoz a =C3=A9crit :
 On Saturday, 26 May 2012 at 08:52:07 UTC, bioinfornatics wrote:
 Le mercredi 23 mai 2012 =C3=A0 16:14 -0700, Walter Bright a =C3=A9crit =


 Currently, getting D code from github is a multistep process,=20
 that isn't always obvious. I propose the creation of a dget=20
 program, which will:
=20
      dget https://github.com/D-Programming-Deimos/libevent
=20
 download the libevent code and install it in a subdirectory=20
 named libevent. Of course, the url could also be:
=20
      dget github.com/D-Programming-Deimos/libevent
=20
 since https is assumed, or:
=20
      dget D-Programming-Deimos/libevent
=20
 since github is assumed. And since Deimos is a known library,
=20
      dget libevent
=20
 can also be hardwired into dget.
=20
 Anyone want to implement such? It ought to be fairly=20
 straightforward, and will be a nice timesaver for a lot of=20
 people.

yes it is a feature i wish to add but the repository should be=20 always the same or by a config file understand where is the source=20 code (root of dir in src dir ...), if it is a lib, a desktop application,=20 a web application (which vied, serenity ..), detect dependencies i have start a little project for build common D project (80%=20 of use case) https://github.com/organizations/dbuilder-developers this tool could in more download and build/install easilly if=20 you put at root of the github repo a config file (example of config file=20 supported https://github.com/dbuilder-developers/dbuilder/blob/master/examples/db=


 )
  Any help are welcome, this tool goal to be easy to use
 $ dbuilder get xxx // not implemented
 $ dbuilder build
 $ dbuilder install

 in more from command line you can override value in config file

 Sorry for my english


 )

I will try it of you can write a documentations for dumbs. What=20 do each variable in the config file? What variables are required=20 or not ? For example what the hell is "job" var ?? Put a working example=20 not a skeleton config file. =20

Right i will do this
Jun 06 2012