Unexpected behaviour when running 'godelinit'
SpokeyWheeler opened this issue · comments
What happened?
❯ zsh --version
zsh 5.9 (x86_64-apple-darwin21.3.0)
❯ /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)
Copyright (C) 2007 Free Software Foundation, Inc.
❯ go version
go version go1.19.3 darwin/amd64
❯ godelinit
❯ ./godelw version
./godelw: line 7: syntax error near unexpected token `('
❯ vi godelw
#!/bin/bash
set -euo pipefail
# Version and checksums for godel. Values are populated by the godel "dist" task.
VERSION=2.71.0
DARWIN_AMD64_CHECKSUM=SHA2-256(/home/runner/work/godel/godel/out/dist/godel/2.71.0/bin/godel-2.71.0/bin/darwin-amd64/godel)= a1a7a9cdfda33220c60496accae69fc2ba6810f402bf401325fa9e6423de1604
DARWIN_ARM64_CHECKSUM=SHA2-256(/home/runner/work/godel/godel/out/dist/godel/2.71.0/bin/godel-2.71.0/bin/darwin-arm64/godel)= 8d2fa6537c3743d304da8eb24b2575373fe679aee259a3944ef3a9c4f6b33edb
LINUX_AMD64_CHECKSUM=SHA2-256(/home/runner/work/godel/godel/out/dist/godel/2.71.0/bin/godel-2.71.0/bin/linux-amd64/godel)= d7f87ed45ead287162c089d09e73336b83849bd5bdee194be5419b911dbb13b2
LINUX_ARM64_CHECKSUM=SHA2-256(/home/runner/work/godel/godel/out/dist/godel/2.71.0/bin/godel-2.71.0/bin/linux-arm64/godel)= 58f82e65fc11fe1bd1d19376644573697c98c2122ca00d955ce5473bf42c093d
What did you want to happen?
❯ godelinit
❯ ./godelw version
godel version 2.71.0
❯ vi godelw
#!/bin/bash
set -euo pipefail
# Version and checksums for godel. Values are populated by the godel "dist" task.
VERSION=2.71.0
DARWIN_AMD64_CHECKSUM=a1a7a9cdfda33220c60496accae69fc2ba6810f402bf401325fa9e6423de1604
DARWIN_ARM64_CHECKSUM=8d2fa6537c3743d304da8eb24b2575373fe679aee259a3944ef3a9c4f6b33edb
LINUX_AMD64_CHECKSUM=d7f87ed45ead287162c089d09e73336b83849bd5bdee194be5419b911dbb13b2
LINUX_ARM64_CHECKSUM=58f82e65fc11fe1bd1d19376644573697c98c2122ca00d955ce5473bf42c093d
Also:
❯ ./godelw clean
Error: failed to determine paths to main packages in /Users/spokey/workspace/drawbridge: command [go list -f {{.Name}} {{.ImportPath}} ./...] run in directory /Users/spokey/workspace/drawbridge failed with outputBytes "package ./cmd/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/complex-etcd: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/default-values: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-appconfig: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-commandline: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-consul: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-environment: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-file: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-raw-bytes: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-s3: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-struct: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/read-vault: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/unmarshal: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/examples/unmarshal-flat: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/maps: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/dotenv: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/hcl: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/hjson: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/json: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/nestedtext: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/toml: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/parsers/yaml: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/appconfig: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/basicflag: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/confmap: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/consul: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/env: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/etcd: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/file: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/fs: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/posflag: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/rawbytes: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/s3: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/structs: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/knadh/koanf@v1.4.4/providers/vault: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/mitchellh/copystructure@v1.2.0: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/mitchellh/mapstructure@v1.5.0: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/github.com/mitchellh/reflectwalk@v1.0.2: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/golang.org/x/sys@v0.0.0-20210603081109-ebe580a85c40/cpu: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/golang.org/x/sys@v0.0.0-20210603081109-ebe580a85c40/execabs: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/golang.org/x/sys@v0.0.0-20210603081109-ebe580a85c40/internal/unsafeheader: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/golang.org/x/sys@v0.0.0-20210603081109-ebe580a85c40/unix: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/golang.org/x/sys@v0.0.0-20210603081109-ebe580a85c40/windows/mkwinsyscall: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\npackage ./cmd/pkg/mod/gopkg.in/yaml.v3@v3.0.1: can only use path@version syntax with 'go get' and 'go install' in module-aware mode\n": exit status 1
@SpokeyWheeler thank you for flagging this -- it is a legitimate failure that appears to be caused by either a change in the build system or the way in which hash values are populated in the godelw
script. Will prioritize investigating and fixing/resolving the issue today, and will update once that is done and an update with the fix is available.
The underlying issue is that the logic for trimming the output for SHA-256 hashes generated by openssl
currently only trims the prefix "SHA256": https://github.com/palantir/godel/blob/master/godel/config/dist-plugin.yml#L34
However, per the output above, the prefix appears to be "SHA2-256". The issue is likely caused by the version of openssl
used in the GitHub Action runner changing in a manner that changes this output prefix (consistent with content of godelw
in https://github.com/palantir/godel/releases/download/v2.71.0/godel-2.71.0.tgz).