Fails when built with -trimpath
- Linguagem predominante
- Go
- Estrelas
- 10.8k
- Forks
- 1.3k
- Merge médio
- 2d 36min
- PRs com merge (30d)
- 26
Descrição
### What happened?
```
$ GOFLAGS='-trimpath' go build github.com/99designs/gqlgen && ./gqlgen
modelgen: locating templates: lstat github.com/99designs/gqlgen@v0.10.1/plugin/modelgen: no such file or directory
[EXIT:3] $
```
### What did you expect?
Success, like without `-trimpath`:
```
$ GOFLAGS=' ' go build github.com/99designs/gqlgen && ./gqlgen
$
```
### Minimal graphql.schema and models to reproduce
Just about anything, really.
### versions
- `gqlgen version`?
- `go version`?
- dep or go modules?
```
$ go list -m github.com/99designs/gqlgen
github.com/99designs/gqlgen v0.10.1
$ go version
go version go1.13.3 linux/amd64
```
And obviously modules.
It seems gqlgen is using build-time paths to try to locate its template files, and trimpath confuses that. Perhaps the templates should be bundled into the executable.
Guia de contribuição
Direção de pesquisa
O problema é que o gqlgen usa caminhos de build para localizar arquivos de template, e a flag -trimpath remove esses caminhos. Analise o pacote plugin/modelgen e como ele carrega os templates. Verifique se há algum uso de runtime.Caller ou algo semelhante para obter os caminhos dos arquivos. A correção provavelmente envolve incorporar os templates ou usar outro método para localizá-los. Teste compilando com GOFLAGS='-trimpath' e executando o gqlgen para ver o erro.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- go
- Domínio
- build-system
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 55/100