1. ホーム
  2. go

go.modの「incompatible」の意味、害はないのか?

2023-08-12 11:36:51

質問

私は goczmq を使っていますが、次のような感じです。

main.go。

package main

import (
    _ "github.com/zeromq/goczmq"
)

func main() {
}

そしてさらに、私はgolang 1.12とgomodを使ってプロジェクトを管理しています。

次に、私は go mod init xxx で、ビルドすると goczmq を自動的にダウンロードして go.mod に追加されましたが incompatible が入っています。(しかし、他のライブラリでは、次のようなものが得られます。 github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181 )

go.modです。

module pigeon

go 1.12

require (
    github.com/zeromq/goczmq v4.1.0+incompatible
)

いくつかの議論から(他のライブラリのために)、例えば この のように、ライブラリのオーナーは golang 1.12 をサポートするために何かをする必要があるようです?しかし、私の場合、すべてのものがうまく動作します。 incompatible があるだけで少し心配になります(つまり、今は大丈夫そうですが、いつか今まで使ったことのないAPIを使うときに、そこに隠れた爆弾があるのでは......?)

そこで質問です。

私はこれを心配する必要がありますか、それともこれは予想通りですか?

どのように解決するのですか?

+incompatible は、依存関係が semver major バージョン 2 以上で、まだ Go モジュールではない (ソース コードに go.mod がない) ことを意味します。