Can't set target IPFS_VERSION=v0.20.0
Closed this issue · 6 comments
I want to try building my own Kubo plugin, so I tried to run this demo first.
Sadly, already the first step of setting the IPFS_VERSION to compile against fails when I try to use the latest version of Kubo (v0.20.0 at the time of writing).
git clone https://github.com/ipfs/go-ipfs-example-plugin.git
cd go-ipfs-example-plugin
make go.mod IPFS_VERSION=v0.20.0
I get the following output:
./set-target.sh v0.20.0
panic: internal error: can't find reason for requirement on github.com/lucas-clemente/quic-go@v0.28.1
goroutine 1 [running]:
cmd/go/internal/modget.(*resolver).updateBuildList.func1({{0xc0010298c0, 0x21}, {0xc0007b6b10, 0x7}})
/snap/go/current/src/cmd/go/internal/modget/get.go:1760 +0xd4
cmd/go/internal/modget.(*resolver).updateBuildList(0xc000184000, {0xb45d58, 0xc000032130}, {0x0, 0x0, 0x0})
/snap/go/current/src/cmd/go/internal/modget/get.go:1765 +0x54c
cmd/go/internal/modget.(*resolver).applyUpgrades(0xc000184000, {0xb45d58, 0xc000032130}, {0x0?, 0x0, 0xc00010fd70?})
/snap/go/current/src/cmd/go/internal/modget/get.go:1312 +0x465
cmd/go/internal/modget.runGet({0xb45d58, 0xc000032130}, 0xc00002c8d0?, {0xc0000241a0, 0x1, 0x1})
/snap/go/current/src/cmd/go/internal/modget/get.go:351 +0x458
main.invoke(0xe5e3c0, {0xc000024190, 0x2, 0x2})
/snap/go/current/src/cmd/go/main.go:225 +0x3d9
main.main()
/snap/go/current/src/cmd/go/main.go:179 +0x7ce
make: *** [Makefile:26: go.mod] Error 2
This is basically my first time working with the go language I do not have the ability to figure out what is going wrong. I tried compiling against v0.19.0, and there I got a few steps further, but after downgrading Kubo and instlaling the plugin Kubo always crashed.
What version of go?
Triage notes:
- I was able to reproduce the with go1.20.3
- We should either update this repo, or archive it – adding it to 0.22 maintenance tasks
If I'm allowed a vote, I support updating the repo!
However, I'm completely new to working in go, so I have no idea about how to do it. I've worked with building things on top of IPFS for years, but this is my first attempt to delve into the construction of Kubo in go.
IMHO plugin frameworks are vital components of open-source projects because they make it easier for the wider community to contribute to their development, because plugin frameworks provide an easier alternative to developing than working on the core of the project.
As far as I can tell, this is the only real place hopeful community members can come to to learn to build Kubo plugins, so removing it would seriously impact the community's ability to contribute to the development of Kubo.
If I'm allowed a vote, I support updating the repo!
However, I'm completely new to working in go, so I have no idea about how to do it. I've worked with building things on top of IPFS for years, but this is my first attempt to delve into the construction of Kubo in go.
IMHO plugin frameworks are vital components of open-source projects because they make it easier for the wider community to contribute to their development, because plugin frameworks provide an easier alternative to developing than working on the core of the project.
As far as I can tell, this is the only real place hopeful community members can come to to learn to build Kubo plugins, so removing it would seriously impact the community's ability to contribute to the development of Kubo.
Perhaps reading https://github.com/ipfs-shipyard/nopfs/blob/master/nopfs-kubo-plugin/plugin.go is useful to you @emendir .