tailscale / tmemes

A meme generator for your tailnet!
BSD 3-Clause "New" or "Revised" License
42 stars 1 forks source link

Recent changes somehow broke builds in Gokrazy #10

Open Twi opened 1 year ago

Twi commented 1 year ago
2023/10/18 06:34:21 updating package 12 of 25: [go get github.com/tailscale/tmemes/tmemes]
2023/10/18 06:34:21   in builddir/github.com/tailscale/tmemes
go: github.com/tailscale/tmemes/tmemes imports
        tailscale.com/tsnet imports
        tailscale.com/wgengine/netstack imports
        gvisor.dev/gvisor/pkg/bufferv2: cannot find module providing package gvisor.dev/gvisor/pkg/bufferv2
2023/10/18 06:34:21 [go get github.com/tailscale/tmemes/tmemes]: exit status 1

I'm not sure why, but https://github.com/tailscale/tmemes/commit/af942c74c1179b6b692cad6b0c37c71eac5009e2 somehow broke builds with Gokrazy. I'm also not sure if this is the correct place to file this, so please redirect me if it's not.

bradfitz commented 1 year ago

Works by itself at that commit:

bradfitz@book1pro tmemes % git rev-parse
bradfitz@book1pro tmemes % git rev-parse HEAD
af942c74c1179b6b692cad6b0c37c71eac5009e2
bradfitz@book1pro tmemes % git status
On branch main
Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean
bradfitz@book1pro tmemes % go version         
go version go1.21.0 darwin/arm64
bradfitz@book1pro tmemes % go install ./tmemes   
bradfitz@book1pro tmemes % 

What's your application's go.mod have for Tailscale/gvisor? Sounds like you're referencing the gvisor master branch (with Bazel file layout) instead of their "go" branch with normal cmd/go tool compatible layout.

/cc @creachadair

creachadair commented 1 year ago

To expand on what @bradfitz noted, gvisor has a somewhat hostile versioning strategy with no tags or stable release markers, so running (say) go update -u will just grab whatever is at their tip when doing the update, which often contains breaking changes relative to what the direct dependencies use.

I should probably pin this repo to a tagged tailscale.com release. Meanwhile, however, if you want to update other dependencies you should be able to work around this by explicitly downgrading gvisor to the version tailscale depends on, which as I write this is 4fe30062272c:

go get gvisor.dev/gvisor@4fe30062272c

…after updating any other things you care about.