On Mon, 14 Dec 2020, David Dashyan wrote:
Toggle quote (17 lines)
>
> Hello again!
>
> Jack Hill writes:
>
>> I've tested go 1.15 by trying to build the packages reported by `guix refresh -l
>> go` on x86_64. There are some new build failures, but it doesn't look too
>> bad. In fact, I've already fixed on of them, by updating go-github-com-kr-pretty
>> in #45171 [0]. There were a number of packages whose tests failed because of
>> changes [1] to `go vet`. The new kr-pretty release adjusts to the new vet
>> behavior with a one line change [2] (kr-pretty had fortunately not fallen into
>> the incorrect string() usage for which vet is now warning).
>
> May I ask how do you do afterer redefining "go" to point to go-1.15 and
> getting list of deppending packages? I mean how one buids all depended
> packages in one move if there such a way to do this?
Sure. For me it involved some manual effort. There might be a more clever
way to script it that others can share, but I didn't think it was too bad,
and it allowed me to make notes about what problems I observed as I
encountered them. Nothing I did was Go-specific. Perhaps a small project
for another time, we could add a cookbook recipe for testing upgrades to
languages or other packages with many dependents.
Here's what I did after changing the default go:
* ran `./pre-inst-env guix refresh -l go` and recorded the list of
packages to build.
* ran `./pre-inst-env guix build` with that list.
* After a while there is a build failure, and the end of the log looks
like (the actually failure here is unimportant):
```
FAIL go.etcd.io/bbolt 600.127s
FAIL
command "go" "test" "go.etcd.io/bbolt" failed with status 1
Some deprecated features have been used. Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information. Set it to "no" to suppress
this message.
builder for `/gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv' failed with exit code 1
@ build-failed /gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv - 1 builder for `/gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv' failed with exit code 1
derivation '/gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv' offloaded to 'libre-02.local' failed: build of `/gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv' failed
build of /gnu/store/6dshsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv failed
View build log at '/var/log/guix/drvs/6d/shsgwryfj8g27sf24sp7lhnpf639d1-go-etcd-io-bbolt-1.3.5.drv.bz2'.
cannot build derivation `/gnu/store/23jx3gb17gdhz662d3dsrmfnpp92abw4-chezmoi-1.8.1.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/23jx3gb17gdhz662d3dsrmfnpp92abw4-chezmoi-1.8.1.drv' failed
```
* From this, I make a not the go-etcd-io-bbolt has a build failure, and
that I was unable to attempt chezmoi.
* I remove chezmoi from the list of packages to build and re-run `guix
build`.
Repeat that process until all the remaining packages build, and you should
have a nice list of build failures and builds that could not be attempted.
Hope that helps,
Jack