Возникла проблема с определением объявления go_remote_library для 3rdparty / go / golang.org / x / text: * - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь использовать github.com/spf13/viper, для которого требуется github.com/spf13/afero, а для этого требуются некоторые пакеты 3rdparty / go / golang.org / x / text:.Пока работает afero, и при определении 3rdparty BUILD для текста: * пакеты я получаю следующие ошибки,

3rdparty/go/github.com/spf13/afero has remote dependencies which require local declaration:
        --> golang.org/x/text/unicode/norm (expected go_remote_library declaration at 3rdparty/go/golang.org/x/text:unicode/norm)
        --> golang.org/x/text/transform (expected go_remote_library declaration at 3rdparty/go/golang.org/x/text:transform)

Я пытался определить это так в 3rdparty / go / golang.org / x / text / BUILD,

go_remote_library(
    rev='342b2e1fbaa52c93f31447ad2c6abc048c63e475',
    packages=[
        'unicode/norm',
        'transform',
    ]
)

И это все еще показывает ту же ошибку.Плюс теперь запуск buildgen.go завершается с ошибкой:

Exception caught: (pants.build_graph.target.UnknownArgumentError) (backtrace omitted)
Exception message: Invalid target 3rdparty/go/golang.org/x/text:text: GoRemoteLibrary received unknown arguments:
    packages = ['unicode/norm', 'transform']

Дополнительная информация, - Версия для брюк: 1.13.0 --antsbuild.pants.contrib.go: 1.13.0 - Пробовал с использованием 1.14.0& 1.15.0, а также получил те же результаты

Простой пример для его воссоздания,

package main

import (
    "fmt"

    "github.com/spf13/viper"
)

func main() {
    viper.AutomaticEnv()
    fmt.Printf("%s", viper.GetString("HOME"))
}

Также вы можете просто разрешить брюки на упаковке, чтобы получить ошибку,

pants resolve 3rdparty/go/github.com/spf13/viper

1 Ответ

0 голосов
/ 07 июля 2019

Благодаря команде штанов, проблема решена.

buildgen.go превращается go_remote_library(pkg='foo') принимает цели go_remote_libraries. Нам нужно использовать go_remote_libraries (не go_remote_library), чтобы указать несколько пакетов.

Использование этого прекрасно работает,

go_remote_libraries(
  rev='342b2e1fbaa52c93f31447ad2c6abc048c63e475',
  packages=[
    'transform',
    'unicode/norm',
  ]
)
...