Hello Matt,

Having dependencies inside the project is the easiest way to make 
reproducible builds (without having infrastructure for mirrors) and makes 
your organization more independent from third parties. Moreover, tools 
based on dependencies rules (like maven, npm, etc) could make your project 
ending up with unexpected versions. How many libraries are in a regular 
project, 10 maybe 20? managing versions by one by one and testing the side 
effects of upgrading a library is affordable. Also, having all the code in 
the same place makes the project reproducible for several years even if the 
original repositories/vcs are not longer available or vcs has been 
compromised with malicious code.

Also, golla works with any git repos because destination folder is 
indicated explicitly.

Each tool has its pros and cons, this one fits what I expect from software 
configuration.

I hope having answered your question :)

Chrs,
Fulldump





El martes, 15 de mayo de 2018, 15:56:23 (UTC+2), matthe...@gmail.com 
escribió:
>
> Hello,
>
> I haven’t seen this pattern:
>
> src/vendor/github.com/fulldump/goconfig
>
> I’ve put vendored dependencies in the project:
>
> src/github.com/my/project/vendor/github.com/fulldump/goconfig
>
> Why are you doing it this way?
>
> Have you tried vgo? https://github.com/golang/vgo
>
> Matt
>
> On Sunday, May 13, 2018 at 3:12:59 PM UTC-5, Gerardo Oscar JT wrote:
>>
>> Hi gophers!
>>
>> Golang do not have a canonical way to download dependencies. Glide is the 
>> last one I have been using and it is like a drunk elephant in my laptop.
>>
>> This weekend I have managed to summon the force to work on a silly script 
>> that read a list of git repos, and do the clones, one by one.
>>
>> For the moment it supports:
>>
>>    - Clone a specific git repo inside a specific directory (removing the 
>>    .git folder)
>>    - Pin a specific tag/branch/commit
>>    - Select a specific file or directory inside a repo to avoid cloning 
>>    all the repo
>>    - Comments prefixed with # are suported
>>
>> The project is called *golla*, here is the repo: 
>> https://github.com/fulldump/golla 
>>
>> All dependencies should be specified in a file called golla like this:
>>
>> # This is a golla file!
>> # First, we will clone a repo to a dir:
>> git@ github.com:fulldump/goconfig.git* ->* src/vendor/
>> github.com/fulldump/goconfig
>>
>> # Here we will clone a specific version:
>> git@ github.com:fulldump/golax.git*#**v0.6.1* -> src/vendor/
>> github.com/fulldump/golax
>>
>> # Only a file is cloned here (for example, golla script itself):
>> git@ github.com:fulldump/golla.git*>golla.go* -> golla.go
>>
>>
>> I hope this script could be helpful for anyone else.
>>
>> Happy to learn from your feedback,
>> Fulldump
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to