On Mon, 9 Mar 2020 at 19:59, Bartłomiej Płotka <[email protected]> wrote:
> Unpopular opinion: IMO vendoring can be long term a really bad pattern. > The go.mod, go modules or any other dependency management tool or dep > caching (e.g GOPROXY) was created *exactly* to avoid copying all the > dependencies to your repository. (: > > So I would be happy to remove vendor dir and work towards safe caching > dependencies in some other repository, GOPROXY etc. > > > I'm talking about vendoring in general. We'd want a good reason to > change our build system in this way, and I'm not aware of any reason why > we'd want to change this with our current build system. > > *Fair. Would be nice to enumerate the downsides:* > > * We update deps mostly when adding some feature etc. This means > usually us being lazy and doing feature code + committing thousands of > files. Fun to review. Splitting by commit does not really help. Rarely we > review like this and still it's super noisy, it's easy to miss a meaningful > change in our codebase hidden among 300k lines of codes. ): > * Repo size dramatically larger. Cloning etc operations e.g. CI checkout. > * Git stats totally malformed (lines changed). > * We host in our repo **not our code**. > > > Having it locally is handy for debugging, and it means we at least have > a copy and a clear record of what changed when. It also more easily allows > for local development. > > I don't get it. go.mod and go.sum are versioned so those already give the > clear record. For local development `go mod vendor` locally is a one-off > step (local vendor will keep being updated for lifetime of your local > repo), so I don't any problem with this. > Not an easy to debug record though, as you'd have to indirect through at least one other repo to figure out what changed. As I see it the costs are low, so there's no major reason to change things currently. Brian > > I think the main argument for having a vendor folder is to be safe on a > malicious act of dependency actor, which removes or compromises the > dependency. Anyone can replace the code for a given tag anytime really (: > Given that it never happened, not sure if worth pursuing. Wonder why no one > thought about some separate repo solution just for deps then (: > > Bartek > > On Mon, 9 Mar 2020 at 18:19, Sylvain Rabot <[email protected]> wrote: > >> On Mon, 9 Mar 2020 at 16:54, Brian Brazil < >> [email protected]> wrote: >> >>> On Mon, 9 Mar 2020 at 15:41, Julien Pivotto <[email protected]> >>> wrote: >>> >>>> On 09 Mar 15:30, Brian Brazil wrote: >>>> > On Mon, 9 Mar 2020 at 15:26, Julien Pivotto <[email protected]> >>>> wrote: >>>> > >>>> > > Hi there, >>>> > > >>>> > > Sylvain has open a pull request to remove the vendor directory. We >>>> had >>>> > > larger threads before on versioning etc, but I would like to start >>>> a new >>>> > > thread about this particular topic to see if we have a consensus. >>>> > > >>>> > > https://github.com/prometheus/prometheus/pull/6949 >>>> > > >>>> > > One of the blocker I have is that I would like to be 100% sure that >>>> the >>>> > > checks that are run by CNCF on licence compatibility have full >>>> support >>>> > > for this, e.g. they can fetch the modules and scan the licenses. >>>> > > >>>> > >>>> > The question here is that as this is all internal, does this make >>>> sense for >>>> > our build&review processes? >>>> >>>> >>>> Can you clarify the question. Are you speaking about removing vendoring >>>> or license check? >>>> >>> >>> I'm talking about vendoring in general. We'd want a good reason to >>> change our build system in this way, and I'm not aware of any reason why >>> we'd want to change this with our current build system. >>> >> >>> >>>> > I don't recall offhand anyone in -team having issues with our current >>>> state >>>> > (beyond a brief discussion if we still wanted it when we switched to >>>> go-mod >>>> > - we do). >>>> >>>> I am all for keeping vendor but I have not really strong arguments >>>> against removing it. >>>> >>>> I often use it to grep some dependencies sources but I could still run >>>> go mod vendor locally. >>>> >>> >>> Having it locally is handy for debugging, and it means we at least have >>> a copy and a clear record of what changed when. It also more easily allows >>> for local development. >>> >> >> I personally don't have any trouble doing any of that without vendoring. >> >> Also, it's much easier to keep track of what happened to the dependencies >> in the history of the go.mod than in the vendor/ dir. >> >> I admit it can be handy to grep in the vendor/ dir although I personally >> hate it when I'm looking for something and I get submerged by results in >> the vendor/ dir. >> >> >>> -- >>> Brian Brazil >>> www.robustperception.io >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Prometheus Developers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/prometheus-developers/CAHJKeLqvvbvXvfMaDJomBM10hs2pLkiY6Q9fyuQZfo537b%2Bm6g%40mail.gmail.com >>> <https://groups.google.com/d/msgid/prometheus-developers/CAHJKeLqvvbvXvfMaDJomBM10hs2pLkiY6Q9fyuQZfo537b%2Bm6g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> Sylvain Rabot <[email protected]> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Prometheus Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/prometheus-developers/CADjtP1Fwqi_rn_27vZRgfUUwUj1QBGQeyPnVnZY8CHimtWcYvQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/prometheus-developers/CADjtP1Fwqi_rn_27vZRgfUUwUj1QBGQeyPnVnZY8CHimtWcYvQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- Brian Brazil www.robustperception.io -- You received this message because you are subscribed to the Google Groups "Prometheus Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/CAHJKeLqciD%2BtwZwcFPYxarHPwjQ2Ehs%2BZKfa30m2s1xWTmk3qg%40mail.gmail.com.

