digitalmars.D.learn - what i don't like about dub
- Alain De Vos (13/13) Nov 22 2021 What i don't like about dub is that is does not check which
- bauss (9/23) Nov 22 2021 Well, it's not always possible to check such things without heavy
- Tejas (5/16) Nov 23 2021 Doesn't dub cache stuff that it downloads? If, however, the user
- bauss (3/22) Nov 23 2021 Yes, dub caches everything it uses. Honestly I'd never want dub
- Imperatorn (3/17) Nov 23 2021 How do you propose dub would do that? Check in path? What if it
- Adam D Ruppe (2/3) Nov 23 2021 By asking the system package manager.
- Imperatorn (2/5) Nov 23 2021 Well yeah, but how without doing a lot of work
- =?ISO-8859-1?Q?Lu=EDs?= Ferreira (10/17) Nov 23 2021 If I iterpret system package manager as distribution-specific, relying
- Imperatorn (2/18) Nov 23 2021 Yeah, and also just on some platforms
- =?ISO-8859-1?Q?Lu=EDs?= Ferreira (8/28) Nov 23 2021 Ideally we should cover the platforms that have this mechanisms
- Steven Schveighoffer (17/29) Nov 23 2021 If I understand correctly, you have a library that is already installed
- =?ISO-8859-1?Q?Lu=EDs?= Ferreira (23/37) Nov 23 2021 I can totally understand your point on this. I think dub lacks a lot of
What i don't like about dub is that is does not check which software is installed on the host. Currentlu tck86 is installed on the host including header files & shared libraries. But dub says let me just download my own personal version and i will compile it in your home directory /home/myuser/.dub There is something inherently wrong in doing so. Note other package managers of different languages do the same thing. dub should really check if something should really be downloaded. Otherwise you end up in a library hell, in Gates words known as dll hell.
Nov 22 2021
On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:What i don't like about dub is that is does not check which software is installed on the host. Currentlu tck86 is installed on the host including header files & shared libraries. But dub says let me just download my own personal version and i will compile it in your home directory /home/myuser/.dub There is something inherently wrong in doing so. Note other package managers of different languages do the same thing. dub should really check if something should really be downloaded. Otherwise you end up in a library hell, in Gates words known as dll hell.Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders. The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.
Nov 22 2021
On Tuesday, 23 November 2021 at 07:06:17 UTC, bauss wrote:On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:Doesn't dub cache stuff that it downloads? If, however, the user is asking it to search the __entirety__ of their storage device(s) to check for some arbitrary folder where the package exists... Yeah that's a very though ask[...]Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders. The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.
Nov 23 2021
On Tuesday, 23 November 2021 at 10:19:29 UTC, Tejas wrote:On Tuesday, 23 November 2021 at 07:06:17 UTC, bauss wrote:Yes, dub caches everything it uses. Honestly I'd never want dub to search my device for files that might exist that it might need.On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:Doesn't dub cache stuff that it downloads? If, however, the user is asking it to search the __entirety__ of their storage device(s) to check for some arbitrary folder where the package exists... Yeah that's a very though ask[...]Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders. The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.
Nov 23 2021
On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:What i don't like about dub is that is does not check which software is installed on the host. Currentlu tck86 is installed on the host including header files & shared libraries. But dub says let me just download my own personal version and i will compile it in your home directory /home/myuser/.dub There is something inherently wrong in doing so. Note other package managers of different languages do the same thing. dub should really check if something should really be downloaded. Otherwise you end up in a library hell, in Gates words known as dll hell.How do you propose dub would do that? Check in path? What if it exists but is not exactly the same version? 🤔
Nov 23 2021
On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:How do you propose dub would do thatBy asking the system package manager.
Nov 23 2021
On Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe wrote:On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:Well yeah, but how without doing a lot of workHow do you propose dub would do thatBy asking the system package manager.
Nov 23 2021
On Tue, 2021-11-23 at 17:36 +0000, Imperatorn via Digitalmars-d-learn wrote:On Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe wrote:If I iterpret system package manager as distribution-specific, relying on system package manager is not the way. There is tools like pkg- config or pkgconf that provides mechanisms to manage dependencies and its required configurations to link/compile the library with the dependent software. --=20 Sincerely, Lu=C3=ADs Ferreira lsferreira.netOn Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:=20 Well yeah, but how without doing a lot of workHow do you propose dub would do that=20 By asking the system package manager.
Nov 23 2021
On Tuesday, 23 November 2021 at 18:00:16 UTC, LuÃs Ferreira wrote:On Tue, 2021-11-23 at 17:36 +0000, Imperatorn via Digitalmars-d-learn wrote:Yeah, and also just on some platformsOn Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe wrote:If I iterpret system package manager as distribution-specific, relying on system package manager is not the way. There is tools like pkg- config or pkgconf that provides mechanisms to manage dependencies and its required configurations to link/compile the library with the dependent software.On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:Well yeah, but how without doing a lot of workHow do you propose dub would do thatBy asking the system package manager.
Nov 23 2021
On Tue, 2021-11-23 at 21:00 +0000, Imperatorn via Digitalmars-d-learn wrote:On Tuesday, 23 November 2021 at 18:00:16 UTC, Lu=C3=ADs Ferreira wrote:Ideally we should cover the platforms that have this mechanisms standardized and also have something similar to e.g. Python packaging, which have a list of paths like $PATH to look for packages in order. --=20 Sincerely, Lu=C3=ADs Ferreira lsferreira.netOn Tue, 2021-11-23 at 17:36 +0000, Imperatorn via=20 Digitalmars-d-learn wrote:=20 Yeah, and also just on some platformsOn Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe=20 wrote:=20 If I iterpret system package manager as distribution-specific,=20 relying on system package manager is not the way. There is=20 tools like pkg- config or pkgconf that provides mechanisms to=20 manage dependencies and its required configurations to=20 link/compile the library with the dependent software.On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn=20 wrote:=20 Well yeah, but how without doing a lot of workHow do you propose dub would do that=20 By asking the system package manager.
Nov 23 2021
On 11/22/21 8:19 PM, Alain De Vos wrote:What i don't like about dub is that is does not check which software is installed on the host. Currentlu tck86 is installed on the host including header files & shared libraries. But dub says let me just download my own personal version and i will compile it in your home directory /home/myuser/.dub There is something inherently wrong in doing so. Note other package managers of different languages do the same thing. dub should really check if something should really be downloaded. Otherwise you end up in a library hell, in Gates words known as dll hell.If I understand correctly, you have a library that is already installed on your system (is it tcl86? I couldn't find a tck86), and you want to use it's headers and library file? Yet, the dub package you are depending on is downloading its own copy? 1. Are the installed headers D headers? D can't currently reasonably use C headers. I don't know of D bindings that are installed by OS package managers. 2. Is the package maybe downloading a binary library to avoid having to ask users to install their own copy? This is something you need to bring up to the package developer, it's not a dub feature. Also, if there are differences between the C bindings of the version you have installed and the version the package is expecting, you are in for some trouble, so that may be a valid reason to include the binary. Since this is a package issue, and not a dub issue, I'd recommend posting the package you are using, and maybe contact its author. -Steve
Nov 23 2021
On Tue, 2021-11-23 at 01:19 +0000, Alain De Vos via Digitalmars-d-learn wrote:What i don't like about dub is that is does not check which=20 software is installed on the host. Currentlu tck86 is installed on the host including header files &=20 shared libraries. But dub says let me just download my own personal version and i=20 will compile it in your home directory /home/myuser/.dub There is something inherently wrong in doing so. =20 Note other package managers of different languages do the same=20 thing. dub should really check if something should really be downloaded. Otherwise you end up in a library hell, in Gates words known as=20 dll hell.I can totally understand your point on this. I think dub lacks a lot of important features and behave wrongly in a lot of different ways: 1) it should search for dependencies instead of downloading and compiling them. 2) it should have/use a standard user and system path or pkg-config to check for dependencies 3) it should use XDG base directory paths to store cache, config and data files. 4) if the user prefers to download and compile the dependencies, it should provide a mechanism to isolate the environment 5) it should use a correct mechanism to do incremental compilation instead of compiling everything in one compiler invocation by default 6) it should be able to install packages correctly with pkg-config or other similar mechanisms, providing a correct way for the packagers to manage dependencies externally I have some strong opinions on this. These are some real problems of dub that I see as a blocker. Doing packaging right is the cornerstone of a growing and healthy ecosystem. --=20 Sincerely, Lu=C3=ADs Ferreira lsferreira.net
Nov 23 2021