I love vendoring. I will vote for vendoring. I think some thing like this would 
be cool:

It would be cool if nimble install X just installed stuff in the current 
folder's 'lib/pkgs/deps' directory and updated/created .nimble to reflect the 
installed dependancies and their versions.

Its magical because you just do the thing that you would do anyways but all of 
the deps and .nimble and stuff is just handled for you.

Its magical because .nimbile file would contain the exact version you 
installed. You can choose to just git ignore the 'lib/pkgs/deps' folder and 
commit your '.nimble' file.

It would be magical because your can edit, fix, or just add echos the stuff in 
'lib/pkgs/deps' and it would not impact other projects.

You would use nimble install -g or --global to get them to install globally for 
the user, the thing it does now.

If you just run nimble install without params it would look for .nimble file 
and install everything for that and recreate the 'lib/pkgs/deps' folder.

I already run into nim's version of "dll hell issue" where one project I have 
uses one library version and another project I have uses the other (I think it 
was this one: 
[https://github.com/ephja/nim-glfw](https://github.com/ephja/nim-glfw)) and it 
was really confusing.

Vendoring ftw!

Reply via email to