palantir / godel

Go tool for formatting, checking, building, distributing and publishing projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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).