www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Dub, Git, Mercurial, Bazaar

reply Russel Winder via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
Go only uses Git, Mercurial, or Bazaar for dependency handling. Rust
(via Cargo) allows for a central repository, and Git (, and Mercurial
?) repositories. Dub appears only to allow for central repository, or
have I missed it's ability to work with DVCS repositories?

If Dub cannot handle DVCS repositories, it needs to be able to.

The rationale is that people can access dependencies that are available
but not yet, or never will be, in the central repository. The use case
that matters is working with a dependency that is not yet, but
definitely will be in the central repository.

Experience of Rust, and Herd with Ceylon, shows this to be very
valuable to community activity.

--=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
Apr 10
next sibling parent reply drug <drug2004 bk.ru> writes:
11.04.2017 07:59, Russel Winder via Digitalmars-d-learn пишет:
 Go only uses Git, Mercurial, or Bazaar for dependency handling. Rust
 (via Cargo) allows for a central repository, and Git (, and Mercurial
 ?) repositories. Dub appears only to allow for central repository, or
 have I missed it's ability to work with DVCS repositories?

 If Dub cannot handle DVCS repositories, it needs to be able to.

 The rationale is that people can access dependencies that are available
 but not yet, or never will be, in the central repository. The use case
 that matters is working with a dependency that is not yet, but
 definitely will be in the central repository.

 Experience of Rust, and Herd with Ceylon, shows this to be very
 valuable to community activity.
You can use local repository if you want
Apr 10
parent reply Russel Winder via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 2017-04-11 at 09:55 +0300, drug via Digitalmars-d-learn wrote:
 [=E2=80=A6]
 You can use local repository if you want
But that implies something very manual, go and cargo handle all that. --=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
Apr 11
parent reply drug <drug2004 bk.ru> writes:
11.04.2017 14:15, Russel Winder via Digitalmars-d-learn пишет:
 On Tue, 2017-04-11 at 09:55 +0300, drug via Digitalmars-d-learn wrote:
 […]
 You can use local repository if you want
But that implies something very manual, go and cargo handle all that.
How go and cargo know where the local repository is to handle that?
Apr 11
parent reply Russel Winder via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 2017-04-11 at 14:21 +0300, drug via Digitalmars-d-learn wrote:
 11.04.2017 14:15, Russel Winder via Digitalmars-d-learn =D0=BF=D0=B8=D1=
=88=D0=B5=D1=82:
 On Tue, 2017-04-11 at 09:55 +0300, drug via Digitalmars-d-learn
 wrote:
 [=E2=80=A6]
 You can use local repository if you want
=20 But that implies something very manual, go and cargo handle all that. =20
=20 How go and cargo know where the local repository is to handle that?
I fear we may well have started talking at cross purposes. At the risk of doing the wrong thing I'll reset this thread with: Go allows for any Git, Mercurial or Bazaar repository as a dependency. It fetches the source into the workspace and compiles into the workspace. The go language uses URIs to specify the import so the DVCS nature is up front =E2=80=93 and leads to lots of vendoring problems. There= is only the Go distribution and DVCS repositories. Cargo fetches source from the central crate repository or from a DVCS repository depending on the contents of the Cargo.toml file. The crate names are the only thing the application source code knows about. There is a central repository and DVCS repositories. Dub cannot get from a DVCS repository but has a sequence of repositories it can reach. It is feasible that these local Dub repositories could have been got by DVCS, but this is a manual thing not something Dub handles, unlike Go and Cargo. I feel that Dub should behave more like Cargo. =20 --=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
Apr 11
parent drug <drug2004 bk.ru> writes:
11.04.2017 15:12, Russel Winder via Digitalmars-d-learn пишет:
 On Tue, 2017-04-11 at 14:21 +0300, drug via Digitalmars-d-learn wrote:
 11.04.2017 14:15, Russel Winder via Digitalmars-d-learn пишет:
 On Tue, 2017-04-11 at 09:55 +0300, drug via Digitalmars-d-learn
 wrote:
 […]
 You can use local repository if you want
But that implies something very manual, go and cargo handle all that.
How go and cargo know where the local repository is to handle that?
I fear we may well have started talking at cross purposes. At the risk of doing the wrong thing I'll reset this thread with: Go allows for any Git, Mercurial or Bazaar repository as a dependency. It fetches the source into the workspace and compiles into the workspace. The go language uses URIs to specify the import so the DVCS nature is up front – and leads to lots of vendoring problems. There is only the Go distribution and DVCS repositories. Cargo fetches source from the central crate repository or from a DVCS repository depending on the contents of the Cargo.toml file. The crate names are the only thing the application source code knows about. There is a central repository and DVCS repositories. Dub cannot get from a DVCS repository but has a sequence of repositories it can reach. It is feasible that these local Dub repositories could have been got by DVCS, but this is a manual thing not something Dub handles, unlike Go and Cargo. I feel that Dub should behave more like Cargo.
I see. Thanks for clarification.
Apr 11
prev sibling next sibling parent rikki cattermole <rikki cattermole.co.nz> writes:
On 11/04/2017 5:59 AM, Russel Winder via Digitalmars-d-learn wrote:
 Go only uses Git, Mercurial, or Bazaar for dependency handling. Rust
 (via Cargo) allows for a central repository, and Git (, and Mercurial
 ?) repositories. Dub appears only to allow for central repository, or
 have I missed it's ability to work with DVCS repositories?

 If Dub cannot handle DVCS repositories, it needs to be able to.

 The rationale is that people can access dependencies that are available
 but not yet, or never will be, in the central repository. The use case
 that matters is working with a dependency that is not yet, but
 definitely will be in the central repository.

 Experience of Rust, and Herd with Ceylon, shows this to be very
 valuable to community activity.
FYI, if we wanted a user configurable interfacing to any source of projects we would need some complicated "scripting" to allow for it. E.g. I have a little bit of code that can help with this[0]. I'm currently designing a UI for it but ugh, it would be a lot of work to get this working for dub. [0] https://gist.github.com/rikkimax/4718740223748256d94b3b1474525012
Apr 11
prev sibling parent Guillaume Piolat <first.last gmail.com> writes:
On Tuesday, 11 April 2017 at 04:59:27 UTC, Russel Winder wrote:
 Go only uses Git, Mercurial, or Bazaar for dependency handling. 
 Rust (via Cargo) allows for a central repository, and Git (, 
 and Mercurial ?) repositories. Dub appears only to allow for 
 central repository, or have I missed it's ability to work with 
 DVCS repositories?
https://github.com/dlang/dub/issues/632
Apr 11