- No changes yet.
v1.68.2 - 2026-04-17
- Fix build failures for modules with a vendored
descriptor.proto. - Fix LSP incorrectly reporting "edition '2024' not yet fully supported" errors.
- Fix CEL compilation error messages in
buf lintto use the structured error API instead of parsing cel-go's text output. - Add
--debug-addressflag tobuf lsp serveto provide debug and profile support.
v1.68.1 - 2026-04-14
- Revert the use of the new compiler report format and properly ungate Editions 2024 features.
- Fix absolute imports (leading-dot) marked unused in diagnostics.
v1.68.0 - 2026-04-14
- Use new compiler for build process and support Editions 2024 features.
- Add LSP document links for
buf.yamldeps,buf.gen.yamlremote plugins and input modules,buf.policy.yamlname and BSR plugins, andbuf.lockdep names, making each a clickable link to its BSR page. - Add LSP code lenses for
buf.yamlfiles to update all dependencies (buf.dep.updateAll) or check for available updates (buf.dep.checkUpdates). - Improve shell completions for
bufflags with fixed value sets and file/directory arguments. - Add
buf curlURL path shell completions (service and method names) via server reflection,--schema, or the local buf module. - Add support for Edition 2024 syntax to
buf format. - Fix
buf generate --cleandeleting files from nested plugin output directories.
v1.67.0 - 2026-04-01
- Fix LSP not skipping
buf.build/docslinks for lint rules from check plugins and policies. - Fix
buf dep graph --format jsonsilently dropping dependencies when a dependency was already seen. - Add support for
--rbs_outas aprotoc_builtinplugin (requires protoc v34.0+). - Add relevant links from CEL LSP hover documentation to either <celbyexample.com> or <protovalidate.com>
- Add OpenBSD and FreeBSD release binaries for amd64 and arm64.
- Skip writing unchanged output files in
buf generateto preserve modification times - Update
buf beta registry plugin deleteto prompt the user for deletion, matching the UX of the other deletion commands. Use--forceto restore the old behavior.
v1.66.1 - 2026-03-09
- Fix
exclude_typesinbuf generatedropping transitive dependencies of import files retained for their extension fields.
v1.66.0 - 2026-02-23
- Add LSP comment ignore code action to add comment ignores for lint errors.
- Fix buf breaking module comparison when adding new modules.
- Add LSP hover support for protovalidate CEL expressions.
- Fixed offset handling in CEL semantic tokens for non-ASCII content and proto escape sequences in multi-line string literal expressions.
- Improve URI normalization for the LSP.
v1.65.0 - 2026-02-03
- Add
buf registry policy {commit,create,delete,info,label,settings}commands to manage BSR policies. - Add LSP deprecate code action to add the deprecated option on types and symbols.
- Fix import LSP document link to not include
importkeyword. - Update
PROTOVALIDATElint rule to support checking unenforceablerequiredrules onrepeated.items,map.keysandmap.values. - Add
buf source edit deprecatecommand to deprecate types by setting thedeprecate = trueoption.
v1.64.0 - 2026-01-19
- Fix LSP completion for options.
- Add LSP document highlighting support.
- Add LSP completion for fully-qualified type references.
- Improve LSP semantic tokens implementation (for syntax highlighting).
- Add LSP organize imports code action to add missing imports, remove unused imports, and sort imports alphabetically.
- Add LSP document link support.
- Add LSP folding range support.
- Update
PROTOVALIDATElint rule to support checkingcel_expressionfields for valid CEL.
v1.63.0 - 2026-01-06
- Update
PROTOVALIDATElint rule to support field mask rules. - Add LSP completion for field numbers.
v1.62.1 - 2025-12-29
- Fix default behavior for
swift_prefixto remain unset when no override is provided in managed mode.
v1.62.0 - 2025-12-29
- Add
swift_prefixto managed mode. - Add
textDocument/renameandtextDocument/prepareRenamesupport forbuf lsp serve. - Fix panic in LSP for empty option paths.
- Fix support for multi-arch image manifests for
buf beta registry plugin push.
v1.61.0 - 2025-11-25
- Disable format on unknown or invalid syntax.
- Fix regression in LSP functionality for well-known types.
- Fix browser open for
buf registry loginin WSL2. - Fix panic in LSP for EOF lookups.
- Fix
--createflag forbuf pushto avoid errors on already existing modules if create is disallowed.
v1.60.0 - 2025-11-14
- Fix LSP published diagnostics to filter to the opened file.
- Add
textDocument/documentSymbolsupport forbuf lsp serve. - Fix LSP navigation for cached modules which could cause import paths to become unresolvable.
- Update default value of
--timeoutflag to 0, which results in no timeout by default. - Update
PROTOVALIDATElint rule to allow for custom rules that do not haveidormessagefields.
v1.59.0 - 2025-10-20
- Promote
buf beta lsptobuf lsp serve. Commandbuf beta lspis now deprecated. - Add
textDocument/Referencessupport forbuf lsp serve. - Add autocompletion for basic keywords, syntax, package and imports for
buf lsp serve. - Add workspace symbol queries for
buf lsp serve. - Fix positional encoding for diagnostics in
buf lsp serve. - Fix format updates for
buf lsp serve. - Fix syntax highlighting on semantic tokens for
buf lsp serve. - Fix
buf formatto remove extraneous whitespace before the first header node (syntax/package declarations).
v1.58.0 - 2025-10-09
- Update
PROTOVALIDATElint rule to checkIGNORE_IF_ZERO_VALUEon fields that track presence. - Fix
buf formaton fields with missing field number tags. - Optimize
includeandexcludepath handling for workspaces to avoid unnecessary file system operations. This change can result in a performance improvement for large workspaces. - Fix buf curl for HTTP/2 services with
--http2-prior-knowledgeflag set.
v1.57.2 - 2025-09-16
- Fix buf curl for HTTP/2 services.
v1.57.1 - 2025-09-16
- Minor bug fixes and dependency upgrades.
v1.57.0 - 2025-08-27
- Update exclude types to remove unused options reducing the size of generated code.
- Add
gitlab-code-qualityerror format to print errors in the GitLab Code Quality format forbuf lintandbuf breaking. - Add
source_control_urltojsonoutputs forbuf registry {module, plugin} commitcommands.
v1.56.0 - 2025-07-31
- Add
buf export --allflag to include non-proto source files. - Add s390x binaries for Linux to releases.
- Fix ppc64le binaries for Linux released as x86_64 binaries.
buf lintwill no longer warn about uses of(buf.validate.message).disabled, as it was removed in protovalidate v0.14.0. Please update to protovalidate v0.14.0 or higher, using the steps outlined in the protovalidate release notes.- Fix
buf breaking --against-registryto work with new modules that have no commits on the default branch.
v1.55.1 - 2025-06-17
- Fix language version for pre-commit hooks.
v1.55.0 - 2025-06-17
- Promote
buf beta statstobuf stats. - Update built-in Well-Known Types to Protobuf v31.1.
- Add
buf registry sdk infocommand. - Allow workspaces that are adding new module(s) with no module-specific breaking configurations
to run
buf breaking, ignoring new module(s).
v1.54.0 - 2025-05-12
- Add
CSRcategory to breaking rules. - Add support for local bufplugins for
protoc-gen-buf-breakingandprotoc-gen-buf-lint. - Add RISC-V (64-bit) binaries for Linux to releases.
- Fix type filtering on
buf generatefor empty files, files with no declared types. - Fix CEL check on
buf lintfor predefinedrulesvariables. - Fix
buf config migrateto filter out removed rules. - Allow users to set examples without constraints in
PROTOVALIDATElint rule. - Add ppc64le binaries for Linux to releases.
v1.53.0 - 2025-04-21
- Fix buf breaking annotations for JSON format.
v1.52.1 - 2025-04-08
- Fix language version for pre-commit hooks.
v1.52.0 - 2025-04-07
- Fix
exclude_typeon a non imported package. - Fix
--exclude-typeflag forbuf generatewhen an input is specified. - Fix type filter import filtering for options.
- Add OS environment when invoking local buf plugins.
- Add file path to
buf lintandbuf breakingoutput even when source code info is not available. This allowsbuf lintandbuf breakingto respectignoreandignore_onlyconfigurations when source code info is not available.
v1.51.0 - 2025-03-28
- Fix
buf convertto allow for zero length forbinpb,txtpb, andyamlformats. - Fix use of deprecated flag
--include-typesforbuf generate. - Add
--against-registryflag tobuf breakingthat runs breaking checks against the latest commit on the default branch of the corresponding module in the registry. - Fix type filter with unused image dependencies for
buf generate. - Improve type filtering for
buf generate. Adds the ability to exclude types with the parameterexclude_typesinbuf.gen.yamland a flag--exclude-typesin the CLI. Type filters may now also be specified as plugin parameters inbuf.gen.yaml.
v1.50.1 - 2025-03-10
- Minor fixes and dependency updates.
v1.50.0 - 2025-01-17
- Add input parameter
filterfor use with git inputs. This sets the filter flag argument for the git fetch command.
v1.49.0 - 2025-01-07
- Fix
buf plugin push --labelto allow pushing a plugin with a label. - Add
--digest-changes-onlyflag tobuf registry {module,plugin} commit listto filter out commits that have no digest changes. - Fix
buf plugin push --source-control-urlto allow pushing a plugin with the source control url.
v1.48.0 - 2024-12-19
- Add
buf registry plugin {create,delete,info,update}commands to manage BSR plugins. - Breaking analysis support for
buf beta lsp. - Fix bug when using the
--typeflag filter forbuf buildwhere import ordering is not deterministic. - Add
buf plugin pushcommand to push a plugin to the Buf Schema Registry. Only WebAssembly check plugins are supported at this time. - Add
buf plugin updateandbuf plugin prunecommand to manage plugins in thebuf.lockfile. Only WebAssembly check plugins are supported at this time. - Add
buf registry plugin commit {add-label,info,list,resolve}to manage BSR plugin commits. - Add
buf registry plugin label {archive,info,list,unarchive}to manage BSR plugin commits. - Move
buf registry module updatetobuf registry module settings update. Commandbuf registry module updateis now deprecated. - Support remote check plugins in
buf lintandbuf breakingcommands.
v1.47.2 - 2024-11-14
- Update the patch version to resolve NPM packaging issues. No command updates or user changes.
v1.47.1 - 2024-11-14
- Update the patch version to resolve NPM packaging issues. No command updates or user changes.
v1.47.0 - 2024-11-13
- Move
buf registry committobuf registry module commit. Commandbuf registry commitis now deprecated. - Move
buf registry labeltobuf registry module label. Commandbuf registry labelis now deprecated.
v1.46.0 - 2024-10-29
- Add
buf registry whoamicommand, which checks if you are logged in to the Buf Schema Registry at a given domain.
v1.45.0 - 2024-10-08
- Update
buf registry module info --format=jsonto adddefault_label_name, which provides the name of the default label of a module.
v1.44.0 - 2024-10-03
- Update the
PROTOVALIDATElint rule to check example field options. Examples will be checked that they satisfy the field constraints, and are only present if constraints are present. - Update the
PROTOVALIDATElint rule to check predefined rules. Predefined rules will be checked that they compile. - Add support for a WebAssembly (Wasm) runtime for custom lint and breaking changes plugins. Use the
.wasmfile extension to specify a path to a Wasm plugin.
v1.43.0 - 2024-09-30
- Add new experimental LSP support under
buf beta lsp.
v1.42.0 - 2024-09-18
- Add support for custom lint and breaking change plugins. See our launch blog post for more details!
- Add
buf dep graph --formatflag that defaults todot, and adds the optionjson, to print the dependency graph in JSON format. - Fix bugs in
buf formatwhere trailing comments on commas in message literals were not properly propagated to the formatted proto, empty message literals were not properly indented, and compound strings in options added an extra newline before trailing commas.
v1.41.0 - 2024-09-11
- Add HTTP/3 support for gRPC with
buf curl. - Fix issue where errors from protoc plugins may be overwritten when executing plugins in parallel.
v1.40.1 - 2024-09-06
- Fix issue with
buf lintwhere comment ignores in the shape of// buf:lint:ignore <RULE_ID> <extra comment>were not recognized due to the extra comment.
v1.40.0 - 2024-09-04
- Add concept of a default lint or breaking rule, which is printed out as a property when running
buf config ls-{breaking,lint}-rules. Default rules are those rules which are run if no lint or breaking rules are explicitly configured in yourbuf.yaml. - Rename
DEFAULTlint rule category toSTANDARD. With the concept of default rules being introduced, having a category namedDEFAULTis confusing, as while it happens that all the rules in theDEFAULTlint category are also default rules, the name has become overloaded. As with allbufchanges, this change is backwards-compatible: theDEFAULTlint category continues to work, and always will. We recommend changing toSTANDARD, however.
v1.39.0 - 2024-08-27
- Fix git input handling of relative HEAD refs without branch names.
- Add
includeskey to module configurations in v2buf.yaml, accepting a list of directories.- If
includesis specified, a proto file is considered in the module only if it is in one of the directories specified. - If both
includesandexcludeskeys are specified for a module, a proto file is considered part of this module if it is contained in any of the include paths and not in any of the exclude paths.
- If
- Allow multiple module configurations in the same v2
buf.yamlto have the same directory path.
v1.38.0 - 2024-08-22
- Add
--http3flag tobuf curlwhich forcesbuf curlto use HTTP/3 as the transport. - Fix issue with directory inputs for v2 workspaces where the specified directory was not itself a path to a module, but contained directories with modules, and the modules would not build.
- Stop creating empty
buf.lockfiles whenbuf dep updatedoes not find new dependencies to update and there is no existingbuf.lock. - Update
buf pushto push the license file or doc file (e.g.README.md,LICENSE) in the same directory asbuf.yamlif a module does not have a license file or doc file in the module's directory. - Fix constraints of
--pathflag for lint and breaking rules to avoid resolving all files within a module. This change can result in a performance improvement for large workspaces.
v1.37.0 - 2024-08-16
- Add
STABLE_PACKAGE_NO_IMPORT_UNSTABLElint rule which disallows files from stable packages to import files from unstable packages. - Fix plugin push failures when pushing an image built with containerd image store.
v1.36.0 - 2024-08-06
- Add
--list-servicesand--list-methodsflags tobuf curl, which trigger the command to list known services or methods in the RPC schema, instead of invoking an RPC method. - Add
cleanas a top-level option inbuf.gen.yaml, matching thebuf generate --cleanflag. If set to true, this will delete the directories, jar files, or zip files set tooutfor each plugin. - Fix git input handling of annotated tags.
- Update
buf registry loginto complete the login flow in the browser by default. This allows users to login with their browser and have the token automatically provided to the CLI. - Add
buf registry organization {create, delete, info, update}commands to manage BSR organizations. Removebuf beta registry organizationcommands. - Add
buf registry module {create, delete, deprecate, info, undeprecate, update}commands to manage BSR modules. Removebuf beta registry repositorycommands. - Add
buf registry label {archive, info, list, unarchive}commands to manage BSR module labels. Removebuf beta registry labelcommands andbuf beta registry {archive, unarchive}. - Add
buf registry commit {add-label, info, list, resolve}to manage BSR module commits. Removebuf beta registry commitcommands.
v1.35.1 - 2024-07-24
- Fix the git input parameter
refto align with thegitnotion of a ref. This allows for the use of branch names, tag names, and commit hashes. - Fix unexpected
buf builderrors with absolute path directory inputs without workspace and/or module configurations (e.g.buf.yaml,buf.work.yaml) and proto file paths set to the--pathflag.
v1.35.0 - 2024-07-22
- Add
buf generate --cleanflag that will delete the directories, jar files, or zip files that the plugins will write to, prior to generation. Allows cleaning of existing assets without having to callrm -rf. - Deprecate
--usernameflag on and username prompt onbuf registry login. A username is no longer required to log in.
v1.34.0 - 2024-06-21
- Add
buf config ls-modulescommand to list configured modules. - Fix issue where
buf generatewould succeed on missing insertion points and panic on empty insertion point files. - Update
buf generateto allow the use of Editions syntax when doing local code generation by proxying to aprotocbinary (for languages where code gen is implemented inside ofprotocinstead of in a plugin: Java, C++, Python, etc). - Allow use of an array of strings for the
protoc_pathproperty of forbuf.gen.yaml, where the first array element is the actual path and other array elements are extra arguments that are passed toprotoceach time it is invoked.
v1.33.0 - 2024-06-13
- Allow user to override
--source-control-urland--create-default-labelwhen using--git-metadatawithbuf push. - Fix
buf push --git-metadatawhen local tags point to different objects than the remote tags. - Fix issue where comment ignores were not respected for
PROTOVALIDATElint rule violations. - Add
buf beta registry label {create,get,list}to replacebuf beta registry {draft, tag}commands. - Update
buf beta commit {get,list}command outputs to display create time and stop displaying associated tags. - Change the behavior of
buf beta commit list <buf.build/owner/repository>when the reference is empty. It now lists commits in the repository instead of listing commits of the default label. - Update output of
buf formatto canonicalize the punctuation used in message literals in option values. The output now always uses{and}instead of<and>; it adds:separators between field names and message values if the source omitted them, and it removes unnecessary separators between fields (,and;are allowed, but neither is needed). - Update
buf format -wso that it does not touch files whose contents don't actually change. This eliminates noisy notifications to file-system-watcher tools that are watching the directory that contains proto sources. - Update
buf generateto work with plugins provided by protoc for versions v24.0 to v25.3. Editions support was experimental in these releases, and the plugins advertise incomplete support for editions, which triggersbufto report an error. With this fix, these plugins can be used again as long as none of the input files use editions syntax. - Add
buf push --exclude-unnamedflag to exclude unnamed modules when pushing to the BSR.
v1.32.2 - 2024-05-28
- Update
buf generateto warn instead of error when proto3 optional is required but not supported by a plugin.
v1.32.1 - 2024-05-21
- Fix archive and git inputs so that
--pathand--exclude-pathpaths are relative to the#subdirrather than the root of the input. This fixes an unintended behavior change that was introduced inv1.32.0. - Add
moduleinput forprotoc-gen-buf-lintandprotoc-gen-buf-breakingto allow users to specify the module forv2configuration files.
v1.32.0 - 2024-05-16
- Add version
v2forbuf.yamlandbuf.gen.yamlconfiguration files. - Add
buf config migrateto migrate configuration files to the latest version (nowv2). - Move
buf mod inittobuf config init.buf mod initis now deprecated. - Move
buf mod ls-lint-rulestobuf config ls-lint-rules.buf mod ls-lint-rulesis now deprecated. - Move
buf mod ls-breaking-rulestobuf config ls-breaking-rules.buf mod ls-breaking-rulesis now deprecated. - Move
buf mod prunetobuf dep prune.buf mod pruneis now deprecated. - Move
buf mod updatetobuf dep update.buf mod updateis now deprecated. - Move
buf mod {clear-cache,cc}tobuf registry cc.buf mod {clear-cache,cc}is now deprecated. - Move
buf beta graphto stable asbuf dep graph. - Change the default visibility of
buf push --create-visibilitytoprivatewhen the--createflag is set. Users are no longer required to set--create-visibilitywhen runningbuf push --create. - Add
buf push --label, which allows users to set labels when pushing new commits to the BSR. - Add
buf push --source-control-url, which allows users to associate commits pushed to the BSR with a URL to a source code repository. - Add
buf push --create-default-label, which allows users to set a default label for a repository when callingbuf push --create. - Add
buf push --git-metadata, which automatically sets appropriate--label,--source-control-url, and--create-default-labelflags based on the current Git repository. - Add
buf convert --validateto apply protovalidate rules to incoming messages specified with--from. - Deprecate
buf mod open. - Delete
buf beta migrate-v1beta1This is now replaced withbuf config migrate. - Add
buf registry sdk versionto get the version of a Generated SDK for a module and plugin. - Add
buf beta registry archiveandbuf beta registry unarchivecommands for archiving and unarchiving labels on the BSR. - Add support for Protobuf Editions. This allows
bufto be used with sources that use edition 2023, instead of proto2 or proto3 syntax. This also updates theprotoc-gen-buf-breakingandprotoc-gen-buf-lintProtobuf plugins to support files that use edition 2023. - Update
buf breakingrules 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_CTYPEhas been replaced withFIELD_SAME_CPP_STRING_TYPE, which considers bothctypefield options and new(pb.cpp).string_typefeatures when deciding on backwards compatibility.FIELD_SAME_LABELhas 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_CARDINALITYin theFILEandPACKAGEcategories.FIELD_WIRE_COMPATIBLE_CARDINALITYin theWIREcategory.FIELD_WIRE_JSON_COMPATIBLE_CARDINALITYin theWIRE_JSONcategory.
FILE_SAME_JAVA_STRING_CHECK_UTF8has been replaced withFIELD_SAME_JAVA_UTF8_VALIDATION, which considers both thejava_string_check_utf8file option and(pb.java).utf8_validationfeatures when deciding on backwards compatibility.- Add to the existing
FILE_SAME_SYNTAXrule 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_FORMATandENUM_SAME_JSON_FORMATcatch changes to thejson_formatfeature, 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_VALIDATIONcatches changes to theutf8_validationfeature, which controls validation of string values.ENUM_SAME_TYPEcatches changes to an enum's type, open vs. closed.
- Add support for extensions to
buf breaking. All existing rules for fields are now applied to extensions, except forFIELD_NO_DELETE(and its variants). There are also newEXTENSION_NO_DELETEandPACKAGE_EXTENSION_NO_DELETErules for catching deletions of an extension. The new rules are not active by default in existingv1andv1beta1configurations, for backwards-compatibility reasons. Migrate your config tov2to use them. - Add support for top-level extensions to
buf lint. It previously only checked extensions that were defined inside of messages. - Add a new
FIELD_NOT_REQUIREDlint rule that prevents use of required in proto2 files and offeatures.field_presence = LEGACY_REQUIREDin Editions files. This new rule is not active by default in existingv1andv1beta1configurations, for backwards-compatibility reasons. Migrate your config tov2to use them.
v1.32.0-beta.1 - 2024-04-23
- Add
buf convert --validateto apply protovalidate rules to incoming messages specified with--from. - Add
buf config migrateto migrate configuration files to the latest version (nowv2). - Promote
buf beta graphto stable asbuf dep graph. - Move
buf mod inittobuf config init.buf mod initis now deprecated. - Move
buf mod ls-lint-rulestobuf config ls-lint-rules.buf mod ls-lint-rulesis now deprecated. - Move
buf mod ls-breaking-rulestobuf config ls-breaking-rules.buf mod ls-breaking-rulesis now deprecated. - Move
buf mod prunetobuf dep prune.buf mod pruneis now deprecated. - Move
buf mod updatetobuf dep update.buf mod updateis now deprecated. - Move
buf mod {clear-cache,cc}tobuf registry cc.buf mod {clear-cache,cc}is now deprecated. - Deprecate
buf mod open. - Delete
buf beta migrate-v1beta1. - Add
buf registry sdk versionto get the version of a Generated SDK for a module and plugin.
v1.31.0 - 2024-04-23
- Update dependencies.
v1.30.1 - 2024-04-03
- Fix issue where
buf lintincorrectly reports an error for(buf.validate.field).repeatedis set for a repeated validation rule.
v1.30.0 - 2024-03-07
- Update
buf generateso it populates the recently-addedsource_file_descriptorsfield of theCodeGeneratorRequestmessage. 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 theproto_filefield will not include any options configured this way for the files named infile_to_generatefield. - Add
--exclude-source-retention-optionsflag tobuf build, which causes options configured to only be retained in source to be stripped from the output descriptors.
v1.29.0 - 2024-01-24
- Add support for
yamlformat. All commands that take image inputs, output images, or convert between message formats, now takeyamlas a format, in addition to the existingbinpbandtxtpbformats. Some examples:buf build -o image.yamlbuf ls-files image.yamlbuf convert --type foo.Bar --from input.binpb --to output.yaml
- The
yamlandjsonformats now accept two new options:use_proto_namesanduse_enum_numbers. This affects output serialization. Some examples:buf convert --type foo.Bar --from input.binpb --to output.yaml#use_proto_names=truebuf convert --type foo.Bar --from input.binpb --to -#format=yaml,use_enum_numbers=true
- Fix issue where
buf formatwould inadvertently mangle files that used the expandedAnysyntax in option values.
v1.28.1 - 2023-11-15
- The
buf curlcommand has been updated to support the use of multiple schemas. This allows users to specify multiple--schemaflags and/or to use both--schemaand--reflectflags 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 ingoogle.protobuf.Anymessages that are not defined in the same schema that defines the RPC service. - Fix issue where
buf lintincorrectly reports error when(buf.validate.field).requiredis set for an optional field in proto3.
v1.28.0 - 2023-11-10
- Add lint rules for protovalidate.
buf lintwill now verify that your protovalidate rules are valid. A single rulePROTOVALIDATEhas been added to theDEFAULTgroup - given that protovalidate is net new, this does not represent a breaking change. - Update
buf beta pricewith the latest pricing information. - Display a warning when reading a
buf.lockwith dependencies with b1 or b3 digests. b1 and b3 digests will be deprecated in a future version. Runbuf mod updateto update dependency digests.
v1.27.2 - 2023-10-27
- Fix issue where
buf buildand other commands may fail when handling certain archives created on macOS that contain files with extended attributes.
v1.27.1 - 2023-10-16
- Fix issue in v1.27.0 where
--pathdid not work with workspaces under certain scenarios.
v1.27.0 - 2023-10-04
- Fix issue where
buf generate --exclude-pathwas not properly excluding paths for remote modules. - Fix issue where
buf curlhad a user agent that did not properly place the extension as a suffix. - Update
buf beta pricewith the latest pricing information.
v1.26.1 - 2023-08-09
- Fix issue where
buf build -odid not properly output files with the.txtpbextension in Protobuf text format.
v1.26.0 - 2023-08-09
- Add support for the
--http2-prior-knowledgeflag when runningbuf curlagainst secure "https" URLs. This can be used with gRPC servers, that only support HTTP/2, when used with a network (layer 4) load balancer, that does not support protocol negotiation in TLS handshake.
v1.25.1 - 2023-08-02
- Fix issue where all files were being iterated over when using the
--pathflag. - Fix issue where the directory
.was incorrectly accepted as a value for thedirectorieskey inbuf.work.yaml.
v1.25.0 - 2023-07-18
- Add
txtpbformat to handle the Protobuf text format. and automatically recognize.txtpbfiles as Protobuf text files. Thetxtpbformat can now be used with allbufcommands that take images as input or output, such asbuild,convert, andcurl.
v1.24.0 - 2023-07-13
- Update
buf mod updateto block updates that will result in conflicting.protofiles across dependencies. - Replace
binformat withbinpbformat, and support the.binpbfile extension..binpbis now the canonical file extension for binary-encoded Protobuf data. Thebinformat and the.binfile extension continue to be accepted. - Remove support for
gosubdomain in.netrc. This was used as part of the remote generation alpha, which has been fully deprecated in favor of remote plugins and remote packages. See https://buf.build/blog/remote-packages-remote-plugins-approaching-v1 for more details. - Update
buf beta pricewith the latest pricing information.
v1.23.1 - 2023-06-30
- Fix issue where
buf beta graphwould not print modules within a workspace that had no dependencies or dependents. - Fix issue where
buf beta graphwould print warnings for missing dependencies that were actually present.
v1.23.0 - 2023-06-29
- Add
buf beta graphto print the dependency graph for a module in DOT format. - Various small bug fixes.
v1.22.0 - 2023-06-23
- Change default for
--originflag ofbuf beta studio-agenttohttps://buf.build
v1.21.0 - 2023-06-05
- Fix issue where locally-produced images did not have module information if the corresponding module was stored in the new cache.
- Remove
buf beta registry template. - Remove
buf beta registry plugin {create,deprecate,list,undeprecate,version}and replace withbuf beta registry plugin {push,delete}. - Update
buf beta pricewith the latest pricing information.
v1.20.0 - 2023-05-30
- Add
--emit-defaultsflag tobuf curlto emit default values in JSON-encoded responses. - Indent JSON-encoded responses from
buf curlby default. - Log a warning in case an import statement does not point to a file in the module, a file in a direct dependency, or a well-known type file.
v1.19.0 - 2023-05-17
- Add
--createflag tobuf pushto create a repository if it does not exist. The user is also required to specify the visibility using--create-visibility. - Add
github-actionserror format to print errors in a form parseable by GitHub Actions. - Fix issue in
buf buildandbuf generatewhere the use of type filtering (via--typeflags) would cause the resulting image to have no source code info, even when--exclude-source-infowas not specified. The main impact of the bug was that generated code would be missing comments. - Fix issue in
buf curlwhen using--useror--netrcthat would cause a malformed Authorization header to be sent. - Update the module cache to use an optimized content addressable store. The cache is
now self-healing and uses significantly less space. Users wishing to free unused space
can run
buf mod --clear-cacheonce after upgrading to remove data stored in the previous module cache.
v1.18.0 - 2023-05-05
- Remove
buf beta registry {plugin,template} {deprecate,undeprecate}. - Add
--userand--netrcflags tobuf curl, providing the same behavior as the flags of the same name in the cURL tool. - Include
DocumentationPathin the module onbuf push. - Support fallback paths,
README.mdandREADME.markdown, for module documentation. The default source for module documentation isbuf.md. Ifbuf.mdis missing,README.mdorREADME.markdownis used as fallback sources.
v1.17.0 - 2023-04-05
- Fix issue with JSON marshalling of errors where line and column fields were omitted when line and column information was empty.
- Fix issue with MSVS marshalling of errors where the column could be 0.
- Add
buf beta statscommand to print statistics about a given source or module. - Update
buf beta pricewith the latest pricing information.
v1.16.0 - 2023-03-29
- Add
buf beta pricecommand to help users of the BSR figure out how much a module will cost to store on the BSR under the Teams or Pro plans. - Fix issue in
protoc-gen-buf-lintthat prevented it from reporting lint errors for unused imports. - Fix issue with
buf formatwhere indents would be produced on certain empty lines. - Remove
buf alpha registry token createcommand. Tokens must be created through the BSR UI. - Add local WASM plugin support in alpha, gated by the
BUF_ALPHA_ENABLE_WASMenvironment variable. This feature is under evaluation, and may change at any time. If you are interested in WASM Protobuf plugins, reach out to us.
v1.15.1 - 2023-03-08
- Fix bug in
buf generatewithv1beta1config files. - Fix potential crash when using the
--typeflag withbuf buildorbuf generate.
v1.15.0 - 2023-02-28
- Update built-in Well-Known Types to Protobuf v22.0.
- Fix bug in
buf formatwhere C-style block comments in which every line includes a prefix (usually "*") would be incorrectly indented. - Add
--private-networkflag tobuf beta studio-agentto support handling CORS requests from Studio on private networks that set theAccess-Control-Request-Private-Networkheader.
v1.14.0 - 2023-02-09
- Replace
buf generate --include-typeswithbuf generate --typefor consistency.--include-typesis now deprecated but continues to work, consistent with our compatibility guarantee. - Include type references in
google.protobuf.Anymessages in option values when filtering on type, e.g. withbuf build --typeorbuf generate --type. - Allow specifying a specific
protocpath inbuf.gen.yamlwhen usingprotoc's built-in plugins via the newprotoc_pathoption. - 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_namespacefile option in managed mode. - Make all help documentation much clearer. If you notice any inconsistencies, let us know.
v1.13.1 - 2023-01-27
- Fix race condition with
buf generatewhen remote plugins from multiple BSR instances are being used at once.
v1.13.0 - 2023-01-26
- Extend the
BUF_TOKENenvironment variable to accept tokens for multiple BSR instances. BothTOKENandTOKEN1@BSRHOSTNAME1,TOKEN2@BSRHOSTNAME2,...are now valid values forBUF_TOKEN. - Remove
buf beta convertin favor of the now-stablebuf convert.
v1.12.0 - 2023-01-12
- Add
buf curlcommand to invoke RPCs via Connect, gRPC, or gRPC-Web - Introduce
objc_class_prefixoption in managed mode, allowing adefaultvalue forobjc_class_prefixfor all files,exceptandoverride, which both behave similarly to otherexceptandoverrideoptions. Specifying an emptydefaultvalue is equivalent to having managed mode on in previous versions. - Introduce
ruby_packageoption in managed mode, allowingexceptandoverride, in the same style asobjc_class_prefix. Leavingruby_packageunspecified has the same effect as having mananged mode enabled in previous versions.
v1.11.0 - 2022-12-19
buf generatenow batches remote plugin generation calls for improved performance.- Update
optimize_foroption in managed mode, allowing adefaultvalue foroptimize_forfor all files,exceptandoverride, which both behave similarly to otherexceptandoverrideoptions. Specifying anoptimize_forvalue in the earlier versions is equivalent to having aoptimize_forwith that value as default.
v1.10.0 - 2022-12-07
- When using managed mode, setting
enabled: falsenow no longer failsbuf generateand instead prints a warning log and ignores managed mode options. - Add
csharp_namespaceoption to managed mode, allowingexcept, which excludes modules from managed mode, andoverride, which specifiescsharp_namespacevalues per module, overriding the default value. By default, when managed mode is enabled,csharp_namespaceis set to the package name with each package sub-name capitalized. - Promote
buf convertto stable, keepbuf beta convertaliased in the beta command. - Add
Typesfilter tobuf generatecommand 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 - 2022-10-19
-
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
LICENSEfile 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 convertflags have changed from--inputto--fromand--output/-oto--to -
fully qualified type names now must be parsed to the
inputargument and--typeflag separately
v1.8.0 - 2022-09-14
- Change default for
--originflag ofbuf beta studio-agenttohttps://studio.buf.build - Change default for
--timeoutflag ofbuf beta studio-agentto0(no timeout). Before it was2m(the default for all the otherbufcommands). - Add support for experimental code generation with the
plugin:key inbuf.gen.yaml. - Preserve single quotes with
buf format. - Support
junitformat errors with--error-format.
v1.7.0 - 2022-06-27
- Support protocol and encoding client options based on content-type in Studio Agent.
- Add
--draftflag tobuf push. - Add
buf beta registry draft {list,delete}commands.
v1.6.0 - 2022-06-21
- Fix issue where
// buf:lint:ignorecomment ignores did not work for theENUM_FIRST_VALUE_ZEROrule. - Add
buf beta studio-agentcommand to support the upcoming Buf Studio.
v1.5.0 - 2022-05-30
- Upgrade to
protoc3.20.1 support. - Fix an issue where
bufwould fail if two or more roots contained a file with the same name, but with different file types (i.e. a regular file vs. a directory). - Fix check for
PACKAGE_SERVICE_NO_DELETEto detect deleted services. - Remove
buf beta registry track. - Remove
buf beta registry branch.
v1.4.0 - 2022-04-21
- Fix issue where duplicate synthetic oneofs (such as with proto3 maps or optional fields) did not result in a properly formed error.
- Add
buf beta registry repository updatecommand which supports updating repository visibility (public vs private). As with all beta commands, this is likely to change in the future.
v1.3.1 - 2022-03-30
- Allow
--configflag to be set when targeting a module within a workspace. - Update
buf format's file option order so that default file options are sorted before custom options. - Update
buf formatto write adjacent string literals across multiple lines. - Fix
buf formatso that the output directory (if any) is created if and only if the input is successfully formatted.
v1.3.0 - 2022-03-25
- Add
--exit-codeflag tobuf formatto exit with a non-zero exit code if the files were not already formatted.
v1.2.1 - 2022-03-24
- Fix a few formatting edge cases.
v1.2.0 - 2022-03-24
- Add
buf formatcommand to format.protofiles. - Fix build scripts to avoid using the
command-line-argumentspseudo-package when building binaries and re-introduce checking for proper usage of private packages.
v1.1.1 - 2022-03-21
- Remove check for proper usage of private packages due to a breaking change made in the Golang standard library in 1.18.
v1.1.0 - 2022-03-01
- Add
--typeflag to thebuildcommand to create filtered images containing only the specified types and their required dependencies. - Trim spaces and new lines from user-supplied token for
buf registry login. - Add support for conversion between JSON and binary serialized message for
buf beta convert.
v1.0.0 - 2022-02-17
- Check that the user provided a valid token when running
buf registry login. - Add
buf mod openthat opens a module's homepage in a browser. - Add
buf completioncommand to generate auto-completion scripts in commonly used shells. - Add
--disable-symlinksflag to thebreaking, build, export, generate, lint, ls-files, pushcommands. By default, the CLI will follow symlinks except on Windows, and this disables following symlinks. - Add
--include-wktflag tobuf generate. When this flag is specified alongside--include-imports, this will result in the Well-Known Types being generated as well. Most language runtimes have the Well-Known Types included as part of the core library, making generating the Well-Known Types separately undesirable. - Remove
buf protoc. This was a pre-v1.0 demonstration to show thatbufcompilation produces equivalent results to mainlineprotoc, howeverbufis working on building a better Protobuf future that provides easier mechanics than our formerprotoc-based world.buf protocitself added no benefit over mainlineprotocbeyond being considerably faster and allowing parallel compilation. Ifprotocis required, move back to mainlineprotocuntil you can upgrade tobuf. See #915 for more details. - Context modifier no longer overrides an existing token on the context. This allows
buf registry loginto properly check the user provided token without the token being overridden by the CLI interceptor. - Removed the
buf config initcommand in favor ofbuf mod init. - Removed the
buf config ls-breaking-rulescommand in favor ofbuf mod ls-breaking-rules. - Removed the
buf config ls-lint-rulescommand in favor ofbuf mod ls-lint-rules. - Removed the
buf config migrate-v1beta1command in favor ofbuf beta migrate-v1beta1. - Add
buf beta decodecommand to decode message with provided image source and message type. - Disable
--configflag for workspaces. - Move default config version from
v1beta1tov1.
v1.0.0-rc12 - 2022-02-01
- Add
default,exceptandoverridetojava_package_prefix. - Add dependency commits as a part of the
b3digest. - Upgrade to
protoc3.19.4 support. - Remove
branchfield frombuf.lock.
v1.0.0-rc11 - 2022-01-18
- Upgrade to
protoc3.19.3 support. - Add
PACKAGE_NO_IMPORT_CYCLElint rule to detect package import cycles. - Add
buf beta registry {plugin,template} {deprecate,undeprecate}. - Add warning when using enterprise dependencies without specifying a enterprise remote in the module's identity.
- Remove
digest, andcreated_atfields from thebuf.lock. This will temporarily create a new commit when pushing the same contents to an existing repository, since theModulePinhas been reduced down. - Add
--trackflag tobuf push - Update
buf beta registry commit listto allow a track to be specified. - Add
buf beta registry track {list,delete}commands. - Add manpages for
buf.
v1.0.0-rc10 - 2021-12-16
- Fix issue where remote references were not correctly cached.
v1.0.0-rc9 - 2021-12-15
- Always set
compiler_versionparameter in theCodeGeneratorRequestto "(unknown)". - Fix issue where
buf mod updatewas unable to resolve dependencies from different remotes. - Display the user-provided Buf Schema Registry remote, if specified, instead of the default within the
buf loginmessage. - Fix issue where
buf generatefails when the same plugin was specified more than once in a single invocation. - Update the digest algorithm so that it encodes the
name,lint, andbreakingconfiguration encoded in thebuf.yaml. When this change is deployed, users will observe the following:- Users on
v0.43.0or before will notice mismatched digest errors similar to the one described in #661. - Users on
v0.44.0or after will have their module cache invalidated, but it will repair itself automatically. - The
buf.lock(across all versions) will reflect the newb3-digest values for new commits.
- Users on
v1.0.0-rc8 - 2021-11-10
- Add new endpoints to the recommendation service to make it configurable.
- Add
--exclude-pathflag tobuf breaking,buf build,buf export,buf generate, andbuf lintcommands. This allows users to exclude specific paths when running commands. - Change
GetModulePackagesendpoint to return a repeatedModulePackagemessage that now includes package description with the package name. - Add
Oneofto theMessagestructure for documentation.
v1.0.0-rc7 - 2021-11-08
- Upgrade to
protoc3.19.1 support. - Fix issue with
buf generatewhere multiple insertion points are defined in the same file.
v1.0.0-rc6 - 2021-10-20
- Fix issue with
buf ls-fileswhen given an image as an input, imports were being printed, even without the--include-importsflag. - Add the ability for users to provide individual protobuf files as inputs to CLI commands. This allows users to run
bufcommands against and file input based on their current working directory, for example,buf lint foo/bar.proto, wherefoo/bar.protois a path to protobuf file on disk.
v1.0.0-rc5 - 2021-10-12
- Add
buf beta registry repository deprecateandbuf beta registry repository undeprecate. - Support
--include-importsfor remote plugins. - Fix issue where
buf config migrate-v1beta1 failswhen files cannot be renamed. - Fix issue where
buf registry loginpanics when an existing .netrc entry exists.
v1.0.0-rc4 - 2021-10-07
- Fix issue where
buf generatecould fail when used with large numbers of plugins and files on systems with low file limits. - Add
buf protoc --versionflag back. This was accidentally removed. - Upgrade to
protoc3.18.1 support.
v1.0.0-rc3 - 2021-10-04
- Add
--as-import-pathsflag tols-filesthat strips local directory paths and prints file paths as they are imported. - Fix issue where groups used in custom options did not result in the same behavior as
protoc. - Fix issue where insertion points were not applied with respect to the configured output directory.
v1.0.0-rc2 - 2021-09-23
- Add
--include-importsflag tols-files. - Upgrade to
protoc3.18.0 support. - Fix regression with git inputs using
recurse_submodules=true.
v1.0.0-rc1 - 2021-09-15
This is our first v1.0 release candidate. This release largely concentrates on erroring for already-deprecated commands and flags.
At Buf, we take compatibility very seriously. When we say v1.0, we mean it - we hope buf will be
stable on v1 for the next decade, and if there is something we want to change, it is our responsibility to
make sure that we don't break you, not your responsibility to change because of us. We have learned
a lot about buf usage in the last two years of our beta, and have deprecated flags and commands as
we go, but for v1.0, we are removing the deprecated items to make sure we have a clean setup going forward.
All commands and flags have been printing warnings for a long time, and have an easy migration path. Simply update the command or flag, and you'll be good to go:
- Removed the
buf logincommand in favor ofbuf registry login. - Removed the
buf logoutcommand in favor ofbuf registry logout. - Removed the
buf mod initcommand in favor ofbuf config init. - Removed the
--nameand--depflags inbuf config init. - Removed the
--log-levelglobal flag. - Moved the output of
--versionfrom stderr to stdout. - Moved the output of
--helpandhelpfrom stderr to stdout. - From v0.55.0: The version key in all configuration files (
buf.yaml,buf.gen.yaml,buf.work.yaml) is now required. - From v0.45.0: Removed the
buf beta config initcommand in favor ofbuf config init. - From v0.45.0: Removed the
buf beta mod exportcommand in favor ofbuf export. - From v0.45.0: Removed the
buf beta mod initcommand in favor ofbuf config init. - From v0.45.0: Removed the
buf beta mod updatecommand in favor ofbuf mod update. - From v0.45.0: Removed the
buf beta mod clear-cachecommand in favor ofbuf mod clear-cache. - From v0.45.0: Removed the
buf beta pushcommand in favor ofbuf push. - From v0.34.0: Removed the
buf check breakingcommand in favor ofbuf breaking. - From v0.34.0: Removed the
buf check lintcommand in favor ofbuf lint. - From v0.34.0: Removed the
buf check ls-lint-checkerscommand in favor ofbuf config ls-lint-rules. - From v0.34.0: Removed the
buf check ls-breaking-checkerscommand in favor ofbuf config ls-breaking-rules. - From v0.31.0: Removed the
--fileflag onbuf buildin favor of the--pathflag. - From v0.31.0: Removed the
--fileflag onbuf lintin favor of the--pathflag. - From v0.31.0: Removed the
--fileflag onbuf breakingin favor of the--pathflag. - From v0.31.0: Removed the
--fileflag onbuf generatein favor of the--pathflag. - From v0.31.0: Removed the
--fileflag onbuf exportin favor of the--pathflag. - From v0.29.0: Removed the
--sourceflag onbuf buildin favor of the first positional parameter. - From v0.29.0: Removed the
--source-configflag onbuf buildin favor of the--configflag. - From v0.29.0: Removed the
--inputflag onbuf lintin favor of the first positional parameter. - From v0.29.0: Removed the
--input-configflag onbuf lintin favor of the--configflag. - From v0.29.0: Removed the
--inputflag onbuf breakingin favor of the first positional parameter. - From v0.29.0: Removed the
--input-configflag onbuf breakingin favor of the--configflag. - From v0.29.0: Removed the
--against-inputflag onbuf breakingin favor of the--againstflag. - From v0.29.0: Removed the
--against-input-configflag onbuf breakingin favor of the--against-configflag. - From v0.29.0: Removed the
--inputflag onbuf generatein favor of the first positional parameter. - From v0.29.0: Removed the
--input-configflag onbuf generatein favor of the--configflag. - From v0.29.0: Removed the
--inputflag onbuf ls-filesin favor of the first positional parameter. - From v0.29.0: Removed the
--input-configflag onbuf ls-filesin favor of the--configflag. - From v0.29.0: Removed the
buf image buildcommand in favor ofbuf build. - From v0.29.0: Removed the
buf image convertcommand. - From v0.29.0: Removed the
buf beta image convertcommand. - From v0.23.0: Removed the
buf experimental image convertcommand. - From v0.52.0 and v0.34.0: Complete deletion
protoc-gen-buf-check-breakingandprotoc-gen-buf-check-lint, which have been moved toprotoc-gen-buf-breakingandprotoc-gen-buf-lint.
In January 2021 (v0.34.0), protoc-gen-buf-check-breaking and protoc-gen-buf-check-lint were deprecated and scheduled for removal for v1.0. In August 2021 (v0.52.0), we began returning error for every invocation of protoc-gen-buf-check-breaking and protoc-gen-buf-check-lint. This release completes the deletion process.
The only migration necessary is to change your installation and invocation from protoc-gen-buf-check-breaking to protoc-gen-buf-breaking and protoc-gen-buf-check-lint to protoc-gen-buf-lint. These can be installed in the exact same manner, whether from GitHub Releases, Homebrew, AUR, or direct Go installation:
# instead of go get github.com/bufbuild/buf/cmd/protoc-gen-buf-check-breaking
go get github.com/bufbuild/buf/cmd/protoc-gen-buf-breaking
# instead of curl -sSL https://github.com/bufbuild/buf/releases/download/v0.57.0/protoc-gen-buf-check-breaking-Linux-x86_64
curl -sSL https://github.com/bufbuild/buf/releases/download/v0.57.0/protoc-gen-buf-breaking-Linux-x86_64
v0.56.0 - 2021-09-08
- Cascade
ENUM_ZERO_VALUE_SUFFIXcomment ignores from the enum level. - Fix issue where
buf generate --outputwas not being respected in 0.55.0.
v0.55.0 - 2021-09-07
- Error if
version:is not set inbuf.yaml. This is one of the few breaking changes we must make before v1.0 to guarantee stability for the future. If you do not have a version set, simply addversion: v1beta1to the top of yourbuf.yaml. - Support
BUF_TOKENfor authentication.bufwill now look for a token in theBUF_TOKENenvironment variable, falling back to.netrcas set viabuf login. - Add support for using remote plugins with local source files.
- Add per-file overrides for managed mode.
- Fix issue with the module cache where multiple simultaneous downloads would result in a temporarily-corrupted cache.
- Hide verbose messaing behind the
--verbose(-v) flag. - Add
--debugflag to print out debug logging.
v0.54.1 - 2021-08-30
- Fix docker build.
v0.54.0 - 2021-08-30
- Add windows support.
- Add
java_package_prefixsupport to managed mode. - Fix issue with C# namespaces in managed mode.
- Fix issue where
:mainwas appended for errors containing references to modules.
v0.53.0 - 2021-08-25
- Fix issue where
buf generate --include-importswould end up generating files for certain imports twice. - Error when both a
buf.modandbuf.yamlare present.buf.modwas briefly used as the new default name forbuf.yaml, but we've reverted back tobuf.yaml.
v0.52.0 - 2021-08-19
Return error for all invocations of protoc-gen-buf-check-breaking and protoc-gen-buf-check-lint.
As one of the few changes buf will ever make, protoc-gen-buf-check-breaking and protoc-gen-buf-check-lint were deprecated and scheduled for removal for v1.0 in January 2021. In preparation for v1.0, instead of just printing out a message notifying users of this, these commands now return an error for every invocation and will be completely removed when v1.0 is released.
The only migration necessary is to change your installation and invocation from protoc-gen-buf-check-breaking to protoc-gen-buf-breaking and protoc-gen-buf-check-lint to protoc-gen-buf-lint. These can be installed in the exact same manner, whether from GitHub Releases, Homebrew, AUR, or direct Go installation:
# instead of go get github.com/bufbuild/buf/cmd/protoc-gen-buf-check-breaking
go get github.com/bufbuild/buf/cmd/protoc-gen-buf-breaking
# instead of curl -sSL https://github.com/bufbuild/buf/releases/download/v0.52.0/protoc-gen-buf-check-breaking-Linux-x86_64
curl -sSL https://github.com/bufbuild/buf/releases/download/v0.52.0/protoc-gen-buf-breaking-Linux-x86_64
There is no change in functionality.
v0.51.1 - 2021-08-16
- Fix issue with git LFS where a remote must be set for fetch.
v0.51.0 - 2021-08-13
- Accept packages of the form
v\d+alphaandv\d+betaas packages with valid versions. These will be considered unstable packages for the purposes of linting and breaking change detection ifignore_unstable_packagesis set. - Fix issue with git clones that occurred when using a previous reference of the current branch.
v0.50.0 - 2021-08-12
- Add
buf generate --include-importsthat also generates all imports except for the Well-Known Types. - Fix issue where a deleted file within an unstable package that contained messages, enums, or services resulted in a breaking change failure if the
PACKAGEcategory was used andignore_unstable_packageswas set.
v0.49.0 - 2021-08-10
- Split
FIELD_SAME_TYPEbreaking change rule intoFIELD_SAME_TYPE, FIELD_WIRE_COMPATIBLE_TYPE, FIELD_WIRE_JSON_COMPATIBLE_TYPEinv1. See #400 for details. - Only export imported dependencies from
buf export.
v0.48.2 - 2021-07-30
- Fix git args for http auth with git lfs.
v0.48.1 - 2021-07-30
- Fix: use
-congitparent command instead of--configongit fetch. - Add
ruby_packageto managed mode.
v0.48.0 - 2021-07-29
- Add
buf export.buf exportwill export the files from the specified input (default".") to the given directory in a manner that is buildable byprotocwithout any-Iflags. It also has options--exclude-imports, which excludes imports (and won't result in a buildable set of files), and--path, which filters to the specific paths.
v0.47.0 - 2021-07-29
- Rewrite the git cloner to use
git init && git fetchrather thangit clone.git cloneis limited to local branches on the remote, whereasgit fetchwe can fetch any references on the remote including remote branches. - Add
php_namespacemanaged mode handling. - Add
java_string_check_utf8managed mode handling.
v0.46.0 - 2021-07-27
- Add
buf loginandbuf logoutto login and logout from the Buf Schema Registry. - Fix cache, configuration, and data environment variables for Windows. Note that while Windows is still not officially supported,
buflargely works on Windows.
v0.45.0 - 2021-07-26
- Revert default configuration file location back from
buf.modtobuf.yaml. Note that both continue to work. - Move default workspace configuration file location from
buf.worktobuf.work.yaml. Note that both continue to work. - Move
buf beta pushtobuf push. Note thatbuf beta pushcontinues to work. - Move most
buf beta modcommands tobuf mod. Note that allbuf beta modcommands continue to work. - Add
--onlyflag tobuf mod update. - Warn if
buf.yamlcontains dependencies that are not represented in thebuf.lockfile. - Add
--versionflag tobuf config ls-{breaking,lint}-rules. - Add
SYNTAX_SPECIFIEDlint rule toBASIC, DEFAULTcategories for v1 configuration. - Add
IMPORT_USEDlint rule toBASIC, DEFAULTcategories for v1 configuration. - Bring v1 configuration out of beta.
- Add managed mode for
objc_class_prefix,csharp_namespace.
v0.44.0 - 2021-07-08
- Fix issue where C++ scoping rules were not properly enforced.
- Add support for splitting directory paths passed to
buf protoc -Iby a directory separator. - Fix Windows support for builtin
protocplugins when usingbuf generateorbuf protoc. Note that Windows remains officially unsupported as we have not set up testing, but largely works. - Upgrade to
protoc3.17.3 support. - Change the default module configuration location from
buf.yamltobuf.mod. Note thatbuf.yamlcontinues to work. - Continued work on the workspaces beta, including the
v1configuration specification. - Continued work on the managed mode beta, including the
v1configuration specification. - Add
v1module configuration specification in beta - please continue to usev1beta1until thev1configuration specification is rolled out. - Add
buf config migrate-v1beta1.
v0.43.2 - 2021-05-31
- Fix namespace resolution diff with protoc.
v0.43.1 - 2021-05-28
- Revert
protocnamespace resolution diff change.
v0.43.0 - 2021-05-28
- Do not count
buf:lint:ignoredirectives as valid comments for theCOMMENT_.*lint rules. - Upgrade to
protoc3.17.1 support. - Fix namespace resolution diff with
protoc.
v0.42.1 - 2021-05-20
- Change the architecture suffix of the Linux ARM release assets from
arm64toaarch64to match the output ofuname -mon Linux.
v0.42.0 - 2021-05-20
- Add managed mode in beta. This is a new feature that automatically sets file option values.
- Add workspaces in beta. This is a new feature that allows multiple modules within the same directory structure.
- Add arm64 releases.
v0.41.0 - 2021-04-01
- Add
MESSAGE_SAME_REQUIRED_FIELDSbreaking change rule. This checks to make sure norequiredfields are added or deleted from existing messages. - Support multi-architecture Docker image.
- Exit with code 100 for
FileAnnotationerrors.
v0.40.0 - 2021-03-15
- Add
buf beta registry tag {create,list}commands. - Add support for creating tags in
pushviabuf beta push -t. - Fix an issue where errors were unnecessarily written in
buf lintandbuf breaking.
v0.39.1 - 2021-03-04
- Fix issue with CLI build process in 0.39.0.
v0.39.0 - 2021-03-04
buf beta pushdoesn't create a new commit if the content of the push is the same as the latest commit on the branch.- Fix an issue where no error was shown when authentication failed.
- Fix an issue where
buf protocwould error if a plugin returned an empty error string.
v0.38.0 - 2021-02-25
- Update the tested
protocversion for compatibility to 3.15.2. The--experimental_allow_proto3_optionalflag is no longer set for versions >=3.15. - Update the Well-Known Types to 3.15.2. The
go_packagevalues for the Well-Known Types now point at google.golang.org/protobuf instead of github.com/golang/protobuf.
v0.37.1 - 2021-02-23
- Fix bug where authentication headers were not threaded through for certain Buf Schema Registry commands.
- Fix issue where empty errors would incorrectly be wrapped by the CLI interceptor.
- Update Buf module cache location to include remote.
v0.37.0 - 2021-02-09
- Add commands for the Buf Schema Registry. Visit our website to add yourself to the waitlist.
v0.36.0 - 2021-01-18
Allows comment ignores of the form // buf:lint:ignore ID to be cascaded upwards for specific rules.
- For
ENUM_VALUE_PREFIX, ENUM_VALUE_UPPER_SNAKE_CASE, both the enum value and the enum are checked. - For
FIELD_LOWER_SNAKE_CASE, FIELD_NO_DESCRIPTOR, both the field and message are checked. - For
ONEOF_LOWER_SNAKE_CASE, both the oneof and message are checked. - For
RPC_NO_CLIENT_STREAMING, RPC_NO_SERVER_STREAMING, RPC_PASCAL_CASE, RPC_REQUEST_RESPONSE_UNIQUE, both the method and service are checked. - For
RPC_REQUEST_STANDARD_NAME, RPC_RESPONSE_STANDARD_NAME, the input/output type, method, and service are checked.
v0.35.1 - 2021-01-08
- Fix error when unmarshalling plugin configuration with no options (#236)
v0.35.0 - 2021-01-07
- Allow
optinbuf.gen.yamlfiles to be either a single string, or a list of strings. Both of the following forms are accepted, and result infoo=bar,baz,bat:
version: v1beta1
plugins:
- name: foo
out: out
opt: foo=bar,baz,batversion: v1beta1
plugins:
- name: foo
out: out
opt:
- foo=bar
- baz
- batv0.34.0 - 2021-01-04
- Move
buf check linttobuf lint. - Move
buf check breakingtobuf breaking. - Move
buf check ls-lint-checkerstobuf config ls-lint-rules. - Move
buf check ls-breaking-checkerstobuf config ls-breaking-rules. - Move
protoc-gen-buf-check-linttoprotoc-gen-buf-lint. - Move
protoc-gen-buf-check-breakingtoprotoc-gen-buf-breaking. - Add
buf beta config init.
All previous commands continue to work in a backwards-compatible manner, and the previous protoc-gen-buf-check-lint and protoc-gen-buf-check-breaking binaries continue to be available at the same paths, however deprecation messages are printed.
v0.33.0 - 2020-12-12
- Add
strategyoption tobuf.gen.yamlgeneration configuration. This allows selecting either plugin invocations with files on a per-directory basis, or plugin invocations with all files at once. See the generation documentation for more details.
v0.32.1 - 2020-12-10
- Fix issue where
SourceCodeInfofor map fields within nested messages could be dropped. - Fix issue where deleted files would cause a panic when
breaking.ignore_unstable_packages = true.
v0.32.0 - 2020-11-24
- Add symlink support for directory inputs. Symlinks will now be followed within your local directories when running
bufcommands. - Add the
breaking.ignore_unstable_packagesoption to allow ignoring of unstable packages when runningbuf check breaking. See the documentation for more details. - Enums that use the
allow_aliasoption that add new aliases to a given number will no longer be considered breaking byENUM_VALUE_SAME_NAME. See the documentation for more details.
v0.31.1 - 2020-11-17
- Fix issue where
--experimental_allow_proto3_optionalwas not set when proxying toprotocfor the builtin plugins viabuf generateorbuf protoc. This flag is now set forprotocversions >= 3.12.
v0.31.0 - 2020-11-16
- Change the
--fileflag to--pathand allow--pathto take both files and directories, instead of just files with the old--file. This flag is used to filter the actual Protobuf files built under an input for most commands. You can now do for examplebuf generate --path proto/footo only generate stubs for the files underproto/foo. Note that the--fileflag continues to work, but prints a deprecation message.
v0.30.1 - 2020-11-12
- Relax validation of response file names from protoc plugins, so that when possible, plugins that are not compliant with the plugin specification are still usable with
buf generate.
v0.30.0 - 2020-11-03
- Add
git://protocol handling.
v0.29.0 - 2020-10-30
As we work towards v1.0, we are cleaning up the CLI UX. As part of this, we made the following changes:
buf image buildhas been moved tobuf buildand now accepts images as inputs.buf beta image converthas been deleted, asbuf buildnow covers this functionality.- The
-oflag is no longer required forbuf build, instead defaulting to the OS equivalent of/dev/null. - The
--sourceflag onbuf buildhas been deprecated in favor of passing the input as the first argument. - The
--source-configflag onbuf buildhas been moved to--config. - The
--inputflag onbuf check linthas been deprecated in favor of passing the input as the first argument. - The
--input-configflag onbuf check linthas been moved to--config. - The
--inputflag onbuf check breakinghas been deprecated in favor of passing the input as the first argument. - The
--input-configflag onbuf check breakinghas been moved to--config. - The
--against-inputflag onbuf check breakinghas been moved to--against. - The
--against-input-configflag onbuf check breakinghas been moved to--against-config. - The
--inputflag onbuf generatehas been deprecated in favor of passing the input as the first argument. - The
--input-configflag onbuf generatehas been moved to--config. - The
--inputflag onbuf ls-fileshas been deprecated in favor of passing the input as the first argument. - The
--input-configflag onbuf ls-fileshas been moved to--config.
We feel these changes make using buf more natural. Examples:
# compile the files in the current directory
buf build
# equivalent to the default no-arg invocation
buf build .
# build the repository at https://github.com/foo/bar.git
buf build https://github.com/foo/bar.git
# lint the files in the proto directory
buf check lint proto
# check the files in the current directory against the files on the master branch for breaking changes
buf check breaking --against .git#branch=master
# check the files in the proto directory against the files in the proto directory on the master branch
buf check breaking proto --against .git#branch=master,subdir=proto
Note that existing commands and flags continue to work. While the deprecation messages will be printed, and we recommend migrating to the new invocations, your existing invocations have no change in functionality.
v0.28.0 - 2020-10-21
- Add
subdiroption for archive and git Inputs. This allows placement of thebuf.yamlconfiguration file in directories other than the base of your repository. You then can check against this subdirectory using, for example,buf check breaking --against-input https://github.com/foo/bar.git#subdir=proto.
v0.27.1 - 2020-10-16
- Fix minor typo in
buf help generatedocumentation.
v0.27.0 - 2020-10-16
- Move
buf beta generateout of beta tobuf generate. This command now uses a template of configured plugins to generate stubs. Seebuf help generatefor more details.
v0.26.0 - 2020-10-13
- Add jar and zip support to
buf protocandbuf beta generate.
v0.25.0 - 2020-10-09
- Add the concept of configuration file version. The only currently-available version is
v1beta1. See buf.build/docs/faq for more details.
v0.24.0 - 2020-09-21
- Add fish completion to releases.
- Update the
protocversion forbuf protocto be3.13.0.
v0.23.0 - 2020-09-11
- Move the
experimentalparent command tobeta. The commandbuf experimental image convertcontinues to work, but is deprecated in favor ofbuf beta image convert. - Add
buf beta generate.
v0.22.0 - 2020-09-09
- Add insertion point support to
buf protoc.
v0.21.0 - 2020-09-02
- Fix issue where
optionalfields in proto3 would cause theONEOF_LOWER_SNAKE_CASElint checker to fail.
v0.20.5 - 2020-07-24
- Fix issue where parser would fail on files starting with byte order marks.
v0.20.4 - 2020-07-21
- Fix issue where custom message options that had an unset map field could cause a parser failure.
v0.20.3 - 2020-07-18
- Fix issue where parameters passed with
--.*_opttobuf protocfor builtin plugins were not properly propagated.
v0.20.2 - 2020-07-17
- Fix issue where roots containing non-proto files with the same path would cause an error.
v0.20.1 - 2020-07-14
- Fix issue where Zsh completion would fail due to some flags having brackets in their description.
- Fix issue where non-builtin protoc plugin invocations would not have errors properly propagated.
- Fix issue where multiple
--.*_optflags,--.*_optflags with commas, or--.*_outflags with options that contained commas, would not be properly added.
v0.20.0 - 2020-07-13
- Add
--by-dirflag tobuf protocthat parallelizes generation per directory, resulting in a 25-75% reduction in the time taken to generate stubs for medium to large file sets. - Properly clean up temporary files and commands on interrupts.
- Fix issue where certain files that started with invalid Protobuf would cause the parser to crash.
v0.19.1 - 2020-07-10
- Fix issue where stderr was not being propagated for protoc plugins in CLI mode.
v0.19.0 - 2020-07-10
- Add
protoccommand. This is a substitute forprotocthat uses Buf's internal compiler. - Add
ENUM_FIRST_VALUE_ZEROlint checker to theOTHERcategory. - Add support for the Visual Studio error format.
v0.18.1 - 2020-06-25
- Fix issue where linking errors for custom options that had a message type were not properly reported (#93)
v0.18.0 - 2020-06-22
- Handle custom options when marshalling JSON images (#87).
- Add
buf experimental image convertcommand to convert to/from binary/JSON images (#87).
v0.17.0 - 2020-06-17
- Add git ref support to allow specifying arbitrary git references as inputs (#48). This allows you to do i.e.
buf check lint --input https://github.com/bufbuild/buf.git#ref=fa74aa9c4161304dfa83db4abc4a0effe886d253. - Add
depthinput option when specifying git inputs withref. This allows the user to configure the depth at which to clone the repository when looking for theref. If specifying aref, this defaults to 50. Otherwise, this defaults to 1. - Remove requirement for git branch or tag in inputs. This allows you to do i.e.
buf check lint --input https://github.com/bufbuild/buf.gitand it will automatically choose the default branch as an input.
v0.16.0 - 2020-06-02
- Add proto3 optional support.
v0.15.0 - 2020-05-31
- Add opt-in comment-driven lint ignores via the
allow_comment_ignoreslint configuration option andbuf:lint:ignore IDleading comment annotation (#73).
v0.14.0 - 2020-05-30
- Add
--fileflag tobuf image buildto only add specific files and their imports to outputted images. To exclude imports, use--exclude-imports. - Add
zipas a source format. Buf can now readzipfiles, either locally or remotely, for image building, linting, and breaking change detection. - Add
zstdas a compression format. Buf can now read and write Image files that are compressed using zstandard, and can read tarballs compressed with zstandard. - Deprecated: The formats
bingz, jsongz, targzare now deprecated. Instead, useformat=bin,compression=gzip,format=json,compression=gzip, orformat=tar,compression=gzip. The formatsbingz, jsongz, targzwill continue to work forever and will not be broken, but will print a deprecation warning and we recommend updating. Automatic file extension parsing continues to work the same as well.
v0.13.0 - 2020-05-17
- Use the
gitbinary instead of go-git for internal clones. This also enables using your system git credential management for git repositories cloned using https or ssh. See https://buf.build/docs/inputs#authentication for more details.
v0.12.1 - 2020-05-11
- Fix issue where roots were detected as overlapping if one root's name was a prefix of the other.
v0.12.0 - 2020-05-11
- Add netrc support for inputs.
- Fix issue where filenames that contained
..resulted in an error. - Internal: migrate to golang/protobuf v2.
v0.11.0 - 2020-04-09
- Add experimental flag
--experimental-git-cloneto use thegitbinary for git clones.
v0.10.0 - 2020-04-06
- Add
recurse_submodulesoption for git inputs. Example:https://github.com/foo/bar.git#branch=master,recurse_submodules=true
v0.9.0 - 2020-03-25
- Fix issue where the option value ordering on an outputted
Imagewas non-deterministic. - Fix issue where the
SourceCodeInfofor the Well-Known Types was not included on an outputtedImagewhen requested.
v0.8.0 - 2020-03-11
- Update dependencies.
v0.7.1 - 2020-03-05
- Tie HTTP download timeout to the
--timeoutflag.
v0.7.0 - 2020-01-31
- Add
tagoption for git inputs.
v0.6.0 - 2020-01-17
- Add
gitto the Docker container for local filesystem clones. - Update the JSON error format to use
pathas the file path key instead offilename.
v0.5.0 - 2020-01-01
- Allow basic authentication for remote tarballs, git repositories, and image files served from HTTPS endpoints. See https://buf.build/docs/inputs#https for more details.
- Allow public key authentication for remote git repositories served from SSH endpoints. See https://buf.build/docs/inputs#ssh for more details.
v0.4.1 - 2019-12-30
- Fix issue where comparing enum values for enums that have
allow_aliasset and duplicate enum values present resulted in a system error.
v0.4.0 - 2019-12-05
- Change the breaking change detector to compare enum values on number instead of name. This also results in the
ENUM_VALUE_SAME_NUMBERchecker being replaced with theENUM_VALUE_SAME_NAMEchecker, except this new checker is not in theWIREcategory.
v0.3.0 - 2019-11-05
- Fix issue where multiple timeout errors were printed.
- Add
buf check lint --error-format=config-ignore-yamlto print out current lint errors in a format that can be copied into a configuration file.
v0.2.0 - 2019-10-28
- Add a Docker image for the
bufbinary.
Initial beta release.