openshift-evangelists / crd-code-generation

Apache License 2.0
151 stars 43 forks source link

generated import statements have '/' in name, causing failures #5

Open BillDett opened 6 years ago

BillDett commented 6 years ago

Downloaded the example code and tried running the update-codegen.sh (no was code modified):

$ ./hack/update-codegen.sh code generators are in ./vendor/k8s.io/code-generator Generating deepcopy funcs Generating clientset for example.com:v1 at github.com/openshift-evangelists/crd-code-generation/pkg/client/clientset ERROR: logging before flag.Parse: F0207 14:12:51.419209 13332 main.go:202] Error: Failed executing generator: some packages had errors: errors in package "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned": unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\clientset.go" (19:8: expected 'STRING', found '/' (and 10 more errors)).

errors in package "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\scheme": unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\scheme\register.go" (19:8: expected 'STRING', found '/' (and 8 more errors)).

errors in package "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\fake": unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\fake\clientset_generated.go" (22:9: expected 'STRING', found '.' (and 17 more errors)). unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\fake\register.go" (19:8: expected 'STRING', found '/' (and 8 more errors)).

errors in package "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1": unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1\database.go" (19:17: unknown escape sequence (and 10 more errors)). unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1\example.com_client.go" (19:17: unknown escape sequence (and 10 more errors)).

errors in package "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1\fake": unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1\fake\fake_database.go" (19:8: expected 'STRING', found '/' (and 10 more errors)). unable to format file "c:\users\dettwil\go\src\github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1\fake\fake_example.com_client.go" (19:8: expected 'STRING', found '/' (and 10 more errors)).

goroutine 1 [running]: crd-code-generation/vendor/github.com/golang/glog.stacks(0xc042004000, 0xc043a24400, 0xa34, 0xa89) c:/users/dettwil/go/src/crd-code-generation/vendor/github.com/golang/glog/glog.go:769 +0xd6 crd-code-generation/vendor/github.com/golang/glog.(loggingT).output(0x8a1c40, 0xc000000003, 0xc0475da630, 0x87c9dc, 0x7, 0xca, 0x0) c:/users/dettwil/go/src/crd-code-generation/vendor/github.com/golang/glog/glog.go:720 +0x33d crd-code-generation/vendor/github.com/golang/glog.(loggingT).printf(0x8a1c40, 0x3, 0x71695a, 0x9, 0xc04a02fe28, 0x1, 0x1) c:/users/dettwil/go/src/crd-code-generation/vendor/github.com/golang/glog/glog.go:655 +0x153 crd-code-generation/vendor/github.com/golang/glog.Fatalf(0x71695a, 0x9, 0xc04a02fe28, 0x1, 0x1) c:/users/dettwil/go/src/crd-code-generation/vendor/github.com/golang/glog/glog.go:1148 +0x6e main.main() c:/users/dettwil/go/src/crd-code-generation/vendor/k8s.io/code-generator/cmd/client-gen/main.go:202 +0x6be


Looking at the generated code- the imports are being created as follows:

import ( github_com/golang/glog "github.com/golang/glog" k8s_io/client_go/discovery "k8s.io/client-go/discovery" k8s_io/client_go/rest "k8s.io/client-go/rest" k8s_io/client_go/util/flowcontrol "k8s.io/client-go/util/flowcontrol" example.comv1 "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1" )

Using go 1.9.1 on cygwin (Windows). Any ideas?

nikhita commented 6 years ago
import (
github_com/golang/glog "github.com/golang/glog"
k8s_io/client_go/discovery "k8s.io/client-go/discovery"
k8s_io/client_go/rest "k8s.io/client-go/rest"
k8s_io/client_go/util/flowcontrol "k8s.io/client-go/util/flowcontrol"
example.comv1 "github.com\openshift-evangelists\crd-code-generation\pkg\client\clientset\versioned\typed\example.com\v1"
)

The generated imports look wrong.

/cc @sttts maybe a windows thing/error which generates it this way?

For me (Fedora):

➜  crd-code-generation git:(master) ./hack/update-codegen.sh 
Generating deepcopy funcs
Generating clientset for example.com:v1 at github.com/openshift-evangelists/crd-code-generation/pkg/client/clientset
Generating listers for example.com:v1 at github.com/openshift-evangelists/crd-code-generation/pkg/client/listers
Generating informers for example.com:v1 at github.com/openshift-evangelists/crd-code-generation/pkg/client/informers

And imports:

import (
    glog "github.com/golang/glog"
    examplev1 "github.com/openshift-evangelists/crd-code-generation/pkg/client/clientset/versioned/typed/example/v1"
    discovery "k8s.io/client-go/discovery"
    rest "k8s.io/client-go/rest"
    flowcontrol "k8s.io/client-go/util/flowcontrol"
)
sttts commented 6 years ago

I guess the generators were never tested on Windows. PRs fixing this are very welcome.