Skip to content
This repository has been archived by the owner on Oct 29, 2021. It is now read-only.

Add ability to clone the template anywhere outside $GOPATH #58

Closed
wants to merge 1 commit into from

Conversation

ultimatesolution
Copy link

A small obvious improvement. Cloning outside $GOPATH makes the developer's life a bit easier.

@olebedev
Copy link
Owner

The previous implementation was $GOPATH independent. But i had to use $GOPATH properly because of vendor usage. Does deps management working as expected for you? Which golang version do you use?

@ultimatesolution
Copy link
Author

$ go version
go version go1.6.1 linux/amd64

This works OK if go-bindata and srlt have been added to the $PATH:

cd /tmp
git clone https://github.com/ultimatesolution/go-starter-kit foo
cd foo
make install build serve

@olebedev
Copy link
Owner

I follow you instruction above, make install build serve step produces this:

ash: 9711a63e46e90d555fa9  
Version: webpack 1.13.2
Time: 2620ms
     Asset     Size  Chunks             Chunk Names
 bundle.js  1.05 MB       0  [emitted]  bundle
bundle.css  9.44 kB       0  [emitted]  bundle
    + 298 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
Child extract-text-webpack-plugin:
        + 2 hidden modules
/usr/local/Cellar/go/workspace/bin/go-bindata -pkg=main -prefix=server/data -o=server/bindata.go server/data/...
server/app.go:8:2: cannot find package "github.com/elazarl/go-bindata-assetfs" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/github.com/elazarl/go-bindata-assetfs (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/github.com/elazarl/go-bindata-assetfs (from $GOPATH)
server/app.go:9:2: cannot find package "github.com/itsjamie/go-bindata-templates" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/github.com/itsjamie/go-bindata-templates (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/github.com/itsjamie/go-bindata-templates (from $GOPATH)
server/api.go:6:2: cannot find package "gopkg.in/labstack/echo.v1" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/gopkg.in/labstack/echo.v1 (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/gopkg.in/labstack/echo.v1 (from $GOPATH)
server/app.go:13:2: cannot find package "gopkg.in/labstack/echo.v1/middleware" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/gopkg.in/labstack/echo.v1/middleware (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/gopkg.in/labstack/echo.v1/middleware (from $GOPATH)
server/react.go:11:2: cannot find package "gopkg.in/olebedev/go-duktape-fetch.v2" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/gopkg.in/olebedev/go-duktape-fetch.v2 (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/gopkg.in/olebedev/go-duktape-fetch.v2 (from $GOPATH)
server/react.go:12:2: cannot find package "gopkg.in/olebedev/go-duktape.v2" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/gopkg.in/olebedev/go-duktape.v2 (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/gopkg.in/olebedev/go-duktape.v2 (from $GOPATH)
make: *** [/usr/local/Cellar/go/workspace/bin/foo] Error 1

Seems it NOT works OK.
Besides, go-bindata and srlt may not be installed at the target dev workspace.

@ultimatesolution
Copy link
Author

server/app.go:8:2: cannot find package "github.com/elazarl/go-bindata-assetfs" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/github.com/elazarl/go-bindata-assetfs (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/github.com/elazarl/go-bindata-assetfs (from $GOPATH)
server/app.go:9:2: cannot find package "github.com/itsjamie/go-bindata-templates" in any of:
    /usr/local/Cellar/go/1.7.1/libexec/src/github.com/itsjamie/go-bindata-templates (from $GOROOT)
    /usr/local/Cellar/go/workspace/src/github.com/itsjamie/go-bindata-templates (from $GOPATH)
...

This could be fixed with

go get -d ./server

added to the Makefile. It could be added to install step since this is installing dependencies.

Besides, go-bindata and srlt may not be installed at the target dev workspace.

go-bindata: correct, it is installed in $(GO_BINDATA) step.
srlt: could not see installing this tool in the Makefile. Should it be installed separately with go get github.com/olebedev/srlt?

@ultimatesolution
Copy link
Author

ultimatesolution commented Sep 27, 2016

Fixed issues you have mentioned about. Working version is here: https://github.com/ultimatesolution/go-starter-kit/tree/fix1

This works:

docker run -ti --rm --dns 8.8.8.8 alpine /bin/sh

then

set -e
apk add --no-cache go git make nodejs alpine-sdk
mkdir /gopath
export GOPATH=/gopath
export PATH=$PATH:$GOPATH/bin
go get github.com/olebedev/srlt
git clone https://github.com/ultimatesolution/go-starter-kit foo
cd foo
git checkout b22a7b1
make install build serve

I'll create a new pull request if you approve this version.

@joelnb
Copy link
Contributor

joelnb commented Feb 4, 2017

Won't building this out of $GOPATH make it ignore all of the vendored dependencies? It looks that way from the quick look at the changes I had & if so I don't agree with this idea.

It is possible vendored libs will be used even outside of a $GOPATH in future though so then I think it would be very useful - see these issues for more information on the subject: 1, 2.

@olebedev
Copy link
Owner

Thanks @ultimatesolution for this PR, bit it's not relevant for project usage. Similar corner-cases could be done outside of the project.

@olebedev olebedev closed this Feb 20, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants