SkygearIO/skygear-server

Potential import collision: import path should be "gopkg.in/h2non/gock.v1", not "github.com/h2non/gock".

KateGo520 opened this issue · 3 comments

Background

The h2non/gock has already renamed it’s import path from "github.com/h2non/gock" to "gopkg.in/h2non/gock.v1".
As README of h2non/gock v1.0.12 said, downstream repos should use "gopkg.in/h2non/gock.v1" to get or import h2non/gock.

Installation
> go get -u gopkg.in/h2non/gock.v1

Examples
See examples directory for more featured use cases.
Simple mocking via tests
package test
import (
  "github.com/nbio/st"
  "gopkg.in/h2non/gock.v1"
  "io/ioutil"
  "net/http"
  "testing"
)
…

But SkygearIO/skygear-server still used the old path:
https://github.com/SkygearIO/skygear-server/blob/master/go.mod#L24

github.com/h2non/gock v1.0.12

When you use the old path "github.com/h2non/gock" to import the h2non/gock, it will be very easy to reintroduce h2non/gock through the import statements "import gopkg.in/h2non/gock.v1" in the go source file of h2non/gock`.
https://github.com/h2non/gock/blob/v1.0.14/_examples/custom_matcher/matcher.go#L5

package main
import (
	"fmt"
	"gopkg.in/h2non/gock.v1"
	"net/http"
)
…

The "gopkg.in/h2non/gock.v1" and "github.com/h2non/gock" are the same repos. This will work in isolation, bring about potential risks and problems.

So, why not get rid of the old import path "github.com/h2non/gock ", use "gopkg.in/h2non/gock.v1" instead.

Solution

Replace all the old import paths, change "github.com/h2non/gock" to "gopkg.in/h2non/gock.v1".
Where did you import it: https://github.com/SkygearIO/skygear-server/search?q=github.com%2Fh2non%2Fgock&unscoped_q=github.com%2Fh2non%2Fgock

@louischan-oursky @kiootic Could you help me review this issue? Thx :p

@KateGo520 Thanks for telling us this and being interested in Skygear! I am sorry that Skygear is no longer in active development. Instead, we are developing Authgear. Check it out!

@louischan-oursky Thank you for your reply and advice! I'll try.