fjukstad / walrus

Containerized data analysis pipelines
MIT License
12 stars 2 forks source link

Dependencies are not Properly Listed and it Seems Broken #22

Closed ttbek closed 6 years ago

ttbek commented 6 years ago

As mentioned in another issue, this project requires Go >= 1.7

Also, it requires libgit2

Currently it seems to be broken even with those.

OS: Ubuntu 16.04 Using Go 1.10 installed via their instructions and git 2.7.4 git-lfs 2.4.0 CMake 3.5.1, gcc 5.4.0 (python doesn't actually matter as it is used only in the tests) libgit2 installed from here: https://github.com/libgit2/libgit2 as described: git clone mkdir build && cd build cmake .. cmake --build . cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix cmake --build . --target install

go get github.com/fjukstad/walrus I receive the error messages: # github.com/fjukstad/walrus/lfs go/src/github.com/fjukstad/walrus/lfs/lfs.go:411:16: cannot use ps (type "github.com/docker/go-connections/nat".PortSet) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value go/src/github.com/fjukstad/walrus/lfs/lfs.go:414:16: cannot use pm (type "github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value

fjukstad commented 6 years ago

Hey! Thanks for trying out walrus and the thorough report! Yeah, the issue is the vendored packages in the Docker client library. I’m working on a fix, but I’m currently away for Easter. Will get back to you when I’m in front of my computer again.

Bjørn

On 31 Mar 2018, at 17:43, ttbek notifications@github.com wrote:

As mentioned in another issue, this project requires Go >= 1.7

Also, it requires libgit2

Currently it seems to be broken even with those.

OS: Ubuntu 16.04 Using Go 1.10 installed via their instructions and git 2.7.4 git-lfs 2.4.0 CMake 3.5.1, gcc 5.4.0 (python doesn't actually matter as it is used only in the tests) libgit2 installed from here: https://github.com/libgit2/libgit2 as described: git clone mkdir build && cd build cmake .. cmake --build . cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix cmake --build . --target install

go get github.com/fjukstad/walrus I receive the error messages:

github.com/fjukstad/walrus/lfs

go/src/github.com/fjukstad/walrus/lfs/lfs.go:411:16: cannot use ps (type "github.com/docker/go-connections/nat".PortSet) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value go/src/github.com/fjukstad/walrus/lfs/lfs.go:414:16: cannot use pm (type "github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

fjukstad commented 6 years ago

Hi again!

So this is related to a vendoring issue in the Docker package. You can install walrus correctly by first installing the Docker package, removing some vendor/ directories manually, and then install walrus using go get:

# first remove walrus and Docker packages to get rid of old stuff.
rm -rf ~/go/src/github.com/fjukstad/walrus ~/go/src/github.com/docker/docker 

# install the Docker packages that need some wrangling before we can use them. 
go get -u github.com/docker/docker github.com/docker/distribution

# remove the vendor directory in the Docker packages.
rm -rf ~/go/src/github.com/docker/docker/vendor ~/go/src/github.com/docker/distribution/vendor

# install walrus 
go get github.com/fjukstad/walrus

Try to follow the above procedure and let me know how it turns out!

I'll see if I can get walrus to work with dep or vgo to simplify the installation process. I've tried to get dep working, but since the Docker package does not have Go code in the root it doesn't work just yet.

fjukstad commented 6 years ago

Updated the installation instructions in 066cc1b5dd68e7a528ee6fc4ad2ac364ac574647.

fjukstad commented 6 years ago

The README should now list the necessary dependencies and instructions on how to install them. We have also added a Dockerfile for users who simply want to try it out in a container.