Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump github.com/bufbuild/protocompile from 0.6.0 to 0.8.0 in /internal/benchmarks #239

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jan 22, 2024

Bumps github.com/bufbuild/protocompile from 0.6.0 to 0.8.0.

Release notes

Sourced from github.com/bufbuild/protocompile's releases.

v0.8.0

This release primarily fixes bugs in the compiler that resulted in differences between the source files that protocompile would accept vs. the source files that the reference compiler, protoc, would accept. But one of these changes resulted in an unused AST node type. So this type has been removed from the exported API, which is why this v0.8.0 instead of v0.7.2.

Fixes:

  1. A protocompile.Compiler would previously accept some sources that would be rejected by protoc. In particular, protocompile allowed for explicitly-signed positive numeric literals -- with a leading plus (+) sign. But this is not allowed by the reference compiler, protoc, nor by implementations of the text format in myriad languages (which is also the format the compiler uses to parse custom option values that are message literals).
    • This change is not backwards compatible. The AST node type ast.PositiveUintLiteralNode has been removed. It was only used to support this invalid construct in the language. Code that refers to this node type (or its associated factory function and Visitor method) must be removed.
  2. A protocompile.Compiler would previously reject some sources that would protoc would accept. In particular, protocompile did not allow -nan as a default field value or custom option value and it also did not accept inf and alternate case spellings (such as upper- or mixed-case) of infinity and nan in message literals, which are all allowed by protoc.

v0.7.1

Fixes:

  1. If a protocompile.Compiler's Resolver returns a *descriptorpb.FileDescriptorProto (instead of source code or an already-built protoreflect.FileDescriptor), any already-interpreted options therein would be inadvertently cleared when the compiler reached the step of interpreting options for that file. This has been fixed: descriptor protos with options already interpreted will be left alone.

v0.7.0

This release contains some potentially breaking changes. Such changes were deemed acceptable since this module has not yet reached v1.0 and the impact on existing user code is likely to be very low.

Fixes:

  1. Previously, protocompile would allow the packed field option to be used on non-repeated fields are repeated fields that cannot be packed (like repeated string, bytes, and message fields). Such sources would be rejected by the reference compiler, protoc, and the resulting descriptors would be rejected by some Protobuf runtime libraries (including the one for Go). This has been fixed. So protocompile now also rejects such incorrect sources.
  2. A panic could occur in the parser with certain kinds of malformed input that contained syntactically incorrect message literals in option values. This has been fixed, and such sources now result in a syntax error value instead of a panic.

Changes:

  1. The ErrorWithPos interface has two new methods, Start() ast.SourcePos and End() ast.SourcePos. This change allows errors to indicate an entire region of code, not just a single position.
    • This is a breaking change. It is expected that this interface was only implemented internally. If there are implementations outside of this repo, fixing them can be as straight-forward as implementing the two new methods to return the same position as the existing GetPosition() method.
  2. The various helper functions for creating ErrorWithPos instances now accept an ast.SourceSpan instead of an ast.SourcePos. This includes reporter.Error and reporter.Errorf as well as the methods HandleErrorWithPos, HandleErrorf, HandleWarningWithPos, and HandleWarningf of reporter.Handler.
    • This is a breaking change. It is expected that these functions, despite being exported, were only used internally by the compiler implementation. If there are existing calls outside of this repo and a span (such as a ast.NodeInfo, ast.ItemInfo, or ast.Comment) is not readily available to them, they can use ast.NewSourceSpan to construct a span whose start and end are the same ast.SourcePos and pass that.

Additions:

  1. A new ast.SourceSpan interface type has been added that represents a span of code. There are also two factory functions for creating instances of ast.SourceSpan: ast.NewSourceSpan and ast.UnknownSpan. This interface is implemented by existing types ast.NodeInfo, ast.ItemInfo, ast.Comment, and reporter.ErrorWithPos.
  2. A new github.com/bufbuild/protocompile/parser/fastscan package has been added. While this entire repo is pre-v1.0, and therefore may be subject to incompatible changes (as evidenced by the backwards-incompatible change in this release), this new package is considered experimental. So the threshold for allowing an incompatible change to this package is even lower, and its API should be viewed as less stable.
Commits
  • 9913977 More precise "go generate" directive (#226)
  • 72d7e68 Fix recently discovered discrepancies with protoc (#229)
  • 93a9ef1 Tolerate trailing '.' in unambiguous type name cases (#224)
  • 4c57c26 Tolerate trailing '.' in option names (#222)
  • 508b83b Tolerate trailing ',' in compact options (#221)
  • f2f1254 Consolidate conversion logic (#220)
  • fe27e56 Bump golang.org/x/tools from 0.15.0 to 0.16.0 in /internal/tools (#208)
  • 1cb5ed7 Tolerate missing '=' value in compact options (#219)
  • ebf3519 Tolerate missing ';' in message body (#218)
  • 340bf80 Tolerate missing ';' in oneof options/fields and extension fields (#216)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/bufbuild/protocompile](https://github.com/bufbuild/protocompile) from 0.6.0 to 0.8.0.
- [Release notes](https://github.com/bufbuild/protocompile/releases)
- [Commits](v0.6.0...v0.8.0)

---
updated-dependencies:
- dependency-name: github.com/bufbuild/protocompile
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update Go code labels Jan 22, 2024
@jhump jhump merged commit 147620f into main Jan 22, 2024
8 checks passed
@jhump jhump deleted the dependabot/go_modules/internal/benchmarks/github.com/bufbuild/protocompile-0.8.0 branch January 22, 2024 23:29
kralicky pushed a commit to kralicky/protocompile that referenced this pull request Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file go Pull requests that update Go code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant