@bufbuild/buf-darwin-x64
Advanced tools
Changelog
[v1.32.2] - 2024-05-28
buf generate
to warn instead of error when proto3 optional is required but not
supported by a plugin.Changelog
[v1.32.1] - 2024-05-21
--path
and --exclude-path
paths are relative to
the #subdir
rather than the root of the input. This fixes an unintended behavior change
that was introduced in v1.32.0
.module
input for protoc-gen-buf-lint
and protoc-gen-buf-breaking
to allow
users to specify the module for v2
configuration files.Changelog
[v1.32.0] - 2024-05-16
v2
for buf.yaml
and buf.gen.yaml
configuration files.buf config migrate
to migrate configuration files to the latest version (now v2
).buf mod init
to buf config init
. buf mod init
is now deprecated.buf mod ls-lint-rules
to buf config ls-lint-rules
. buf mod ls-lint-rules
is now
deprecated.buf mod ls-breaking-rules
to buf config ls-breaking-rules
. buf mod ls-breaking-rules
is now deprecated.buf mod prune
to buf dep prune
. buf mod prune
is now deprecated.buf mod update
to buf dep update
. buf mod update
is now deprecated.buf mod {clear-cache,cc}
to buf registry cc
. buf mod {clear-cache,cc}
is now
deprecated.buf beta graph
to stable as buf dep graph
.buf push --create-visibility
to private
when the --create
flag is set. Users are no longer required to set --create-visibility
when running
buf push --create
.buf push --label
, which allows users to set labels when pushing new commits to the BSR.buf push --source-control-url
, which allows users to associate commits pushed to the BSR
with a URL to a source code repository.buf push --create-default-label
, which allows users to set a default label for a repository
when calling buf push --create
.buf push --git-metadata
, which automatically sets appropriate --label
,
--source-control-url
, and --create-default-label
flags based on the current Git repository.buf convert --validate
to apply protovalidate
rules to incoming messages specified with --from
.buf mod open
.buf beta migrate-v1beta1
This is now replaced with buf config migrate
.buf registry sdk version
to get the version of a Generated SDK for a module and plugin.buf beta registry archive
and buf beta registry unarchive
commands for archiving and
unarchiving labels on the BSR.buf
to be used with sources that use edition
2023, instead of proto2 or proto3 syntax. This also updates the protoc-gen-buf-breaking
and
protoc-gen-buf-lint
Protobuf plugins to support files that use edition 2023.buf breaking
rules to work with Protobuf Editions. To support Editions, some rules have
been deprecated and replaced with Editions-aware rules. All deprecated rules continue to work
for existing users.
FIELD_SAME_CTYPE
has been replaced with FIELD_SAME_CPP_STRING_TYPE
, which considers both
ctype
field options and new (pb.cpp).string_type
features when deciding on backwards
compatibility.FIELD_SAME_LABEL
has been replaced with three rules that all check "cardinality". The new
rules can distinguish between maps and other repeated fields and between implicit and explicit
field presence. The new rules are:
FIELD_SAME_CARDINALITY
in the FILE
and PACKAGE
categories.FIELD_WIRE_COMPATIBLE_CARDINALITY
in the WIRE
category.FIELD_WIRE_JSON_COMPATIBLE_CARDINALITY
in the WIRE_JSON
category.FILE_SAME_JAVA_STRING_CHECK_UTF8
has been replaced with FIELD_SAME_JAVA_UTF8_VALIDATION
,
which considers both the java_string_check_utf8
file option and (pb.java).utf8_validation
features when deciding on backwards compatibility.FILE_SAME_SYNTAX
rule with a few related rules that can catch the same
sort of compatibility issues, but in an Editions source file that changes feature values:
MESSAGE_SAME_JSON_FORMAT
and ENUM_SAME_JSON_FORMAT
catch changes to the json_format
feature, which controls whether support for the JSON format is best-effort or properly
supported. When supported, the compiler performs more checks relating to field name
collisions for the JSON format as well as for FieldMask usage.FIELD_SAME_UTF8_VALIDATION
catches changes to the utf8_validation
feature, which
controls validation of string values.ENUM_SAME_TYPE
catches changes to an enum's type, open vs. closed.buf breaking
. All existing rules for fields are now applied to
extensions, except for FIELD_NO_DELETE
(and its variants). There are also new
EXTENSION_NO_DELETE
and PACKAGE_EXTENSION_NO_DELETE
rules for catching deletions of an
extension. The new rules are not active by default in existing v1
and v1beta1
configurations, for backwards-compatibility reasons. Migrate your config to v2
to use them.buf lint
. It previously only checked extensions that
were defined inside of messages.FIELD_NOT_REQUIRED
lint rule that prevents use of required in proto2 files and of
features.field_presence = LEGACY_REQUIRED
in Editions files. This new rule is not active by
default in existing v1
and v1beta1
configurations, for backwards-compatibility reasons.
Migrate your config to v2
to use them.Changelog
[v1.30.1] - 2024-04-03
buf lint
incorrectly reports an error for (buf.validate.field).repeated
is set for a repeated validation rule.Changelog
[v1.30.0] - 2024-03-07
buf generate
so it populates the recently-added
source_file_descriptors
field of the CodeGeneratorRequest
message. This provides the plugin with access to options
that are configured to only be retained in source and not at runtime (via
field option).
Descriptors in the proto_file
field will not include any options configured this way
for the files named in file_to_generate
field.--exclude-source-retention-options
flag to buf build
, which
causes options configured to only be retained in source to be stripped
from the output descriptors.Changelog
[v1.29.0] - 2024-01-24
yaml
format. All commands that take image inputs, output images,
or convert between message formats, now take yaml
as a format, in addition to
the existing binpb
and txtpb
formats. Some examples:
buf build -o image.yaml
buf ls-files image.yaml
buf convert --type foo.Bar --from input.binpb --to output.yaml
yaml
and json
formats now accept two new options: use_proto_names
and
use_enum_numbers
. This affects output serialization. Some examples:
buf convert --type foo.Bar --from input.binpb --to output.yaml#use_proto_names=true
buf convert --type foo.Bar --from input.binpb --to -#format=yaml,use_enum_numbers=true
buf format
would inadvertently mangle files that used
the expanded Any
syntax
in option values.Changelog
[v1.28.1] - 2023-11-15
buf curl
command has been updated to support the use of multiple schemas.
This allows users to specify multiple --schema
flags and/or to use both --schema
and --reflect
flags at the same time. The result is that additional sources can
be consulted to resolve an element. This can be useful when the result of an RPC
contains extensions or values in google.protobuf.Any
messages that are not defined
in the same schema that defines the RPC service.buf lint
incorrectly reports error when (buf.validate.field).required
is set for an optional field in proto3.Changelog
[v1.28.0] - 2023-11-10
buf lint
will now verify that your protovalidate rules are valid. A single rule PROTOVALIDATE
has been
added to the DEFAULT
group - given that protovalidate is net new, this does not represent
a breaking change.buf beta price
with the latest pricing information.buf.lock
with dependencies with b1 or b3 digests. b1 and b3
digests will be deprecated in a future version. Run buf mod update
to update dependency digests.