Prototool Versions Save

Your Swiss Army Knife for Protocol Buffers

v1.10.0

3 years ago
  • Document all lint rules and their group memberships (#548)
  • Add walk-timeout command line flag (#545)
  • Fix directory structure example in Style Guide (#543)
  • Add linter for ruby_package file option
  • Update Prototool deps
  • Update Prototool to go 1.14 and protoc 3.11.0
  • Use a more stable build of Alpine as a base image
  • Fix minor typos in style guide (#535)
  • Added a regex check for a release candidate syntax in the protobuf version. If it exists, remove the hyphen for the version portion of the URL (#515)

v1.9.0

4 years ago
  • Updated dependencies for Go 1.13

v1.8.0

4 years ago
  • Update the default protoc version to 3.8.0.
  • Parse updated protoc output for 3.8.0.
  • Fix issue where there were an unbounded number of protoc calls were being executed.

v1.7.0

5 years ago
  • Fix issue where config init --document produced an invalid YAML file.
  • Dependency updates.

v1.6.0

5 years ago
  • Dynamically resolve google.protobuf.Any values for gRPC error details.

v1.5.0

5 years ago
  • Add linters for enum field and message field comments. These linters are not part of any lint group but can be manually added in a configuration file.
  • Add --generate-ignores flag to the lint command to print out the value for lint.ignores that will allow lint to pass. This is useful when migrating to a set of lint rules, usually a lint group.
  • Update the default version of protoc to 3.7.1.

v1.4.0

5 years ago
  • Add concept of lint groups. The default lint group is named uber1. The lint group can be specified with the lint.group option.
  • New uber2 lint group and associated V2 Style Guide representing the second version of our lint rules. These rules are almost entirely a superset of the V1 Style guide lint rules. If lint.group is set to uber2, this also will affect the create and format commands, as the uber2 lint group adds more file options to more closely match the Google Cloud APIs File Structure and changes the value of go_package to take versions into account. In total, 39 lint rules have been added as compared to the uber1 lint group.
  • New google lint group representing Google's minimal Style Guide.
  • Add --list-lint-group flag to the lint command to list a lint group's rules.
  • Add --diff-lint-groups flag to the lint command to print the diff between two lint groups.
  • Add descriptor-set command to output a merged FileDescriptorSet with all files compiled to either stdout, a given file, or a temporary file. Useful with external tools that use FileDescriptorSets, and also useful for inspection if the --json flag is given.
  • Add breaking change detector as the break check command. By default, this compiles your existing Protobuf definitions, and then does a shallow clone of your git repository against the default branch and compiles the definitions on that branch, and compares the existing versus the branch. The branch can be controlled with the --git-branch flag, and one can use a FileDescriptorSet instead of a shallow clone by generating a file with break descriptor-set and then passing the path to this file to break check with the --descriptor-set-path flag.
  • A Docker image is now provided on Docker Hub as uber/prototool which provides an environment with commonly-used plugins.
  • Switch to Golang Modules for dependency management.
  • Add Bazel build files and bazel/deps.bzl to allow Prototool to be easily built within a Bazel workspace.
  • Add lint.file_header option to allow a file header to be specified. This affects lint, format, and create.
  • Allow generate.plugins.path to be relative. If a relative path is given, Prototool will search your PATH for the specified executable.
  • Add generate.plugins.file_suffix option that allows for JAR generation with the built-in java plugin, and FileDescriptorSet generation with the built-in descriptor_set plugin.
  • Add generate.plugins.include_imports and generate.plugins.include_source_info to be used with the built-in descriptor_set plugin.
  • Add cache top-level command to allow management of the protoc cache.
  • Add x top-level command for experimental functionality.
  • Add inspect command under x with Protobuf inspection capabilities.
  • Add --error-format flag to allow specific error fields to be printed.
  • Allow the protoc binary and WKT paths to be controlled by the environment variables PROTOTOOL_PROTOC_BIN_PATH and PROTOTOOL_PROTOC_WKT_PATH in addition to the existing --protoc-bin-path and --protoc-wkt-path flags. The flags take precedence. This is especially useful for Docker images.
  • Add file locking around the protoc downloader to eliminate concurrency issues where multiple prototool invocations may be accessing the cache at the same time.
  • Add TLS support to the grpc command.
  • Add --details flag to the grpc command to output headers, trailers, and statuses as well as the responses.
  • Unix domain sockets can now be specified for the --address flag of the grpc command via the prefix unix://.

v1.3.0

5 years ago

Added

  • Accept prototool.json files for configuation in addition to prototool.yaml files.
  • Add --config-data flag.
  • Add --protoc-bin-path and --protoc-wkt-path flags to manually set the paths for where protoc is run and where the Well-Known Types are included from.

v1.2.0

5 years ago

Added

  • Add json flag to all, compile, format, generate and lint commands.

v1.1.0

5 years ago
  • Add support for Homebrew builds.