Multiple Arm 32-bit binaries build with golang. Which to use in formula?

Golang allows building binaries for multiple arm 32-bit versions according to their docs

$GOARM (for arm only; default is auto-detected if building on the target processor, 6 if not). Possible values are: 5,6,7
GOARM=5: use software floating point; when CPU doesn’t have VFP co-processor
GOARM=6: use VFPv1 only; default if cross compiling; usually ARM11 or better cores (VFPv2 or better is also supported)
GOARM=7: use VFPv3; usually Cortex-A cores

Homebrew supports 32-bit arm as well in their formulas as well according to the docs but

Support for ARM is on a best-effort basis. Pull requests are welcome to improve the experience on ARM platforms.

Questions

  1. What exactly means on a best-effort basis?
  2. Is it possible to support multiple 32-bit arm version a single formula?
  3. Which version (5,6,7) would the maintainers recommend using in the formula if not?

Maybe @issyl0, @iMichka or @sjackman can best answer this but I’m going to try anyway.

  1. What exactly means on a best-effort basis ?

It’s not officially supported but people will try and help you regardless. See https://definitions.uslegal.com/b/best-efforts/

  1. Is it possible to support multiple 32-bit arm version a single formula?

it should technically be possible but the easiest way might be to let golang detect the processor.

  1. Which version (5,6,7) would the maintainers recommend using in the formula if not?

Generally homebrew takes the upstream default for stuff so I’d say 6.

Yes, ARMv6 is a good choice if picking one. Homebrew’s portable-ruby is built for ARMv6.
As Sean suggested, when building from source, it could build for the detected processor. If you were building bottles, I’d suggest building only an ARMv6 bottle. You could build a bottle for each processor, but the ARMv6 bottle is usable on ARMv7.