tree 642873ffe847884236221da3dec6991f3375b1c1
parent baca6fbbd606df4607e3caf213e65db8fd37ac80
author Robert Findley <rfindley@golang.org> 1773356464 -0400
committer GitHub <noreply@github.com> 1773356464 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJps0WwCRC1aQ7uu5UhlAAAXAAQADOdLsMo1sXJf3QjST32oI/O
 hfatReFzxjmjFt2N6vWDEKi64Ckg9KUMBuTjOOtDb5f/rToaf/tZbXWfGUH+3qM5
 r4pPMmavLhL3ypBx4Q6jKGuEj6WahPOAS0EDhLO/lWwRYI+mAkQa9Hsjlp2iieW8
 3q8ZyyFExPV7lVglKkWf+WTcf5SqdVCcBSIUw8HpcrS4Nq69FpA4b9ZDqR6Bn9As
 VeuccUwMTXQDRK8uSlHAX40cXwNaA2I5QO9iD3caDyzTonfsLQ9aVpUSdv/GC7nM
 mSn6IDsGAGL8nrjIzyr3gjYHZsb1ScIHlCjbdRZvl3lYieTbH3JaFsKv1zoJMFvW
 wb7P8FhaWxxERi0fkKrw5Ya4baVlJuRGhrp+y/7AwH5QFD4DCZQ3W3LmmGzOhkgT
 QCOEYayrvxdH+el7idAbIh45uX9U8PcaV8ebeNT5GHUq8sB7lPQplJK59pbdfCnb
 67Mh8Hw4fnSH6nmOsFBYEcY+jLqPQlbEzkAYye3KfzJZBVHhDdy3D4y9vAlmTLEB
 pyDepFF5sAPdfSJBz2O5YzrW2QgiI5acP+ZHh4gybuOnVykbFCBOYTnt48f0QChZ
 WQcEcp8s/QPEicKJ3ZX5tG1TzxOXSdXhmhPsz1pFforPv+kECwcCu/SevHUUtdGq
 50dSgNXZO733Y1TVm89X
 =6XYt
 -----END PGP SIGNATURE-----
 

bzlmod: allow non-default go.work file names (#2303)

The go command accepts any file as a workspace file via the GOWORK
environment variable, and writes checksums to a sibling file with a .sum
suffix (e.g. GOWORK=go.bazel.work produces go.bazel.work.sum).

go_deps.from_file(go_work = ...) currently rejects any name other than
go.work, and hardcodes go.work.sum as the sum file name. This is
stricter than the go command itself. Notably, go_work_from_label already
accepts any name; only the sum-file path checks.

Remove the name check and derive the sum file name from the work file
name.

A non-default name is useful when a repository wants a Bazel-only
workspace that the go toolchain won't auto-discover (the toolchain walks
up directories looking specifically for go.work), so native go builds
remain unaffected by the Bazel workspace configuration.

**What type of PR is this?**

 Bug fix

**What package or component does this PR mostly affect?**

go_repository

**What does this PR do? Why is it needed?**

**Which issues(s) does this PR fix?**

Fixes #2302

**Other notes for review**