Skip to content

Releases: bufbuild/buf

v1.15.0

28 Feb 18:36
a0ffc31
Compare
Choose a tag to compare
  • Update built-in Well-Known Types to Protobuf v22.0.
  • Fixes a bug in buf format where C-style block comments in which every line includes a prefix (usually "*") would be incorrectly indented.
  • Add --private-network flag to buf beta studio-agent to support handling CORS requests from Studio on private networks that set the Access-Control-Request-Private-Network header.

v1.14.0

09 Feb 18:55
954dc0d
Compare
Choose a tag to compare
  • Replace buf generate --include-types with buf generate --type for consistency. --include-types is now deprecated but continues to work, consistent with our compability guarantee.
  • Include type references in google.protobuf.Any messages in option values when filtering on type, e.g. with buf build --type or buf generate --type.
  • Allow specifying a specific protoc path in buf.gen.yaml when using protoc's built-in plugins via the new protoc_path option.
  • Allow specifying arguments for local plugins in buf.gen.yaml. You can now do e.g. path: ["go, "run", ./cmd/protoc-gen-foo] in addition to path: protoc-gen-foo.
  • Add optional name parameter to buf mod init, e.g. buf mod init buf.build/owner/foobar.
  • Fix issue with php_metadata_namespace file option in managed mode.
  • Make all help documentation much clearer. If you notice any inconsistencies, let us know.

v1.13.1

27 Jan 20:37
e63c47b
Compare
Choose a tag to compare
  • Fix race condition with buf generate when remote plugins from multiple BSR instances are being used at once.

v1.13.0

26 Jan 21:49
c0c42cd
Compare
Choose a tag to compare
  • Extend the BUF_TOKEN environment variable to accept tokens for multiple
    BSR instances. Both TOKEN and TOKEN1@BSRHOSTNAME1,TOKEN2@BSRHOSTNAME2,...
    are now valid values for BUF_TOKEN.
  • Remove buf beta convert in favor of the now-stable buf convert.

v1.12.0

12 Jan 18:36
58ba9bb
Compare
Choose a tag to compare
  • Add buf curl command to invoke RPCs via Connect, gRPC, or gRPC-Web
  • Introduce objc_class_prefix option in managed mode, allowing a default value for objc_class_prefix for all files, except and override, which both behave similarly to other except and override options. Specifying an empty default value is equivalent to having managed mode on in previous versions.
  • Introduce ruby_package option in managed mode, allowing except and override, in the same style as objc_class_prefix. Leaving ruby_package unspecified has the same effect as having mananged mode enabled in previous versions.

v1.11.0

19 Dec 18:15
b6d1820
Compare
Choose a tag to compare
  • buf generate now batches remote plugin generation calls for improved performance.
  • Update optimize_for option in managed mode, allowing a default value for optimize_for for all files, except and override, which both behave similarly to other except and override options. Specifying an optimize_for value in the earlier versions is equivalent to having a optimize_for with that value as default.

v1.10.0

07 Dec 19:20
ebb191e
Compare
Choose a tag to compare
  • When using managed mode, setting enabled: false now no longer fails buf generate and instead prints a warning log and ignores managed mode options.
  • Add csharp_namespace option to managed mode, allowing except, which excludes modules from managed mode, and override, which specifies csharp_namespace values per module, overriding the default value. By default, when managed mode is enabled, csharp_namespace is set to the package name with each package sub-name capitalized.
  • Promote buf convert to stable, keep buf beta convert aliased in the beta command.
  • Add Types filter to buf generate command to specify types (message, enum, service) that should be included in the image. When specified, the resulting image will only include descriptors to describe the requested types.

v1.9.0

19 Oct 19:25
0d39fac
Compare
Choose a tag to compare
  • New compiler that is faster and uses less memory than the outgoing one.
    • When generating source code info, the new compiler is 20% faster, and allocates 13% less memory.
    • If not generating source code info, the new compiler is 50% faster and allocates 35% less memory.
    • In addition to allocating less memory through the course of a compilation, the new compiler releases some memory much earlier, allowing it to be garbage collected much sooner. This means that by the end of a very large compilation process, less than half as much memory is live/pinned to the heap, decreasing overall memory pressure.
  • The new compiler also addresses a few bugs where Buf would accept proto sources that protoc would reject:
    • In proto3 files, field and enum names undergo a validation that they are sufficiently different so that there will be no conflicts in JSON names.
    • Fully-qualified names of elements (like a message, enum, or service) may not conflict with package names.
    • A oneof or extend block may not contain empty statements.
    • Package names may not be >= 512 characters in length or contain > 100 dots.
    • Nesting depth of messages may not be > 32.
    • Field types and method input/output types may not refer to synthetic map entry messages.
  • Push lint and breaking configuration to the registry.
  • Include LICENSE file in the module on buf push.
  • Formatter better edits/preserves whitespace around inline comments.
  • Formatter correctly indents multi-line block (C-style) comments.
  • Formatter now indents trailing comments at the end of an indented block body (including contents of message and array literals and elements in compact options) the same as the rest of the body (instead of out one level, like the closing punctuation).
  • Formatter uses a compact, single-line representation for array and message literals in option values that are sufficiently simple (single scalar element or field).
  • buf beta convert flags have changed from --input to --from and --output/-o to --to
  • Fully qualified type names now must be passed to the input argument and --type flag separately

v1.8.0

14 Sep 17:07
Compare
Choose a tag to compare
  • Change default for --origin flag of buf beta studio-agent to https://studio.buf.build
  • Change default for --timeout flag of buf beta studio-agent to 0 (no timeout). Before it was 2m (the default for all the other buf commands).
  • Add support for experimental code generation with the plugin: key in buf.gen.yaml.
  • Preserve single quotes with buf format.
  • Support junit format errors with --error-format.

v1.7.0

27 Jul 22:41
Compare
Choose a tag to compare
  • Support protocol and encoding client options based on content-type in Studio Agent.
  • Add --draft flag to buf push.
  • Add buf beta registry draft {list,delete} commands.