Skip to content
This repository has been archived by the owner on Sep 15, 2020. It is now read-only.

goconvey Error installing on Unix as per install instruction #769

Open
stevenpeh opened this issue Jul 30, 2018 · 14 comments
Open

goconvey Error installing on Unix as per install instruction #769

stevenpeh opened this issue Jul 30, 2018 · 14 comments

Comments

@stevenpeh
Copy link

Following the install as per instruction from website this morning. During the make process, it errors with this message:

 # cd .; git clone https://github.com/glycerine/goconvey /home/ec2-user/go/src/github.com/glycerine/goconvey
 Cloning into '/home/ec2-user/go/src/github.com/glycerine/goconvey'...
 remote: Repository not found.

Sure enough, checking github, that repository doesn't actually exist. The only one I can find with the same repo name is under "https://github.com/smartystreets/goconvey". I tried cloning it manually into the glycerine folder assuming it was just relocated. Make completes successfully but "hcadmin -v" failed:

hcadmin flag redefined: convey-json
panic: hcadmin flag redefined: convey-json

goroutine 1 [running]:
flag.(*FlagSet).Var(0xc4200f6f60, 0x124fc20, 0x1812933, 0x1006d95, 0xb, 0x1030e33, 0x39)
        /usr/local/go/src/flag/flag.go:810 +0x540
flag.BoolVar(0x1812933, 0x1006d95, 0xb, 0xeb4800, 0x1030e33, 0x39)
        /usr/local/go/src/flag/flag.go:589 +0x72
github.com/glycerine/goconvey/convey.declareFlags()
        /home/ec2-user/go/src/github.com/glycerine/goconvey/convey/init.go:21 +0x60
github.com/glycerine/goconvey/convey.init.0()
        /home/ec2-user/go/src/github.com/glycerine/goconvey/convey/init.go:15 +0x5a

So I'm assuming that smartystreets/goconvey repo is not it. Where is the correct repo?

@Connoropolous
Copy link
Collaborator

Hi stevenpeh, that is interesting and odd. I will look into it

@Connoropolous
Copy link
Collaborator

Looking into my GO directories, I found glycerine/goconvey ... but in the README I actually see references to smartystreets/goconvey so yes it appears to be the same repository intended.

It looks like in the code we've already got it re-referenced to the right place, so I am wondering whether you somehow have old references.

. "github.com/smartystreets/goconvey/convey"

@stevenpeh
Copy link
Author

stevenpeh commented Jul 31, 2018

I just followed the install instruction in the main site, does it pull from the same branch as what you're referencing to in the code?

I'm not a GO dev so not sure how I would even have old references. I provisioned a new ec2 server in AWS, installed go as per instructions, and ran the holochain install. I just tried again this morning, brand new ec2 server. I can see during the go get part it already fails to download goconvey but doesn't exit instead continues with the process.

[ec2-user@ip-10-160-136-128 ~]$ go get -d -v github.com/holochain/holochain-proto
github.com/holochain/holochain-proto (download)
created GOPATH=/home/ec2-user/go; see 'go help gopath'
github.com/BurntSushi/toml (download)
github.com/fatih/color (download)
github.com/ghodss/yaml (download)
Fetching https://gopkg.in/yaml.v2?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v2?go-get=1 (status code 200)
get "gopkg.in/yaml.v2": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at https://gopkg.in/yaml.v2?go-get=1
gopkg.in/yaml.v2 (download)
github.com/glycerine/zygomys (download)
github.com/glycerine/blake2b (download)
github.com/glycerine/goconvey (download)
# cd .; git clone https://github.com/glycerine/goconvey /home/ec2-user/go/src/github.com/glycerine/goconvey
Cloning into '/home/ec2-user/go/src/github.com/glycerine/goconvey'...
remote: Repository not found.
fatal: repository 'https://github.com/glycerine/goconvey/' not found
package github.com/glycerine/goconvey/convey: exit status 128
github.com/glycerine/greenpack (download)
github.com/philhofer/fwd (download)
github.com/glycerine/liner (download)
github.com/glycerine/tmframe (download)

@Connoropolous
Copy link
Collaborator

Which OS?

@Connoropolous
Copy link
Collaborator

For me, on osx it worked

@stevenpeh
Copy link
Author

stevenpeh commented Jul 31, 2018

AWS AMI Linux. I'll try redhat later on AWS when I get a chance

[ec2-user@ip-10-160-136-128 ~]$ git --version
git version 1.8.3.1

@stevenpeh
Copy link
Author

Ok, I'm guessing here, but it seems like it is an indirect dependency that is an issue here. holochain depends on glycerine/zygomys but the glycerine/zygomys pulled down from github refers to glycerine/goconvey which fails.

As you mentioned, holochain also reference goconvey directly but has its repo url updated to smartystreets.

Looking at the glycerine/zygomys repo in github, it does indeed reference goconvey all over the place using its old deprecated repo url under glycerine.

On your mac os perhaps you already had pulled down glycerine/goconvey so it is resolving locally? Do you have a glycerine/goconvey under your go/src/github.com?

@Connoropolous
Copy link
Collaborator

Connoropolous commented Jul 31, 2018 via email

@Connoropolous
Copy link
Collaborator

You could just remove that folder from your filesystem and retry

@chrisminnick
Copy link

I was able to build it after I did a search/replace to change every instance of glycerine/goconvey to smartystreets/goconvey in my go/src/github.com directory.

@Connoropolous Connoropolous changed the title Error installing on Unix as per install instruction goconvey Error installing on Unix as per install instruction Jul 31, 2018
@bspeagle
Copy link

chrisminnick's solution worked for me!

@Connoropolous
Copy link
Collaborator

Sweet. @stevenpeh if it works for you, will you close the issue? :)

@stevenpeh
Copy link
Author

Ok. Thanks to @chrisminnick, this works now. So the manual fix is:

  1. Run the go get ..holochain as per install instruction
  2. Manually rename all the affected repos under $GOPATH/src/github.com/glycerine from "../glycerine/goconvey" to "../smartystreets/goconvey"
  3. Continue with the install instruction, i.e. make

The 4 glycerine repos affected are zygomys, zebrapack, tmframe and greenpack. I've raised pull request on all 4 of them with the fix. Until then, new users will fail to install as per normal install steps.

My opinion is this issue shouldn't really be closed until it is fixed... but up to project admins

If the editing in Step 2. above is too much, as an alternative fix one can also delete those broken repos under $GOPATH/src/github.com/glycerine and cloning the fixed forks (which is the source of the PRs) from my repos here:

https://github.com/stevenpeh/greenpack
https://github.com/stevenpeh/tmframe
https://github.com/stevenpeh/zebrapack
https://github.com/stevenpeh/zygomys

The PRs for tracking are:

glycerine/zygomys#30
glycerine/zebrapack#9
glycerine/tmframe#3
glycerine/greenpack#9

@stevenpeh
Copy link
Author

stevenpeh commented Aug 1, 2018

This just got weirder. The glycerine project owner have rejected all my PR because he said he had forked smartystreets/goconvey because upstream rejected some of his proposed changes. So all the glycerine repos uses his tweaked version. He had accidentally made the glycerine/goconvey repo private by mistake hence causing this issue with the holochain build.

Now he's made it public again. So I've re-built and install holochain... it kinda works, when I run hcadmin -v this is what I get:

[ec2-user@ip-10-160-137-222 ~]$ hcadmin -v
flag provided but not defined: -v
Usage of goConvey:
  -json
        When true, emits results in JSON blocks. Default: 'false'
  -silent
        When true, all output from GoConvey is suppressed.
  -story
        When true, emits story output, otherwise emits dot output. When not provided, this flag mirrors the value of the '-test.v' flag
  -test.run regexp
        run only tests and examples matching regexp
  -test.v
        verbose: print additional output
hcadmin version 0.0.5 (holochain 26)

Somehow the glycerine version of goconvey gets its hook in to process whatever is passed into hcadmin before sending it on...

There's now 2 version of goconvey in holochain. You'd think its a test framework and should be fine, but as seen above it affects the hcadmin command..

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants