Code Monkey home page Code Monkey logo

Comments (7)

asymmetric avatar asymmetric commented on May 28, 2024

BTW, I've started working on this on my own branch.

I haven't created a PR because I removed the RSS dependency in my fork, and I'm not sure that's the way to go.

The alternative would be to change every reference to go-pkg-rss and go-pkg-xmlx in bee.

from beehive-vendor.

muesli avatar muesli commented on May 28, 2024

At the time when we started using dep it was actually recommended not to commit the Gopkg.toml and Gopkg.lock files (even though that seems to have changed by now). Also, dep requires a newer Go version than Beehive, so we didn't want to make it a build-time dependency (yet).

Have dependencies in a separate repo, loaded as a submodule

I don't see an issue with using a submodule for vendoring, esp. in the case of Beehive which has tons of dependencies. I really dislike the idea of polluting the main repo with all the vendored sources.

Delete and replace the whole vendor/ dir

I don't think we ever delete or replace the vendor dir. What are you referring to?

You're correct that we need to fix the jteeuwen mess, but since it's still vendored I didn't consider master broken.

I'd suggest committing Gopkg.toml and Gopkg.lock, dropping this repository and the submodule, and adding a dep ensure step to the build process. I'm still opposed to adding all the vendored sources to the main repo, though.

from beehive-vendor.

asymmetric avatar asymmetric commented on May 28, 2024

dep requires a newer Go version than Beehive, so we didn't want to make it a build-time dependency

AFAIK, dep only requires 1.9 if you plan on building it, not using it.

I don't think we ever delete or replace the vendor dir. What are you referring to?

I'm referring to beehive-vendor's README:

  1. Delete the vendor folder

since it's still vendored I didn't consider master broken.

If I follow the steps in the README, delete vendor/ and run dep init, I cannot successfully fetch dependencies, since that package has been removed.

I'd suggest committing Gopkg.toml and Gopkg.lock, dropping this repository and the submodule, and adding a dep ensure step to the build process. I'm still opposed to adding all the vendored sources to the main repo, though.

I agree with you that it's unpleasant, but having been bitten by this in the past, I don't trust dep's dependency resolution algorithm to guarantee reproducible builds. For that reason, I now commit vendor/ with the rest of the repo, while I wait for vgo to be ready :)

from beehive-vendor.

muesli avatar muesli commented on May 28, 2024

Oh, I see! Sorry for the misunderstanding. I thought you still had issues building Beehive itself, which should work fine with go get / git clone checking out the vendor submodule for you automatically.

Updating the beehive-vendor repository currently is a bit problematic indeed, but for what it's worth I've fixed the jteeuwen imports in Beehive itself.

Can't wait for vgo either ;-)

from beehive-vendor.

asymmetric avatar asymmetric commented on May 28, 2024

Are you still open to switching to a Gopkg.toml setup, either with or without committing vendor/ to the main repo, and removing this submodule?

I could open a PR for that.

from beehive-vendor.

muesli avatar muesli commented on May 28, 2024

Are you still open to switching to a Gopkg.toml setup, either with or without committing vendor/ to the main repo, and removing this submodule?

Absolutely, as mentioned I think we could now commit Gopkg.toml to the main repo and drop the vendor repository. I still would prefer not committing vendor to the main repo, but we can change the build process (Makefile) and support dep directly instead.

That would mean a go get would fetch all dependencies and build a beehive from git master (including all its dependencies), while a make would fetch the dependencies with dep first and then builds a more reproducible build.

I could open a PR for that.

Awesome! Looking forward to it!

from beehive-vendor.

asymmetric avatar asymmetric commented on May 28, 2024

Not including vendor/ will make builds slower though, since every time dependencies will have to be fetched. Also, as mentioned previously, I'm not convinced builds are always reproducible with dep, meaning that bug reports could be hard to debug.

Also, dep will have to be downloaded within Travis, so the .travis.yml file will have to be kept in sync when newer dep versions are releasde.

from beehive-vendor.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.