makew0rld / amfora

A fancy terminal browser for the Gemini protocol.
GNU General Public License v3.0
1.14k stars 68 forks source link

Please bump golang.org/x/sys dependency #333

Closed clausecker closed 1 year ago

clausecker commented 1 year ago

The version of golang.org/x/sys this port transitively depends on is too outdated to support recently added platforms such as riscv64-freebsd. Please bump the dependency to its most recent version to enable a build.

makew0rld commented 1 year ago

I can update that module directly, but other modules depend on older versions, it is a transitive dependency as you mention. So I'm not sure I can actually fix this issue by just running go get golang.org/x/sys@latest. Let me know if I'm incorrect and there is a way to fix it easily.

clausecker commented 1 year ago

Of each module there can only be one copy for each major version. So if you bump golang.org/x/sys in your main module, this will be the version used for all dependencies, even if they request an older version. So yeah, go get golang.org/x/sys@latest should do the trick.

makew0rld commented 1 year ago

Ah but some of the modules I use require specific commits of golang.org/x/sys, so they won't be overrided by this.

$ go get golang.org/x/sys@latest
go: downloading golang.org/x/sys v0.6.0
go: upgraded golang.org/x/sys v0.5.0 => v0.6.0
$ go mod tidy
$ go mod graph | grep /x/sys
github.com/makeworld-the-better-one/amfora golang.org/x/sys@v0.6.0
code.rocketnine.space/tslocum/cview@v1.5.6-0.20210530175404-7e8817f20bdc golang.org/x/sys@v0.0.0-20210525143221-35b2ab0089ea
github.com/fsnotify/fsnotify@v1.4.9 golang.org/x/sys@v0.0.0-20191005200804-aed5e4c7ecf9
github.com/gdamore/tcell/v2@v2.3.3 golang.org/x/sys@v0.0.0-20201119102817-f84b799fce68
github.com/muesli/termenv@v0.9.0 golang.org/x/sys@v0.0.0-20200116001909-b77594299b42
github.com/schollz/progressbar/v3@v3.8.0 golang.org/x/sys@v0.0.0-20210223095934-7937bea0104d
< and so on... >

My understanding of this is that I can't remove the dependency on old golang.org/x/sys versions without updating/modifying all these other dependencies also.

clausecker commented 1 year ago

These are specific commits, but they work just like normal versions. Once again, it is not required to update these other dependencies. The graph merely says what the minimal version these dependencies request is. For a long time, golang.org/x/sys did not have any tagged versions, so many older dependencies depend on such pseudo versions.

makew0rld commented 1 year ago

@clausecker I've bumped the dependency. Can you confirm that this works for you and the issue can be closed?

clausecker commented 1 year ago

Thanks, this is great!