Releases: bufbuild/buf
Releases · bufbuild/buf
v1.15.0
- 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 tobuf beta studio-agent
to support handling CORS requests from Studio on private networks that set theAccess-Control-Request-Private-Network
header.
v1.14.0
- Replace
buf generate --include-types
withbuf 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. withbuf build --type
orbuf generate --type
. - Allow specifying a specific
protoc
path inbuf.gen.yaml
when usingprotoc
's built-in plugins via the newprotoc_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 topath: 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
- Fix race condition with
buf generate
when remote plugins from multiple BSR instances are being used at once.
v1.13.0
- Extend the
BUF_TOKEN
environment variable to accept tokens for multiple
BSR instances. BothTOKEN
andTOKEN1@BSRHOSTNAME1,TOKEN2@BSRHOSTNAME2,...
are now valid values forBUF_TOKEN
. - Remove
buf beta convert
in favor of the now-stablebuf convert
.
v1.12.0
- Add
buf curl
command to invoke RPCs via Connect, gRPC, or gRPC-Web - Introduce
objc_class_prefix
option in managed mode, allowing adefault
value forobjc_class_prefix
for all files,except
andoverride
, which both behave similarly to otherexcept
andoverride
options. Specifying an emptydefault
value is equivalent to having managed mode on in previous versions. - Introduce
ruby_package
option in managed mode, allowingexcept
andoverride
, in the same style asobjc_class_prefix
. Leavingruby_package
unspecified has the same effect as having mananged mode enabled in previous versions.
v1.11.0
buf generate
now batches remote plugin generation calls for improved performance.- Update
optimize_for
option in managed mode, allowing adefault
value foroptimize_for
for all files,except
andoverride
, which both behave similarly to otherexcept
andoverride
options. Specifying anoptimize_for
value in the earlier versions is equivalent to having aoptimize_for
with that value as default.
v1.10.0
- When using managed mode, setting
enabled: false
now no longer failsbuf generate
and instead prints a warning log and ignores managed mode options. - Add
csharp_namespace
option to managed mode, allowingexcept
, which excludes modules from managed mode, andoverride
, which specifiescsharp_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, keepbuf beta convert
aliased in the beta command. - Add
Types
filter tobuf 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
- 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 onbuf 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
- Change default for
--origin
flag ofbuf beta studio-agent
tohttps://studio.buf.build
- Change default for
--timeout
flag ofbuf beta studio-agent
to0
(no timeout). Before it was2m
(the default for all the otherbuf
commands). - Add support for experimental code generation with the
plugin:
key inbuf.gen.yaml
. - Preserve single quotes with
buf format
. - Support
junit
format errors with--error-format
.