Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

goreleaser: bump version & add nfmp support #440

Merged
merged 1 commit into from
Feb 26, 2024
Merged

goreleaser: bump version & add nfmp support #440

merged 1 commit into from
Feb 26, 2024

Conversation

Fumesover
Copy link
Contributor

Updating the config file to support goreleaser 1.21.0 (the last version which doesn't require go1.21)

At the same time, I'm adding support for building the deb & rpm packages, it would make the install easier on those systems if you don't have to manually move a binary

For the deb/rpm packages, I'm keeping the normal naming schemes (darwin / amd64 / ...). But for the .tar.gz files, I've kept the packages names as they were

dist folder, on master

~> goreleaser release --snapshot --rm-dist
  • starting release...
  • loading config file         file=.goreleaser.yml
  • loading environment variables
  • getting and validating git state
    • building...                   commit=334e3f56ded7e1872c141d121dd7f30a877e140f     latest tag=v1.8.9
    • pipe skipped                  error=disabled during snapshot mode
  • parsing tag
  • setting defaults
  • snapshotting
    • building snapshot...          version=1.8.9-SNAPSHOT-334e3f5
  • checking distribution directory
    • --rm-dist is set, cleaning it up
  • loading go mod information
  • build prerequisites
  • writing effective config file
    • writing                       config=dist/config.yaml
  • building binaries
    • building                      binary=dist/grpcurl_windows_386/grpcurl.exe
    • building                      binary=dist/grpcurl_linux_amd64_v1/grpcurl
    • building                      binary=dist/grpcurl_linux_ppc64le/grpcurl
    • building                      binary=dist/grpcurl_linux_arm64/grpcurl
    • building                      binary=dist/grpcurl_darwin_arm64/grpcurl
    • building                      binary=dist/grpcurl_linux_s390x/grpcurl
    • building                      binary=dist/grpcurl_darwin_amd64_v1/grpcurl
    • building                      binary=dist/grpcurl_linux_386/grpcurl
    • building                      binary=dist/grpcurl_windows_amd64_v1/grpcurl.exe
    • took: 2s
  • archives
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_arm64.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_32.zip
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_x86_64.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_ppc64le.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_s390x.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_arm64.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_64.zip
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_64.tar.gz
    • creating                      archive=dist/grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_32.tar.gz
    • took: 3s
  • calculating checksums
  • storing release metadata
    • writing                       file=dist/artifacts.json
    • writing                       file=dist/metadata.json
  • release succeeded after 5s

~> tree dist
dist
├── artifacts.json
├── config.yaml
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_checksums.txt
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_arm64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_ppc64le.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_s390x.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_32.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_arm64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_x86_64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_32.zip
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_64.zip
├── grpcurl_darwin_amd64_v1
│   └── grpcurl
├── grpcurl_darwin_arm64
│   └── grpcurl
├── grpcurl_linux_386
│   └── grpcurl
├── grpcurl_linux_amd64_v1
│   └── grpcurl
├── grpcurl_linux_arm64
│   └── grpcurl
├── grpcurl_linux_ppc64le
│   └── grpcurl
├── grpcurl_linux_s390x
│   └── grpcurl
├── grpcurl_windows_386
│   └── grpcurl.exe
├── grpcurl_windows_amd64_v1
│   └── grpcurl.exe
└── metadata.json

10 directories, 22 files

dist folder, after those changes

~> goreleaser release --snapshot --clean
  • starting release...
  • loading                                          path=.goreleaser.yml
  • skipping announce, publish and validate...
  • loading environment variables
  • getting and validating git state
    • git state                                      commit=c6f0c050d2f3f610f8c6cbabd631722748caffdd branch=goreleaser-nfpms current_tag=v1.8.9 previous_tag=v1.8.8 dirty=true
    • pipe skipped                                   reason=disabled during snapshot mode
  • parsing tag
  • setting defaults
  • snapshotting
    • building snapshot...                           version=1.8.9-SNAPSHOT-c6f0c05
  • checking distribution directory
    • cleaning dist
  • loading go mod information
  • build prerequisites
  • writing effective config file
    • writing                                        config=dist/config.yaml
  • building binaries
    • building                                       binary=dist/grpcurl_windows_386/grpcurl.exe
    • building                                       binary=dist/grpcurl_darwin_arm64/grpcurl
    • building                                       binary=dist/grpcurl_linux_s390x/grpcurl
    • building                                       binary=dist/grpcurl_darwin_amd64_v1/grpcurl
    • building                                       binary=dist/grpcurl_windows_amd64_v1/grpcurl.exe
    • building                                       binary=dist/grpcurl_linux_ppc64le/grpcurl
    • building                                       binary=dist/grpcurl_linux_386/grpcurl
    • building                                       binary=dist/grpcurl_linux_amd64_v1/grpcurl
    • building                                       binary=dist/grpcurl_linux_arm64/grpcurl
    • took: 2s
  • archives
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_windows_x86_64.zip
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_ppc64le.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_osx_arm64.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_s390x.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_arm64.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_x86_32.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_osx_x86_64.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_x86_64.tar.gz
    • creating                                       archive=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_windows_x86_32.zip
    • took: 3s
  • linux packages
    • creating                                       package=grpcurl format=rpm arch=arm64 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_arm64.rpm
    • creating                                       package=grpcurl format=rpm arch=s390x file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_s390x.rpm
    • creating                                       package=grpcurl format=rpm arch=ppc64le file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_ppc64le.rpm
    • creating                                       package=grpcurl format=rpm arch=amd64v1 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_amd64.rpm
    • creating                                       package=grpcurl format=deb arch=amd64v1 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_amd64.deb
    • creating                                       package=grpcurl format=deb arch=arm64 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_arm64.deb
    • creating                                       package=grpcurl format=deb arch=ppc64le file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_ppc64le.deb
    • creating                                       package=grpcurl format=deb arch=386 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_386.deb
    • creating                                       package=grpcurl format=deb arch=s390x file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_s390x.deb
    • creating                                       package=grpcurl format=rpm arch=386 file=dist/grpcurl_1.8.9-SNAPSHOT-c6f0c05_linux_386.rpm
    • took: 1s
  • calculating checksums
  • storing release metadata
    • writing                                        file=dist/artifacts.json
    • writing                                        file=dist/metadata.json
  • release succeeded after 6s
  • thanks for using goreleaser!



~> tree
dist
├── artifacts.json
├── config.yaml
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_checksums.txt
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_386.deb
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_386.rpm
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_amd64.deb
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_amd64.rpm
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_arm64.deb
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_arm64.rpm
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_arm64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_ppc64le.deb
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_ppc64le.rpm
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_ppc64le.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_s390x.deb
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_s390x.rpm
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_s390x.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_32.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_linux_x86_64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_arm64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_osx_x86_64.tar.gz
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_32.zip
├── grpcurl_1.8.9-SNAPSHOT-334e3f5_windows_x86_64.zip
├── grpcurl_darwin_amd64_v1
│   └── grpcurl
├── grpcurl_darwin_arm64
│   └── grpcurl
├── grpcurl_linux_386
│   └── grpcurl
├── grpcurl_linux_amd64_v1
│   └── grpcurl
├── grpcurl_linux_arm64
│   └── grpcurl
├── grpcurl_linux_ppc64le
│   └── grpcurl
├── grpcurl_linux_s390x
│   └── grpcurl
├── grpcurl_windows_386
│   └── grpcurl.exe
├── grpcurl_windows_amd64_v1
│   └── grpcurl.exe
└── metadata.json

{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}x86_32
{{- else }}{{ .Arch }}{{ end }}
{{- with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you unpack this a little? Is there some default value that you're overriding, which changed in between the goreleaser versions?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or is this just the new way to do replacements?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the new way of doing replacements, and I took the default name_template for binaries, while updating it with the required if/else to make it work exactly like it was before

id: nfpms
formats:
- deb
- rpm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dumb question but... is this PR going to cause us to try to publish these? Or just build them locally?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not going to publish them, it's only going to build the packages. The step of submitting them would be distribution-specific

@dragonsinth dragonsinth merged commit 93ea011 into fullstorydev:master Feb 26, 2024
6 checks passed
bungle added a commit to Kong/kong that referenced this pull request Apr 23, 2024
### Summary

### v1.9.1

- Update Dockerfile to use Go v1.21 (fullstorydev/grpcurl#455)
- chore: fix some typos in comments (fullstorydev/grpcurl#454)

### v1.9.0

- Use latest protoreflect to fix some bugs (fullstorydev/grpcurl#453)
- Brand name update (fullstorydev/grpcurl#452)
- Bump github.com/golang/protobuf from 1.5.3 to 1.5.4 (fullstorydev/grpcurl#448)
- goreleaser: bump version & add nfmp support fullstorydev/grpcurl#440)
- Enable xDS credentials (fullstorydev/grpcurl#424)
- Bump github.com/jhump/protoreflect from 1.15.5 to 1.15.6 (fullstorydev/grpcurl#446)
- Use localhost for default unix domain socket authority (fullstorydev/grpcurl#445)
- Bump github.com/jhump/protoreflect from 1.15.4 to 1.15.5 (fullstorydev/grpcurl#443)
- Added initial support for -t flag to show timings (fullstorydev/grpcurl#428)
- Expand the documentation of -max-time to clarify this sets the RPC timeout (fullstorydev/grpcurl#435)
- Bump github.com/jhump/protoreflect from 1.15.3 to 1.15.4 (fullstorydev/grpcurl#436)
- Bump google.golang.org/protobuf from 1.31.0 to 1.32.0 (fullstorydev/grpcurl#437)
- indent: rip out old go 1.9 support
- Bump golang.google.org/grpc to v1.57.1 (fullstorydev/grpcurl#427)
- Update Tarball URL used by Homebrew (fullstorydev/grpcurl#421)

#### v1.8.9

- Disable CGO for improved compatibility across distros (fullstorydev/grpcurl#420)
- Bump golang.org/x/net from 0.9.0 to 0.17.0 (fullstorydev/grpcurl#419)
- SIGSEGV: panic: runtime error: invalid memory address or nil pointer dereference in protoreflect (fullstorydev/grpcurl#416)
- Added alts credential option (fullstorydev/grpcurl#341)

#### v1.8.8

- Update go.mod, goreleaser for v1.8.8 (fullstorydev/grpcurl#413)
- Run tests on Go 1.21 (fullstorydev/grpcurl#408)
- Update protoreflect v1.15.2 and grpc v1.57.0 (fullstorydev/grpcurl#406)
- Use grpc.reflection.v1.ServerReflection (fullstorydev/grpcurl#407)
- Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (fullstorydev/grpcurl#401)
- Bump google.golang.org/grpc from 1.55.0 to 1.56.1 (fullstorydev/grpcurl#400)
- Fix issues with error details (fullstorydev/grpcurl#379)
- fix nil-dereference panic (fullstorydev/grpcurl#395)
- Bump google.golang.org/grpc from 1.54.0 to 1.55.0 (fullstorydev/grpcurl#390)
- Add "checkgenerate" make target to CI (fullstorydev/grpcurl#385)
- Bump google.golang.org/grpc from 1.53.0 to 1.54.0 (fullstorydev/grpcurl#383)
- Bump google.golang.org/protobuf from 1.29.1 to 1.30.0 (fullstorydev/grpcurl#378)
- Bump google.golang.org/protobuf from 1.29.0 to 1.29.1 (fullstorydev/grpcurl#376)
- Bump google.golang.org/protobuf from 1.28.1 to 1.29.0 (fullstorydev/grpcurl#375)
- Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 (fullstorydev/grpcurl#374)
- Bump google.golang.org/grpc from 1.52.3 to 1.53.0 (fullstorydev/grpcurl#370)
- Install the CodeSee workflow. Learn more at https://docs.codesee.io (fullstorydev/grpcurl#368)
- Bump google.golang.org/grpc from 1.51.0 to 1.52.3 (fullstorydev/grpcurl#365)
- Bump github.com/jhump/protoreflect from 1.14.0 to 1.14.1 (fullstorydev/grpcurl#361)
- Bump google.golang.org/grpc from 1.50.1 to 1.51.0 (fullstorydev/grpcurl#348)
- fix funcname in comment (fullstorydev/grpcurl#346)
- Bump github.com/jhump/protoreflect from 1.13.0 to 1.14.0 (fullstorydev/grpcurl#343)
- Bump google.golang.org/grpc from 1.50.0 to 1.50.1 (fullstorydev/grpcurl#338)
- Bump google.golang.org/grpc from 1.49.0 to 1.50.0 (fullstorydev/grpcurl#336)
- Bump github.com/jhump/protoreflect from 1.12.0 to 1.13.0 (fullstorydev/grpcurl#335)
- Bump google.golang.org/grpc from 1.48.0 to 1.49.0 (fullstorydev/grpcurl#330)
- fixup release process (fullstorydev/grpcurl#328)

#### v1.8.7

- Unix sockets for windows
- Lots of dependency version updates
- Support for Go 1.18
- Add go 1.18 support; set Dockerfile to go 1.18 (fullstorydev/grpcurl#325)
- build alpine base image (fullstorydev/grpcurl#311)
- fix some typos (fullstorydev/grpcurl#314)
- Bump google.golang.org/grpc from 1.47.0 to 1.48.0 (fullstorydev/grpcurl#324)
- Adding power(ppc64le) arch support (fullstorydev/grpcurl#296)
- Enable support for Unix sockets for Windows by enabling -unix flag for Windows builds. (fullstorydev/grpcurl#317)
- Bump google.golang.org/grpc from 1.46.2 to 1.47.0 (fullstorydev/grpcurl#315)
- Bump github.com/jhump/protoreflect from 1.10.3 to 1.12.0 (fullstorydev/grpcurl#294)
- Bump google.golang.org/grpc from 1.44.0 to 1.46.2 (fullstorydev/grpcurl#310)
- Bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (fullstorydev/grpcurl#298)
- use newer goreleaser (fullstorydev/grpcurl#293)
- Restore support for linux/s390x for the next release. (fullstorydev/grpcurl#292)
- Bump google.golang.org/protobuf from 1.26.0 to 1.27.1 (fullstorydev/grpcurl#288)

#### v1.8.6

- Some bugs have been addressed in the library used to parse proto source files.
  Previously grpcurl would accept proto source files that could not actually be compiled with protoc.
  The converse could also happen: grpcurl could reject some proto source files that could successfully
  be compiled with protoc. More details can be found in the release notes for the changes to
  the protoparse library, versions v1.10.2 and v1.10.3.
- Some implementations of the server reflection service have been observed to return multiple
  (even superfluous) file descriptors, in response to requests made by grpcurl. These extra files,
  if not returned in a particular order, would cause grpcurl to report an error that the service
  or method to be invoked could be not be resolved. The reflection client in grpcurl is now more
  robust to this condition and can handle responses with file descriptors in any order, so it should
  be interoperable with a larger variety of servers.
- When a request message includes a field of type google.protobuf.Value and a value for that field
  that was a JSON array, grpcurl would incorrectly interpret the JSON array as if it were a single
  atomic value, the last value that was in the array. This has been fixed.
- When a response message includes non-printable characters or code points outside the ASCII 7-bit
  range in the name of a field in a JSON object, it could be improperly encoded with escape characters
  that are not valid JSON. Standard tools/libraries could then fail to parse the JSON output from grpcurl.
  This has been fixed.

Signed-off-by: Aapo Talvensaari <aapo.talvensaari@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants