The proper `v1` gRPC reflection has been around for a bit.
The "client auto" mechanism still supports falling back to `v1alpha`.
Not many support the `v1`, but we should default to it when possible.
* Revises the sections that talk about descriptor sources, making them more consistent.
* Adds a link to the Gophercon 2018 talk on grpcurl.
* Improve installation section, mentioning versioned Go.
* add goreleaser
Add a goreleaser configuration file that builds binaries for Linux,
MacOS and Windows, for 32bit (x86/386) and 64bit (x64/amd64). The
binaries will be archived into a tar.gz/zip file along with the LICENSE
file.
The `dist/` directory will be written to by goreleaser with the binaries
during the build process, so it's also been added to .gitignore.
To build all the binaries and release them to GitHub:
1. Tag the release. e.g. `git tag -a v1.0.0 -m 'First release'`
2. Generate a GitHub Personal Access Token. See https://github.com/settings/tokens.
3. Push the release to GitHub. e.g. `git push origin v1.0.0`
4. Make the release, which will publish binaries to the GitHub "Releases" page. e.g. `GITHUB_TOKEN=xxxxxxx... make release`
* add -version flag
Run `grpcurl -version` to see the release version. Use `make install` to build a binary that shows the version based on current git hash (which will show a version number if HEAD is a release tag and otherwise uses `git describe` to summarize the version).
Service reflection has very poor SEO and unfortunately not great discoverability. Since this package is an entry-point for service reflection, this helps make the process of finding this information easier.