I'm trying to build and run a repo (https://github.com/hyperledger/fabric/tree/master) but this error keeps popping up and still I haven't found a solution to this.
consensus.go:12:2: use of internal package github.com/hyperledger/fabric/internal/pkg/identity not allowed
This is just one of many files that give this error. I'm pretty sure I'm doing something wrong since this repo is suppose to be working.
Go version :
go version go1.13.5 linux/amd64
OS : Linux Mint 19.2 Cinnamon
internal/ is a special directory name recognised by the go tool which will prevent one package from being imported by another unless both share a common ancestor. Packages within an internal/ directory are therefore said to be internal packages.
Internal packages (packages that are inside a folder that has an internal
folder in their path) can only be imported from packages rooted at the parent of the internal
folder.
E.g. a package pkg/foo/internal/bar
can be imported by the package pkg/foo/internal/baz
and also from pkg/foo/baz
, but cannot be imported by the package pkg
nor can it be imported by pkg/bar
. This is by design. This is so big, complex packages can be broken into smaller packages without having to expose internals.
You have to treat internal packages as "private" or non-existent from the "outside".
See related: Can I develop a go package in multiple source directories?
Read more about internal packages at Command go: Internal Directories.
Internal packages are a compiler restriction. If you want to expose them (if you want to use an internal package) in your own project, you have to remove the internal
folder, and then of course you have to change the imports (import paths) too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With